feat(REQ-2545): 页面绑定关系增加类型字段。

This commit is contained in:
李昆鹏 2024-07-03 09:58:17 +08:00
parent 31a10e9403
commit 36de1c9d76

View File

@ -185,19 +185,25 @@ public class SaasPageElementServiceImpl implements SaasPageElementService {
@Override
public GetUserHasPermissionPageElementResp getUserHasPermissionPageElement(GetUserHasPermissionPageElementReq request) {
// 页面绑定的所有关系包含页面路由的绑定默认绑定关系
List<SaasPageElementFeatureResourceRelation> relations = saasPageElementFeatureResourceRelationDao.listByPageElementCode(request.getPageElementCode(), request.getTerminal(), Lists.newArrayList(PageElementFeatureResourceRelationTypeEnum.PAGE_ROUTE.getValue(), PageElementFeatureResourceRelationTypeEnum.DEFAULT.getValue()));
if (CollectionUtils.isEmpty(relations)) {
log.warn("绑定关系不存在,页面元素编码:{}", request.getPageElementCode());
return null;
}
List<SaasFeatureResource> saasFeatureResources = listDescendantByUniCodeAndTerminal(request.getTerminal(), relations.stream().map(SaasPageElementFeatureResourceRelation::getFeatureResourceUniCode).collect(Collectors.toList()));
List<SaasPageElementFeatureResourceRelation> pageRouteRelations = relations.stream().filter(relation -> PageElementFeatureResourceRelationTypeEnum.PAGE_ROUTE.getValue().equals(relation.getType())).collect(Collectors.toList());
AssertUtil.isTrue(CollectionUtils.isNotEmpty(pageRouteRelations), "页面未绑定路由");
// 这里为了查询默认路由页面及页面下组件的绑定关系
List<SaasFeatureResource> saasFeatureResources = listDescendantByUniCodeAndTerminal(request.getTerminal(), pageRouteRelations.stream().map(SaasPageElementFeatureResourceRelation::getFeatureResourceUniCode).collect(Collectors.toList()));
if (CollectionUtils.isEmpty(saasFeatureResources)) {
return null;
}
List<SaasPageElementFeatureResourceRelation> resourceRelations = saasPageElementFeatureResourceRelationDao.listByUniCodeAndTerminal(saasFeatureResources.stream().map(SaasFeatureResource::getUniCode).collect(Collectors.toList()), request.getTerminal());
if (CollectionUtils.isEmpty(resourceRelations)) {
return null;
if (CollectionUtils.isNotEmpty(resourceRelations)) {
// 这里会存在重复的数据下面在过滤转为Set的时候做了去重
relations.addAll(resourceRelations);
}
// 过滤用户有权限的featureCodes
@ -205,7 +211,7 @@ public class SaasPageElementServiceImpl implements SaasPageElementService {
.personId(request.getPersonId())
.workspaceOusPairs(Lists.newArrayList(IdentityAuthReq.WorkspaceOuPair.builder().ouId(request.getOuId()).workspaceId(request.getWorkspaceId()).build()))
.terminal(Lists.newArrayList(request.getTerminal()))
.featureCode(resourceRelations.stream().map(SaasPageElementFeatureResourceRelation::getPageElementCode).collect(Collectors.toSet()))
.featureCode(relations.stream().map(SaasPageElementFeatureResourceRelation::getPageElementCode).collect(Collectors.toSet()))
.type(SaasPgroupPermissionRelation.NEW_FEATURE)
.build());
if (Objects.isNull(res) || CollectionUtils.isEmpty(res.getPermissions())) {
@ -214,8 +220,6 @@ public class SaasPageElementServiceImpl implements SaasPageElementService {
List<String> hasPermissionFeatureCodes = res.getPermissions().stream().filter(e -> CollectionUtils.isNotEmpty(e.getPermissionPoint()))
.map(e -> e.getPermissionPoint().stream().map(IdentityAuthRes.PermissionPoint::getFeatureCode).collect(Collectors.toList())).flatMap(List::stream).distinct().collect(Collectors.toList());
log.info("getUserHasPermissionPageElement personId:{} pageElementCode:{}, hasPermissionFeatureCodes:{}", request.getPersonId(), request.getPageElementCode(), hasPermissionFeatureCodes);
return GetUserHasPermissionPageElementResp.builder()