feat(REQ-2545): 查询页面元素接口调整,增加非路由页面向下找的逻辑
This commit is contained in:
parent
85b7af5e04
commit
de108e0c68
@ -12,14 +12,21 @@ import lombok.*;
|
|||||||
* @version 1.0
|
* @version 1.0
|
||||||
* @date 2024/6/18
|
* @date 2024/6/18
|
||||||
*/
|
*/
|
||||||
@Getter
|
@Data
|
||||||
@Setter
|
@NoArgsConstructor
|
||||||
@ToString
|
@AllArgsConstructor
|
||||||
@Builder
|
@Builder
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@TableName(value = "saas_page_element_feature_resource_relation", autoResultMap = true)
|
||||||
@TableName("saas_page_element_feature_resource_relation")
|
|
||||||
public class SaasPageElementFeatureResourceRelation extends BaseEntity<SaasPageElementFeatureResourceRelation> {
|
public class SaasPageElementFeatureResourceRelation extends BaseEntity<SaasPageElementFeatureResourceRelation> {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 绑定类型:0(默认类型) 1(页面默认路由)
|
||||||
|
* @see cn.axzo.tyr.client.common.enums.PageElementFeatureResourceRelationTypeEnum
|
||||||
|
*/
|
||||||
|
@TableField("type")
|
||||||
|
private Integer type;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建人
|
* 创建人
|
||||||
*/
|
*/
|
||||||
@ -32,13 +39,6 @@ public class SaasPageElementFeatureResourceRelation extends BaseEntity<SaasPageE
|
|||||||
@TableField("update_by")
|
@TableField("update_by")
|
||||||
private Long updateBy;
|
private Long updateBy;
|
||||||
|
|
||||||
/**
|
|
||||||
* 绑定类型:0(默认类型) 1(页面默认路由)
|
|
||||||
* @see cn.axzo.tyr.client.common.enums.PageElementFeatureResourceRelationTypeEnum
|
|
||||||
*/
|
|
||||||
@TableField("type")
|
|
||||||
private Integer type;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 页面元素code
|
* 页面元素code
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -191,22 +191,28 @@ public class SaasPageElementServiceImpl implements SaasPageElementService {
|
|||||||
log.warn("绑定关系不存在,页面元素编码:{}", request.getPageElementCode());
|
log.warn("绑定关系不存在,页面元素编码:{}", request.getPageElementCode());
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
List<SaasPageElementFeatureResourceRelation> resultRelations = Lists.newArrayList(relations);
|
||||||
|
// 路由页面向下找,非路由页面向上找。
|
||||||
List<SaasPageElementFeatureResourceRelation> pageRouteRelations = relations.stream().filter(relation -> PageElementFeatureResourceRelationTypeEnum.PAGE_ROUTE.getValue().equals(relation.getType())).collect(Collectors.toList());
|
List<SaasPageElementFeatureResourceRelation> pageRouteRelations = relations.stream().filter(relation -> PageElementFeatureResourceRelationTypeEnum.PAGE_ROUTE.getValue().equals(relation.getType())).collect(Collectors.toList());
|
||||||
if (CollectionUtils.isEmpty(pageRouteRelations)) {
|
if (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(), null);
|
||||||
|
if (CollectionUtils.isNotEmpty(resourceRelations)) {
|
||||||
|
// 这里会存在重复的数据,下面在过滤转为Set的时候做了去重
|
||||||
|
resultRelations.addAll(resourceRelations);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
log.warn("页面路由的绑定关系不存在,页面元素编码:{}", request.getPageElementCode());
|
log.warn("页面路由的绑定关系不存在,页面元素编码:{}", request.getPageElementCode());
|
||||||
return null;
|
// 查询页面的所有元素
|
||||||
}
|
List<String> pageElementCodes = saasPageElementDao.listByGroupCodesAndExcludeIds(relations.stream().map(SaasPageElementFeatureResourceRelation::getPageElementCode).collect(Collectors.toList()),null, request.getTerminal(), null)
|
||||||
|
.stream().map(SaasPageElement::getCode).distinct().collect(Collectors.toList());
|
||||||
|
|
||||||
// 查询默认路由页面及页面下组件的绑定关系
|
resultRelations = saasPageElementFeatureResourceRelationDao.listByUniCodeAndTerminal(relations.stream().map(SaasPageElementFeatureResourceRelation::getFeatureResourceUniCode).collect(Collectors.toList()), request.getTerminal(), null)
|
||||||
List<SaasFeatureResource> saasFeatureResources = listDescendantByUniCodeAndTerminal(request.getTerminal(), pageRouteRelations.stream().map(SaasPageElementFeatureResourceRelation::getFeatureResourceUniCode).collect(Collectors.toList()));
|
.stream().filter(e -> pageElementCodes.contains(e.getPageElementCode())).distinct().collect(Collectors.toList());
|
||||||
if (CollectionUtils.isEmpty(saasFeatureResources)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
List<SaasPageElementFeatureResourceRelation> resourceRelations = saasPageElementFeatureResourceRelationDao.listByUniCodeAndTerminal(saasFeatureResources.stream().map(SaasFeatureResource::getUniCode).collect(Collectors.toList()), request.getTerminal(), null);
|
|
||||||
if (CollectionUtils.isNotEmpty(resourceRelations)) {
|
|
||||||
// 这里会存在重复的数据,下面在过滤转为Set的时候做了去重
|
|
||||||
relations.addAll(resourceRelations);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 过滤用户有权限的featureCodes
|
// 过滤用户有权限的featureCodes
|
||||||
@ -214,7 +220,7 @@ public class SaasPageElementServiceImpl implements SaasPageElementService {
|
|||||||
.personId(request.getPersonId())
|
.personId(request.getPersonId())
|
||||||
.workspaceOusPairs(Lists.newArrayList(IdentityAuthReq.WorkspaceOuPair.builder().ouId(request.getOuId()).workspaceId(request.getWorkspaceId()).build()))
|
.workspaceOusPairs(Lists.newArrayList(IdentityAuthReq.WorkspaceOuPair.builder().ouId(request.getOuId()).workspaceId(request.getWorkspaceId()).build()))
|
||||||
.terminal(Lists.newArrayList(request.getTerminal()))
|
.terminal(Lists.newArrayList(request.getTerminal()))
|
||||||
.featureCode(relations.stream().map(SaasPageElementFeatureResourceRelation::getPageElementCode).collect(Collectors.toSet()))
|
.featureCode(resultRelations.stream().map(SaasPageElementFeatureResourceRelation::getPageElementCode).collect(Collectors.toSet()))
|
||||||
.type(SaasPgroupPermissionRelation.NEW_FEATURE)
|
.type(SaasPgroupPermissionRelation.NEW_FEATURE)
|
||||||
.build());
|
.build());
|
||||||
if (Objects.isNull(res) || CollectionUtils.isEmpty(res.getPermissions())) {
|
if (Objects.isNull(res) || CollectionUtils.isEmpty(res.getPermissions())) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user