Parcourir la source

作品分配修改分配方式

lvmax il y a 6 mois
Parent
commit
c3376ab74f

+ 10 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java

@@ -102,6 +102,16 @@ public class UserController {
         return success(new PageResult<>(UserConvert.INSTANCE.convertList(pageResult.getList(), deptMap),
                 pageResult.getTotal()));
     }
+    @GetMapping("/getDeptUser")
+    @Operation(summary = "获得用户分页列表")
+    @PreAuthorize("@ss.hasPermission('system:user:getDeptUser')")
+    public CommonResult<List<AdminUserDO>> getDeptUser(@Valid UserPageReqVO pageReqVO) {
+        // 获得用户分页列表
+        List<AdminUserDO> pageResult = userService.getDeptUser(pageReqVO);
+
+            return success(pageResult);
+
+    }
 
     @GetMapping({"/list-all-simple", "/simple-list"})
     @Operation(summary = "获取用户精简信息列表", description = "只包含被开启的用户,主要用于前端的下拉选项")

+ 7 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java

@@ -34,6 +34,13 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
                 .inIfPresent(AdminUserDO::getDeptId, deptIds)
                 .orderByDesc(AdminUserDO::getId));
     }
+    //按部门查
+    default List<AdminUserDO> getDeptUser(UserPageReqVO reqVO) {
+        return selectList( new LambdaQueryWrapperX<AdminUserDO>()
+                .eqIfPresent(AdminUserDO::getStatus, reqVO.getStatus())
+                .eqIfPresent(AdminUserDO::getDeptId, reqVO.getDeptId())
+                .orderByDesc(AdminUserDO::getId));
+    }
 
     default List<AdminUserDO> selectListByNickname(String nickname) {
         return selectList(new LambdaQueryWrapperX<AdminUserDO>().like(AdminUserDO::getNickname, nickname));

+ 1 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java

@@ -112,6 +112,7 @@ public interface AdminUserService {
      * @return 分页列表
      */
     PageResult<AdminUserDO> getUserPage(UserPageReqVO reqVO);
+    List<AdminUserDO> getDeptUser(UserPageReqVO reqVO);
 
     /**
      * 通过用户 ID 查询用户

+ 22 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.system.service.user;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.io.IoUtil;
+import cn.hutool.core.util.ObjUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.common.exception.ServiceException;
@@ -11,6 +12,7 @@ import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.common.util.validation.ValidationUtils;
 import cn.iocoder.yudao.framework.datapermission.core.util.DataPermissionUtils;
+import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
 import cn.iocoder.yudao.module.infra.api.config.ConfigApi;
 import cn.iocoder.yudao.module.infra.api.file.FileApi;
 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO;
@@ -254,6 +256,26 @@ public class AdminUserServiceImpl implements AdminUserService {
         return userMapper.selectPage(reqVO, getDeptCondition(reqVO.getDeptId()));
     }
 
+    @Override
+    public List<AdminUserDO> getDeptUser(UserPageReqVO reqVO) {
+        ArrayList<Long> deptIds = new ArrayList<>();
+        DeptDO dept = deptService.getDept(reqVO.getDeptId());
+        if (dept == null) {
+            return Collections.emptyList();
+        }
+        deptIds.add(dept.getId());
+        // 1.2 获取所有子部门
+        List<DeptDO> childDeptList = deptService.getChildDeptList(dept.getId());
+        if (CollUtil.isNotEmpty(childDeptList)) {
+            deptIds.addAll(convertSet(childDeptList, DeptDO::getId));
+        }
+        List<AdminUserDO> adminUserDOS = userMapper.selectListByDeptIds(deptIds);
+        adminUserDOS.removeIf(item -> ObjUtil.equal(item.getId(), SecurityFrameworkUtils.getLoginUser().getId())); // 排除自己
+
+
+        return adminUserDOS;
+    }
+
     @Override
     public AdminUserDO getUser(Long id) {
         return userMapper.selectById(id);