diff --git a/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/service/impl/SysUserServiceImpl.java b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/service/impl/SysUserServiceImpl.java index da590034..3784b299 100644 --- a/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/service/impl/SysUserServiceImpl.java +++ b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/service/impl/SysUserServiceImpl.java @@ -29,6 +29,7 @@ import cn.hutool.core.lang.tree.TreeNode; import cn.hutool.core.lang.tree.TreeNodeConfig; import cn.hutool.core.lang.tree.TreeUtil; import cn.hutool.core.lang.tree.parser.DefaultNodeParser; +import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.PhoneUtil; import cn.hutool.core.util.RandomUtil; @@ -556,7 +557,8 @@ public class SysUserServiceImpl extends ServiceImpl impl List roleIdList = this.ownRole(sysUserIdParam); // 获取菜单id列表 - List menuIdList = CollectionUtil.newArrayList(); + List menuIdList = sysRelationService.getRelationTargetIdListByObjectIdAndCategory(sysUserIdParam.getId(), + SysRelationCategoryEnum.SYS_USER_HAS_RESOURCE.getValue());; if (ObjectUtil.isNotEmpty(roleIdList)) { menuIdList = sysRelationService.getRelationTargetIdListByObjectIdListAndCategory(roleIdList, @@ -930,36 +932,35 @@ public class SysUserServiceImpl extends ServiceImpl impl @Override public List getPermissionList(String userId, String orgId) { - List permissionListGrantUser = this.getPermissionListGrantUser(userId, orgId); - List permissionListGrantRole = this.getPermissionListGrantRole(userId, orgId); - // TODO 执行合并 - return permissionListGrantUser; + Map> permissionListGrantUser = this.getPermissionListGrantUser(userId, orgId); + Map> permissionListGrantRole = this.getPermissionListGrantRole(userId, orgId); + permissionListGrantUser.forEach((key, value) -> permissionListGrantRole.merge(key, value, (prev, next) -> { + prev.addAll(next); + return prev; + })); + return getScopeListByMap(permissionListGrantRole, orgId); } - public List getPermissionListGrantUser(String userId, String orgId) { + public Map> getPermissionListGrantUser(String userId, String orgId) { if (ObjectUtil.isNotEmpty(orgId)) { - Map> groupMap = sysRelationService.getRelationListByObjectIdAndCategory(userId, - SysRelationCategoryEnum.SYS_USER_HAS_PERMISSION.getValue()).stream().collect(Collectors.groupingBy(SysRelation::getTargetId)); - if (ObjectUtil.isNotEmpty(groupMap)) { - return getScopeListByMap(groupMap, orgId); - } + return sysRelationService.getRelationListByObjectIdAndCategory(userId, + SysRelationCategoryEnum.SYS_USER_HAS_PERMISSION.getValue()).stream() + .collect(Collectors.groupingBy(SysRelation::getTargetId)); } - return CollectionUtil.newArrayList(); + return MapUtil.newHashMap(); } - public List getPermissionListGrantRole(String userId, String orgId) { + public Map> getPermissionListGrantRole(String userId, String orgId) { if (ObjectUtil.isNotEmpty(orgId)) { List roleIdList = sysRelationService.getRelationTargetIdListByObjectIdAndCategory(userId, SysRelationCategoryEnum.SYS_USER_HAS_ROLE.getValue()); if (ObjectUtil.isNotEmpty(roleIdList)) { - Map> groupMap = sysRelationService.getRelationListByObjectIdListAndCategory(roleIdList, - SysRelationCategoryEnum.SYS_ROLE_HAS_PERMISSION.getValue()).stream().collect(Collectors.groupingBy(SysRelation::getTargetId)); - if (ObjectUtil.isNotEmpty(groupMap)) { - return getScopeListByMap(groupMap, orgId); - } + return sysRelationService.getRelationListByObjectIdListAndCategory(roleIdList, + SysRelationCategoryEnum.SYS_ROLE_HAS_PERMISSION.getValue()).stream() + .collect(Collectors.groupingBy(SysRelation::getTargetId)); } } - return CollectionUtil.newArrayList(); + return MapUtil.newHashMap(); } public List getScopeListByMap(Map> groupMap, String orgId) {