Merge branch 'hotfix/20241021' into feature/REQ-2595

This commit is contained in:
lilong 2024-10-28 10:48:52 +08:00
commit 0d18367995
2 changed files with 28 additions and 6 deletions

View File

@ -22,4 +22,8 @@ public class DetailFeatureResourceReq {
* 资源类型1-菜单 2-页面 3-应用入口 4-组件;5-root节点 * 资源类型1-菜单 2-页面 3-应用入口 4-组件;5-root节点
*/ */
private Integer featureType; private Integer featureType;
private Boolean needChildren;
private Boolean needPageElement;
} }

View File

@ -42,6 +42,7 @@ import cn.axzo.tyr.server.model.convert.SaasFeatureResourceConvert;
import cn.axzo.tyr.server.repository.dao.SaasFeatureDao; import cn.axzo.tyr.server.repository.dao.SaasFeatureDao;
import cn.axzo.tyr.server.repository.dao.SaasFeatureResourceDao; import cn.axzo.tyr.server.repository.dao.SaasFeatureResourceDao;
import cn.axzo.tyr.server.repository.dao.SaasPgroupRoleRelationDao; import cn.axzo.tyr.server.repository.dao.SaasPgroupRoleRelationDao;
import cn.axzo.tyr.server.repository.entity.ProductModule;
import cn.axzo.tyr.server.repository.entity.SaasFeature; import cn.axzo.tyr.server.repository.entity.SaasFeature;
import cn.axzo.tyr.server.repository.entity.SaasFeatureResource; import cn.axzo.tyr.server.repository.entity.SaasFeatureResource;
import cn.axzo.tyr.server.repository.entity.SaasPageElementFeatureResourceRelation; import cn.axzo.tyr.server.repository.entity.SaasPageElementFeatureResourceRelation;
@ -58,8 +59,11 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.Pair; import cn.hutool.core.lang.Pair;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader; import com.google.common.cache.CacheLoader;
@ -299,11 +303,19 @@ public class SaasFeatureResourceServiceImpl extends ServiceImpl<SaasFeatureResou
@Override @Override
public FeatureResourceTreeNode getTreeFeatureDescendant(DetailFeatureResourceReq param) { public FeatureResourceTreeNode getTreeFeatureDescendant(DetailFeatureResourceReq param) {
List<SaasFeatureResource> descendants = featureResourceDao.lambdaQuery()
LambdaQueryChainWrapper<SaasFeatureResource> wrapper = featureResourceDao.lambdaQuery()
.eq(BaseEntity::getIsDelete,0) .eq(BaseEntity::getIsDelete,0)
.eq(ObjectUtil.isNotNull(param.getFeatureType()), SaasFeatureResource::getFeatureType, param.getFeatureType()) .eq(ObjectUtil.isNotNull(param.getFeatureType()), SaasFeatureResource::getFeatureType, param.getFeatureType());
.apply("FIND_IN_SET('" + param.getFeatureId() + "', path)")
.list(); if (BooleanUtils.isTrue(param.getNeedChildren())) {
wrapper.apply("FIND_IN_SET('" + param.getFeatureId() + "', path)");
} else {
wrapper.eq(BaseEntity::getId, param.getFeatureId());
}
List<SaasFeatureResource> descendants = wrapper.list();
if (CollectionUtil.isEmpty(descendants)) { if (CollectionUtil.isEmpty(descendants)) {
return null; return null;
} }
@ -323,7 +335,7 @@ public class SaasFeatureResourceServiceImpl extends ServiceImpl<SaasFeatureResou
FeatureResourceTreeNode featureResourceTreeNode = treeList.get(0); FeatureResourceTreeNode featureResourceTreeNode = treeList.get(0);
List<String> allUniCodes = descendants.stream().map(SaasFeatureResource::getUniCode).filter(StringUtils::isNotBlank).collect(Collectors.toList()); List<String> allUniCodes = descendants.stream().map(SaasFeatureResource::getUniCode).filter(StringUtils::isNotBlank).collect(Collectors.toList());
fillPageElement2PageFeatureResource(treeList, allUniCodes); fillPageElement2PageFeatureResource(treeList, allUniCodes, param);
return featureResourceTreeNode; return featureResourceTreeNode;
} }
@ -802,7 +814,13 @@ public class SaasFeatureResourceServiceImpl extends ServiceImpl<SaasFeatureResou
return parent.getPath(); return parent.getPath();
} }
private void fillPageElement2PageFeatureResource(List<FeatureResourceTreeNode> featureResourceTreeNodes, List<String> allUniCodes) { private void fillPageElement2PageFeatureResource(List<FeatureResourceTreeNode> featureResourceTreeNodes,
List<String> allUniCodes,
DetailFeatureResourceReq detailFeatureResourceReq) {
if (BooleanUtils.isNotTrue(detailFeatureResourceReq.getNeedPageElement())) {
return;
}
Map<String, List<PageElementBasicDTO>> uniCodeElementsMap = saasPageElementService.getByTerminalAndUniCodes(featureResourceTreeNodes.get(0).getTerminal(), allUniCodes) Map<String, List<PageElementBasicDTO>> uniCodeElementsMap = saasPageElementService.getByTerminalAndUniCodes(featureResourceTreeNodes.get(0).getTerminal(), allUniCodes)
.stream().collect(Collectors.groupingBy(PageElementBasicDTO::getUniCode)); .stream().collect(Collectors.groupingBy(PageElementBasicDTO::getUniCode));