浏览代码

#MOD 部门树列表反显部门角色

tanbin 1 年之前
父节点
当前提交
b16898e84a
共有 1 个文件被更改,包括 20 次插入10 次删除
  1. 20 10
      authorize-api-service/src/main/java/com/xy/service/impl/SysDeptServiceImpl.java

+ 20 - 10
authorize-api-service/src/main/java/com/xy/service/impl/SysDeptServiceImpl.java

@@ -4,17 +4,16 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.lang.tree.Tree;
 import cn.hutool.core.lang.tree.TreeNode;
 import cn.hutool.core.lang.tree.TreeUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xy.dto.CommonIdDto;
 import com.xy.dto.SysDeptDto;
 import com.xy.dto.SysDeptListDto;
-import com.xy.entity.SysDept;
-import com.xy.entity.SysDeptRelation;
-import com.xy.entity.SysDeptRole;
-import com.xy.entity.SysUserDept;
+import com.xy.entity.*;
 import com.xy.mapper.SysDeptMapper;
+import com.xy.mapper.SysRoleMapper;
 import com.xy.redis.RedisCache;
 import com.xy.service.SysDeptRelationService;
 import com.xy.service.SysDeptRoleService;
@@ -55,6 +54,7 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
     private final SysDeptRelationService sysDeptRelationService;
     private final SysDeptRoleService sysDeptRoleService;
     private final SysUserDeptService sysUserDeptService;
+    private final SysRoleMapper sysRoleMapper;
 
     @ApiOperation(value = "新增、更新部门信息", notes = "新增、更新部门信息")
     @PostMapping("saveOrUpdate")
@@ -80,9 +80,9 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
         List<Long> roleIds = sysDeptDto.getRoleIds();
         SysDept sysDept = copy(SysDept.class, sysDeptDto).saveOrUpdate(loginId, sysDeptDto.getId());
         if (isAdd) {
-            //新建部门关系
+            // 新建部门关系
             sysDeptRelationService.saveDeptRelation(sysDept);
-            //角色部门关系建立
+            // 角色部门关系建立
             if (CollUtil.isNotEmpty(roleIds)) {
                 sysDeptRoleService.saveDeptRole(sysDept.getId(), roleIds, sysDeptDto.getSysId());
             }
@@ -92,7 +92,7 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
             relation.setAncestor(sysDept.getParentId());
             relation.setDescendant(sysDept.getId());
             sysDeptRelationService.updateDeptRelation(relation);
-            //角色部门关系更新
+            // 角色部门关系更新
             if (CollUtil.isNotEmpty(roleIds)) {
                 sysDeptRoleService.updateDeptRole(sysDept.getId(), roleIds, sysDeptDto.getSysId());
             }
@@ -134,9 +134,9 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
         }
         // 删除部门级联关系
         sysDeptRelationService.removeDeptRelationById(id);
-        //部门角色关系移除
+        // 部门角色关系移除
         sysDeptRoleService.removeDeptRoleById(id);
-        //业务用户部门关系 sys_user_dept
+        // 业务用户部门关系 sys_user_dept
         sysUserDeptService.remove(Wrappers.<SysUserDept>lambdaQuery().in(SysUserDept::getDeptId, idList));
 
         return R.ok(Boolean.TRUE);
@@ -158,9 +158,19 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
                     treeNode.setName(dept.getName());
                     treeNode.setWeight(dept.getSortNum());
                     // 扩展属性
-                    Map<String, Object> extra = new HashMap<>(16);
+                    Map<String, Object> extra = new HashMap<>();
                     extra.put(LambdaUtils.getProperty(SysDept::getCreateTime), dept.getCreateTime());
                     extra.put(LambdaUtils.getProperty(SysDept::getCode), dept.getCode());
+                    // 部门角色
+                    List<SysDeptRole> sysDeptRoles = sysDeptRoleService.list(Wrappers.<SysDeptRole>lambdaQuery().in(SysDeptRole::getDeptId, dept.getId()));
+                    if (CollUtil.isNotEmpty(sysDeptRoles)) {
+                        List<Long> deptRoleIds = sysDeptRoles.stream().map(SysDeptRole::getRoleId).distinct().collect(Collectors.toList());
+                        List<SysRole> sysRoles = sysRoleMapper.selectList(new LambdaQueryWrapper<SysRole>().in(SysRole::getId, deptRoleIds));
+                        if (CollUtil.isNotEmpty(sysRoles)) {
+                            List<String> deptRoleNames = sysRoles.stream().map(SysRole::getName).distinct().collect(Collectors.toList());
+                            extra.put("deptRoleNames", StrUtil.join(",", deptRoleNames));
+                        }
+                    }
                     treeNode.setExtra(extra);
                     return treeNode;
                 }).collect(Collectors.toList());