diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/QuerySaasRoleGroupReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/QuerySaasRoleGroupReq.java index a9fdbcde..805ec758 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/QuerySaasRoleGroupReq.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/QuerySaasRoleGroupReq.java @@ -34,6 +34,7 @@ public class QuerySaasRoleGroupReq { * 单位类型字典code */ private List ouTypeCode; + /** * 被那些角色使用到的分组 */ diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/QuerySaasRoleReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/QuerySaasRoleReq.java index 94bc2937..26c4d6cf 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/QuerySaasRoleReq.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/QuerySaasRoleReq.java @@ -49,4 +49,9 @@ public class QuerySaasRoleReq { private List sassRoleGroupIds; private Integer isCommon; + + /** + * 是否包含权限集(如果不需要则不执行后续查询链路) + */ + private Boolean includePermissionGroup; } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RoleServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RoleServiceImpl.java index bc208423..1b2b3445 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RoleServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RoleServiceImpl.java @@ -71,7 +71,7 @@ public class RoleServiceImpl implements RoleService { if (CollectionUtils.isEmpty(roleIds)) { return new ArrayList<>(); } - return getByIds(roleIds, null, null,null); + return getByIds(roleIds, null, null,null, null); } /** @@ -79,29 +79,35 @@ public class RoleServiceImpl implements RoleService { * * @return */ - public List getByIds(List roleIds, Integer isCommon, List workspaceId, List ouId) { + public List getByIds(List roleIds, Integer isCommon, List workspaceId, List ouId, Boolean includePermissionGroup) { + if (includePermissionGroup == null) { + includePermissionGroup = true; + } if (CollectionUtils.isEmpty(roleIds)) { return new ArrayList<>(); } // 查询角色信息 List roles = saasRoleDao.lambdaQuery().in(BaseEntity::getId, roleIds).list(); - // 查询权限集关联关系 - List saasPgroupRoleRelations = queryPermissionGroupRelation(roleIds); // 查询权限集 Map> pgrouRelationMap = null; Map> pGroupMap = null; - if (CollectionUtils.isNotEmpty(saasPgroupRoleRelations)) { - // 转map - pgrouRelationMap = saasPgroupRoleRelations.stream().collect(Collectors.groupingBy(SaasPgroupRoleRelation::getRoleId)); - // 查询权限集 - pGroupMap = permissionGroupService.query(QuerySaasPermissionGroupReq.builder() - .isCommon(isCommon) - .ids(saasPgroupRoleRelations.stream().map(SaasPgroupRoleRelation::getGroupId).collect(Collectors.toList())) - .workspaceId(workspaceId) - .ouId(ouId) - .build()) - // 转map - .stream().collect(Collectors.groupingBy(SaasPermissionGroupVO::getId)); + // 如果不包含则跳过 + if(includePermissionGroup) { + // 查询权限集关联关系 + List saasPgroupRoleRelations = queryPermissionGroupRelation(roleIds); + if (CollectionUtils.isNotEmpty(saasPgroupRoleRelations)) { + // 转map + pgrouRelationMap = saasPgroupRoleRelations.stream().collect(Collectors.groupingBy(SaasPgroupRoleRelation::getRoleId)); + // 查询权限集 + pGroupMap = permissionGroupService.query(QuerySaasPermissionGroupReq.builder() + .isCommon(isCommon) + .ids(saasPgroupRoleRelations.stream().map(SaasPgroupRoleRelation::getGroupId).collect(Collectors.toList())) + .workspaceId(workspaceId) + .ouId(ouId) + .build()) + // 转map + .stream().collect(Collectors.groupingBy(SaasPermissionGroupVO::getId)); + } } Map> finalPgrouRelationMap = pgrouRelationMap; Map> finalPGroupMap = pGroupMap; @@ -173,7 +179,7 @@ public class RoleServiceImpl implements RoleService { .in(CollectionUtils.isNotEmpty(req.getOuId()),SaasRole::getOwnerOuId,req.getOuId()) .orderByDesc(BaseEntity::getId) .list(); - return getByIds(list.stream().map(BaseEntity::getId).collect(Collectors.toList()), req.getIsCommon(),req.getWorkspaceId(),req.getOuId()); + return getByIds(list.stream().map(BaseEntity::getId).collect(Collectors.toList()), req.getIsCommon(),req.getWorkspaceId(),req.getOuId(),req.getIncludePermissionGroup()); } @Override