修改权限查询逻辑

dev_xd
lj7788@126.com 2025-08-15 10:41:13 +08:00
parent 268b4c74d3
commit 5c2e43e8ec
6 changed files with 53 additions and 2 deletions

View File

@ -60,6 +60,16 @@ public interface SysMenuMapper
*/
public List<String> selectMenuPermsByUserIdAndDept(@Param("userId")Long userId,@Param("deptId") Long deptId);
/**
* D
*
* @param roleId ID
* @param deptId ID
* @return
*/
public List<String> selectMenuPermsByRoleIdAndDept(@Param("roleId")Long roleId,@Param("deptId") Long deptId);
/**
* ID
*

View File

@ -122,6 +122,17 @@
and rd.dept_id = #{deptId}
</select>
<select id="selectMenuPermsByRoleIdAndDept" resultType="String">
select distinct m.perms
from sys_menu m
left join sys_role_menu rm on m.menu_id = rm.menu_id
left join sys_user_role ur on rm.role_id = ur.role_id
left join sys_role r on r.role_id = ur.role_id
left join sys_role_dept rd on rd.role_id = r.role_id
where m.status = '0' and r.status = '0' and ur.role_id = #{roleId}
and rd.dept_id = #{deptId}
</select>
<select id="selectMenuPermsByRoleId" parameterType="Long" resultType="String">
select distinct m.perms
from sys_menu m

View File

@ -40,7 +40,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select uc.*, sd.dept_name com_name
from (
select DISTINCT com_id
from pro_project_info) uc
from pro_project_info where is_del &lt; 0) uc
left join sys_dept sd on uc.com_id=sd.dept_id
</select>
<update id="updateActiveTo0" parameterType="SysUserCom">

View File

@ -47,6 +47,15 @@ public interface ISysMenuService
*/
public Set<String> selectMenuPermsByUserIdAndDept(Long userId,Long deptId);
/**
* ID
*
* @param roleId ID
* @param deptId ID
* @return
*/
public Set<String> selectMenuPermsByRoleIdAndDept(Long roleId,Long deptId);
/**
* ID
*

View File

@ -122,6 +122,27 @@ public class SysMenuServiceImpl implements ISysMenuService
return permsSet;
}
/**
* ID
*
* @param roleId ID
* @param deptId ID
* @return
*/
@Override
public Set<String> selectMenuPermsByRoleIdAndDept(Long roleId,Long deptId){
List<String> perms = menuMapper.selectMenuPermsByRoleIdAndDept(roleId,deptId);
Set<String> permsSet = new HashSet<>();
for (String perm : perms)
{
if (StringUtils.isNotEmpty(perm))
{
permsSet.addAll(Arrays.asList(perm.trim().split(",")));
}
}
return permsSet;
}
/**
* ID
*

View File

@ -88,7 +88,7 @@ public class SysPermissionServiceImpl implements ISysPermissionService
if(SysRole.isGsAdmin(getRoleKeys(user.getRoles()))){
rolePerms = menuService.selectMenuPermsByRoleId(role.getRoleId());
}else{
rolePerms = menuService.selectMenuPermsByUserIdAndDept(role.getRoleId(),user.getActiveProjectId());
rolePerms = menuService.selectMenuPermsByRoleIdAndDept(role.getRoleId(),user.getActiveProjectId());
}
role.setPermissions(rolePerms);
perms.addAll(rolePerms);