Merge branch 'feature/REQ-2186'

This commit is contained in:
lilong 2024-06-06 18:12:40 +08:00
commit 551a2de23e

View File

@ -34,6 +34,7 @@ import cn.axzo.tyr.server.model.RoleWithFeature;
import cn.axzo.tyr.server.model.UserIdentity;
import cn.axzo.tyr.server.model.WorkspaceFeatureRelation;
import cn.axzo.tyr.server.repository.dao.ProductModuleDao;
import cn.axzo.tyr.server.repository.dao.SaasFeatureResourceDao;
import cn.axzo.tyr.server.repository.entity.SaasFeatureResource;
import cn.axzo.tyr.server.repository.entity.SaasRoleUserRelation;
import cn.axzo.tyr.server.service.PermissionQueryService;
@ -83,6 +84,7 @@ public class PermissionQueryServiceImpl implements PermissionQueryService {
private final ServicePkgClient servicePkgClient;
private final ProductModuleDao productModuleDao;
private final ProductFeatureRelationService productFeatureRelationService;
private final SaasFeatureResourceDao saasFeatureResourceDao;
@Override
public List<NavTreeResp> getNavTree(NavTreeReq req) {
@ -120,8 +122,17 @@ public class PermissionQueryServiceImpl implements PermissionQueryService {
.filter(r -> distinctSet.add(r.getId()))
.sorted(Comparator.comparingInt(SaasFeatureResource::getDisplayOrder))
.collect(Collectors.toList());
// 因为存在中间某个节点被隐藏下面节点不需要显示的情况所以构建后的树只要父节点不是根节点都过滤掉
SaasFeatureResource root = saasFeatureResourceDao.lambdaQuery()
.eq(SaasFeatureResource::getTerminal, req.getTerminal())
.eq(SaasFeatureResource::getParentId, 0L)
.one();
//组装导航树
return TreeUtil.buildTree(BeanMapper.copyList(finalResources, NavTreeResp.class));
List<NavTreeResp> navTreeList = TreeUtil.buildTree(BeanMapper.copyList(finalResources, NavTreeResp.class));
//过滤顶级孤儿节点
return navTreeList.stream().filter(t -> Objects.equals(t.getParentId(), root.getId())).collect(Collectors.toList());
}
@Override