diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/permission/RoleServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/permission/RoleServiceImpl.java index 63bec4b8c..2f23e1831 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/permission/RoleServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/permission/RoleServiceImpl.java @@ -261,14 +261,19 @@ public class RoleServiceImpl implements RoleService { public List getRoleListByStatus(Collection statuses, Long organId) { LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); assert loginUser != null; - if (!loginUser.getIsSupAdmin()) { - return roleMapper.selectList(new LambdaQueryWrapperX() - .in(RoleDO::getStatus, statuses) - .in(RoleDO::getOrganId, loginUser.getOrganId(), 0L) - .ne(RoleDO::getId, 1) - ); + // 内置角色organId:0L + Long[] roleOrganArr = new Long[2]; + roleOrganArr[0] = 0L; + // 超管可查看其他组织角色,其余只看本机构下 + Long currOrganId = (loginUser.getIsSupAdmin() && ObjectUtil.isNotNull(organId)) ? organId : loginUser.getOrganId(); + if(ObjectUtil.isNotNull(currOrganId)) { + roleOrganArr[1] = currOrganId; } - return roleMapper.selectListByStatus(statuses, ObjectUtil.isNotNull(organId) ? organId : loginUser.getOrganId()); + return roleMapper.selectList(new LambdaQueryWrapperX() + .in(RoleDO::getStatus, statuses) + .in(RoleDO::getOrganId, roleOrganArr) + .ne(RoleDO::getId, 1) + ); } @Override