feat(REQ-2899):查询关联关系调整

This commit is contained in:
李昆鹏 2024-09-06 14:44:00 +08:00
parent 79ce4f4252
commit 5b99747ed0

View File

@ -649,15 +649,11 @@ public class SaasPageElementServiceImpl extends ServiceImpl<SaasPageElementMappe
return Collections.emptyList();
}
List<SaasFeatureResource> pageFeatureResources = saasFeatureResourceDao.lambdaQuery()
.eq(SaasFeatureResource::getTerminal, dbPageElement.getTerminal())
.in(SaasFeatureResource::getUniCode, relations.stream().map(SaasPageElementFeatureResourceRelation::getFeatureResourceUniCode).collect(Collectors.toSet()))
.in(SaasFeatureResource::getFeatureType, Lists.newArrayList(FeatureResourceType.PAGE.getCode(), FeatureResourceType.APP_ENTRY.getCode()))
.eq(BaseEntity::getIsDelete, DeleteEnum.NORMAL.getValue())
.list();
List<SaasFeatureResource> pageFeatureResources = getPageFeatureResources(dbPageElement.getTerminal(), relations.stream().map(SaasPageElementFeatureResourceRelation::getFeatureResourceUniCode).collect(Collectors.toList()));
if (CollectionUtils.isEmpty(pageFeatureResources)) {
return Collections.emptyList();
}
List<SaasFeatureResource> pageParentFeatureResources = saasFeatureResourceDao.lambdaQuery()
.eq(SaasFeatureResource::getTerminal, dbPageElement.getTerminal())
.in(SaasFeatureResource::getId, pageFeatureResources.stream().map(SaasFeatureResource::getParentId).collect(Collectors.toSet()))
@ -856,4 +852,22 @@ public class SaasPageElementServiceImpl extends ServiceImpl<SaasPageElementMappe
return resps;
}
private List<SaasFeatureResource> getPageFeatureResources(String terminal, List<String> uniCodes) {
List<SaasFeatureResource> pageFeatureResources = saasFeatureResourceDao.lambdaQuery()
.eq(SaasFeatureResource::getTerminal, terminal)
.in(SaasFeatureResource::getUniCode, uniCodes)
.eq(BaseEntity::getIsDelete, DeleteEnum.NORMAL.getValue())
.list();
List<Long> allIds = pageFeatureResources.stream().map(e -> Arrays.stream(e.getPath().split(",")).filter(StringUtils::isNotBlank).map(Long::valueOf)
.collect(Collectors.toList())).flatMap(List::stream).distinct().collect(Collectors.toList());
return saasFeatureResourceDao.lambdaQuery()
.eq(SaasFeatureResource::getTerminal, terminal)
.in(SaasFeatureResource::getId, allIds)
.in(SaasFeatureResource::getFeatureType, Lists.newArrayList(FeatureResourceType.PAGE.getCode(), FeatureResourceType.APP_ENTRY.getCode()))
.eq(BaseEntity::getIsDelete, DeleteEnum.NORMAL.getValue())
.list();
}
}