ソースを参照

部门新增获取部门以及子部门用户精简信息列表

chenjun 1 年間 前
コミット
5402577db8

+ 32 - 0
zjugis-module-system/zjugis-module-system-biz/src/main/java/com/zjugis/module/system/controller/admin/dept/DeptController.java

@@ -7,6 +7,7 @@ import com.zjugis.framework.common.pojo.CommonResult;
 import com.zjugis.framework.common.util.collection.CollectionUtils;
 import com.zjugis.framework.datapermission.core.annotation.DataPermission;
 import com.zjugis.module.system.controller.admin.dept.vo.dept.*;
+import com.zjugis.module.system.controller.admin.user.vo.user.UserSimpleRespVO;
 import com.zjugis.module.system.convert.dept.DeptConvert;
 import com.zjugis.module.system.dal.dataobject.dept.DeptDO;
 import com.zjugis.module.system.dal.dataobject.dept.DeptLeaderDO;
@@ -128,6 +129,37 @@ public class DeptController {
         return success(simpleRespVOList);
     }
 
+    @GetMapping("/list-dept-all-user-simple")
+    @Operation(summary = "获取部门以及子部门用户精简信息列表", description = "包含所有用户(未开启、开启),主要用于前端的下拉选项")
+    public CommonResult<List<DeptUserSimpleRespVO>> getSimpleDeptUserAllList(@RequestParam("deptId") String deptId) {
+        // 获得部门列表,只要开启状态的
+        DeptListReqVO reqVO = new DeptListReqVO();
+        reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
+        reqVO.setId(deptId);
+        List<DeptDO> list = deptService.getDeptList(reqVO);
+        // 排序后,返回给前端
+        list.sort(Comparator.comparing(DeptDO::getSort));
+        List<DeptUserSimpleRespVO> simpleRespVOList = DeptConvert.INSTANCE.convertList04(list);
+        simpleRespVOList.forEach(deptUserSimpleRespVO -> {
+            deptUserSimpleRespVO.setType("dept");
+        });
+        //获取用户列表,只要开启状态的
+        List<AdminUserDO> userList = userService.getUserListByStatus(CommonStatusEnum.ENABLE.getStatus());
+        userList.forEach(adminUserDO -> {
+            List<String> deptIds = new ArrayList<>();
+            deptIds.add(adminUserDO.getDeptId());
+            if(CollectionUtil.isNotEmpty(adminUserDO.getDeptIds())){
+                deptIds.addAll(adminUserDO.getDeptIds());
+            }
+            deptIds.forEach(id -> {
+                DeptUserSimpleRespVO deptUserSimpleRespVO = new DeptUserSimpleRespVO();
+                deptUserSimpleRespVO.setId(adminUserDO.getId()).setParentId(id).setName(adminUserDO.getNickname()).setType("user");
+                simpleRespVOList.add(deptUserSimpleRespVO);
+            });
+        });
+        return success(simpleRespVOList);
+    }
+
     @GetMapping("/list-all-user-simple-all")
     @Operation(summary = "获取部门用户精简信息列表", description = "只包含被开启的部门(包含未开启的用户),主要用于前端的下拉选项")
     public CommonResult<List<DeptUserSimpleRespVO>> getSimpleDeptUserAllList() {

+ 8 - 0
zjugis-module-system/zjugis-module-system-biz/src/main/java/com/zjugis/module/system/controller/admin/dept/vo/dept/DeptListReqVO.java

@@ -4,14 +4,22 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
+import java.util.Collection;
+
 @Schema(description = "管理后台 - 部门列表 Request VO")
 @Data
 public class DeptListReqVO {
 
+    @Schema(description = "部门ID", example = "")
+    private String id;
+
     @Schema(description = "部门名称,模糊匹配", example = "芋道")
     private String name;
 
     @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1")
     private Integer status;
 
+    @Schema(description = "部门ID", example = "")
+    private Collection<String> ids;
+
 }

+ 2 - 1
zjugis-module-system/zjugis-module-system-biz/src/main/java/com/zjugis/module/system/dal/mysql/dept/DeptMapper.java

@@ -15,7 +15,8 @@ public interface DeptMapper extends BaseMapperX<DeptDO> {
     default List<DeptDO> selectList(DeptListReqVO reqVO) {
         return selectList(new LambdaQueryWrapperX<DeptDO>()
                 .likeIfPresent(DeptDO::getName, reqVO.getName())
-                .eqIfPresent(DeptDO::getStatus, reqVO.getStatus()));
+                .eqIfPresent(DeptDO::getStatus, reqVO.getStatus())
+                .inIfPresent(DeptDO::getId, reqVO.getIds()));
     }
 
     default DeptDO selectByParentIdAndName(String parentId, String name) {

+ 6 - 0
zjugis-module-system/zjugis-module-system-biz/src/main/java/com/zjugis/module/system/service/dept/DeptServiceImpl.java

@@ -18,6 +18,7 @@ import com.zjugis.module.system.dal.redis.RedisKeyConstants;
 import com.zjugis.module.system.enums.dept.DeptIdEnum;
 import com.google.common.annotations.VisibleForTesting;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
@@ -177,6 +178,11 @@ public class DeptServiceImpl implements DeptService {
 
     @Override
     public List<DeptDO> getDeptList(DeptListReqVO reqVO) {
+        if(StringUtils.isNotBlank(reqVO.getId())){
+            Set<String> deptIds = getChildDeptIdListFromCache(reqVO.getId());
+            deptIds.add(reqVO.getId());
+            reqVO.setIds(deptIds);
+        }
         return deptMapper.selectList(reqVO);
     }