|
@@ -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());
|