From f6ef65bdb9663292fc10dd7796af1ba1afd7cb1a Mon Sep 17 00:00:00 2001 From: sxu <602087911@qq.com> Date: Fri, 1 Nov 2024 11:12:23 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=84=E7=BB=87=E4=BA=BA=E5=91=98=E6=A0=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/bonus/system/api/domain/SysDept.java | 10 ----- .../system/controller/SysUserController.java | 13 ++++++ .../bonus/system/domain/vo/TreeSelect.java | 11 ----- .../bonus/system/mapper/SysDeptMapper.java | 9 ++++ .../bonus/system/service/ISysDeptService.java | 9 ++++ .../service/impl/SysDeptServiceImpl.java | 45 ++++++++++++------- .../resources/mapper/system/SysDeptMapper.xml | 27 +++++++++++ 7 files changed, 88 insertions(+), 36 deletions(-) diff --git a/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysDept.java b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysDept.java index dfaa8bd..4ed75a2 100644 --- a/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysDept.java +++ b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysDept.java @@ -55,8 +55,6 @@ public class SysDept extends BaseEntity /** 子部门 */ private List children = new ArrayList(); - private List sysUsers; - private Integer level; public Integer getLevel() { @@ -193,14 +191,6 @@ public class SysDept extends BaseEntity this.children = children; } - public List getSysUsers() { - return sysUsers; - } - - public void setSysUsers(List sysUsers) { - this.sysUsers = sysUsers; - } - @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/controller/SysUserController.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/controller/SysUserController.java index 6675108..3015a03 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/controller/SysUserController.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/controller/SysUserController.java @@ -463,6 +463,19 @@ public class SysUserController extends BaseController { return error("系统异常,请联系管理员"); } + /** + * 根据角色列表获取部门人员树列表 + */ + @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("system:user:list")) + @GetMapping("/deptUserTreeInRoleIds") + public AjaxResult deptUserTree(SysDept dept, List roleIds) { + try { + return success(deptService.selectDeptUserTree(dept, roleIds)); + } catch (Exception e) { + logger.error(e.toString(), e); + } + return error("系统异常,请联系管理员"); + } /** * 修改用户审批状态 diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/domain/vo/TreeSelect.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/domain/vo/TreeSelect.java index c704aed..ce53097 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/domain/vo/TreeSelect.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/domain/vo/TreeSelect.java @@ -34,8 +34,6 @@ public class TreeSelect implements Serializable { private Integer level; - private List sysUsers; - /** * 子节点 @@ -52,7 +50,6 @@ public class TreeSelect implements Serializable { this.parentId = dept.getParentId(); this.status = dept.getStatus(); this.label = dept.getDeptName(); - this.sysUsers = dept.getSysUsers(); this.level = dept.getLevel(); this.children = dept.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList()); } @@ -111,12 +108,4 @@ public class TreeSelect implements Serializable { public void setStatus(String status) { this.status = status; } - - public List getSysUsers() { - return sysUsers; - } - - public void setSysUsers(List sysUsers) { - this.sysUsers = sysUsers; - } } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/mapper/SysDeptMapper.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/mapper/SysDeptMapper.java index 19b98e3..977c40f 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/mapper/SysDeptMapper.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/mapper/SysDeptMapper.java @@ -19,6 +19,15 @@ public interface SysDeptMapper */ public List selectDeptList(SysDept dept); + /** + * 根据角色列表查询部门人员树结构信息 + * + * @param dept 部门信息 + * @param roleIds 角色列表 + * @return 部门树信息集合 + */ + public List selectDeptUserList(SysDept dept, @Param("roleIds") List roleIds); + /** * 根据角色ID查询部门树信息 * diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/ISysDeptService.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/ISysDeptService.java index 0f73492..53c8f88 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/ISysDeptService.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/ISysDeptService.java @@ -35,6 +35,15 @@ public interface ISysDeptService */ public List selectDeptUserTreeList(SysDept dept); + /** + * 根据角色列表查询部门人员树结构信息 + * + * @param dept 部门信息 + * @param roleIds 角色列表 + * @return 部门树信息集合 + */ + public List selectDeptUserTree(SysDept dept, List roleIds); + /** * 构建前端所需要树结构 * diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysDeptServiceImpl.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysDeptServiceImpl.java index 6259463..1fa5644 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysDeptServiceImpl.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysDeptServiceImpl.java @@ -75,6 +75,21 @@ public class SysDeptServiceImpl implements ISysDeptService return buildDeptTreeSelect(depts); } + /** + * 根据角色列表查询部门人员树结构信息 + * + * @param dept 部门信息 + * @param roleIds 角色列表 + * @return 部门树信息集合 + */ + @Override + @DataScope(deptAlias = "d") + public List selectDeptUserTree(SysDept dept, List roleIds) + { + List depts = deptMapper.selectDeptUserList(dept, roleIds); + return buildDeptTreeSelect(depts); + } + /** * 查询部门人员树结构信息 * @@ -89,21 +104,21 @@ public class SysDeptServiceImpl implements ISysDeptService return buildDeptTreeSelect(userList); } List depts = SpringUtils.getAopProxy(this).selectDeptList(dept); - for (SysDept sysDept : depts) { - SysUser paramUser = new SysUser(); - paramUser.setDeptId(sysDept.getDeptId()); - List users = userMapper.selectUserList(paramUser); - - List sysUsers = new ArrayList<>(); - for (SysUser user : users) { - SysUser userResult = userMapper.selectUserById(user.getUserId()); - user.setRoles(userResult.getRoles()); - if (user.getDeptId().equals(sysDept.getDeptId())) { - sysUsers.add(user); - } - } - sysDept.setSysUsers(sysUsers); - } +// for (SysDept sysDept : depts) { +// SysUser paramUser = new SysUser(); +// paramUser.setDeptId(sysDept.getDeptId()); +// List users = userMapper.selectUserList(paramUser); +// +// List sysUsers = new ArrayList<>(); +// for (SysUser user : users) { +// SysUser userResult = userMapper.selectUserById(user.getUserId()); +// user.setRoles(userResult.getRoles()); +// if (user.getDeptId().equals(sysDept.getDeptId())) { +// sysUsers.add(user); +// } +// } +// sysDept.setSysUsers(sysUsers); +// } return buildDeptTreeSelect(depts); } diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/system/SysDeptMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/system/SysDeptMapper.xml index f5baac4..74ba285 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -47,6 +47,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by d.parent_id, d.order_num + +