组织人员树

This commit is contained in:
sxu 2024-11-01 15:29:13 +08:00
parent 732fb38899
commit 0a7fd633d9
2 changed files with 28 additions and 19 deletions

View File

@ -467,10 +467,10 @@ public class SysUserController extends BaseController {
* 根据角色列表获取部门人员树列表 * 根据角色列表获取部门人员树列表
*/ */
@RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("system:user:list")) @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("system:user:list"))
@GetMapping("/deptUserTree/roleIds/{roleIds}") @PostMapping("/deptUserTreeInRoleIds")
public AjaxResult deptUserTreeInRoleIds(@PathVariable("roleIds") Long[] roleIds) { public AjaxResult deptUserTreeInRoleIds(@RequestBody SysUser sysUser) {
try { try {
return success(deptService.selectDeptUserTree(roleIds)); return success(deptService.selectDeptUserTree(sysUser.getRoleIds()));
} catch (Exception e) { } catch (Exception e) {
logger.error(e.toString(), e); logger.error(e.toString(), e);
} }

View File

@ -51,27 +51,36 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
SELECT SELECT
d.dept_id AS deptId, d.dept_id AS deptId,
d.parent_id AS parentId, d.parent_id AS parentId,
d.dept_name AS deptName d.dept_name AS deptName,
FROM sys_dept d LENGTH( d.ancestors ) - LENGTH(
WHERE d.del_flag = '0' REPLACE ( d.ancestors, ',', '' )) AS LEVEL
AND d.STATUS = '0' FROM
sys_dept d
WHERE
d.del_flag = '0'
AND d.STATUS = '0'
UNION UNION
SELECT SELECT
su.user_id AS deptId, su.user_id AS deptId,
su.dept_id AS parentId, sd.dept_id AS parentId,
su.nick_name AS deptName su.nick_name AS deptName,
FROM sys_user su 99 AS LEVEL
LEFT JOIN sys_user_role sr ON su.user_id = sr.user_id FROM
LEFT JOIN sys_dept sd ON su.dept_id = sd.dept_id sys_user su
WHERE su.del_flag = '0' LEFT JOIN sys_user_role sr ON su.user_id = sr.user_id
<if test="roleIds != null and roleIds.length > 0"> LEFT JOIN sys_dept sd ON su.dept_id = sd.dept_id
and sr.role_id in AND sd.del_flag = '0'
<foreach collection="roleIds" item="item" index="index" separator="," open="(" close=")"> AND sd.STATUS = '0'
#{item} WHERE
</foreach> su.del_flag = '0'
</if> <if test="roleIds != null and roleIds.length > 0">
and sr.role_id in
<foreach collection="roleIds" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
</if>
</select> </select>
<select id="selectDeptListByRoleId" resultType="Long"> <select id="selectDeptListByRoleId" resultType="Long">