From 4d0ae63e4b13fc1a6268119d46b78b69364c3273 Mon Sep 17 00:00:00 2001 From: lilong Date: Tue, 9 Jul 2024 19:35:07 +0800 Subject: [PATCH] =?UTF-8?q?feat:(REQ-2545)=20=E6=9C=89=E6=8C=87=E5=AE=9Aun?= =?UTF-8?q?icode=E6=97=B6=EF=BC=8C=E5=B0=B1=E4=B8=8D=E8=BF=87=E6=BB=A4?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=EF=BC=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/entity/ProductFeatureQuery.java | 2 +- .../impl/PermissionQueryServiceImpl.java | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/ProductFeatureQuery.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/ProductFeatureQuery.java index 18ae541d..9a7a6a1d 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/ProductFeatureQuery.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/ProductFeatureQuery.java @@ -25,7 +25,7 @@ public class ProductFeatureQuery { private Integer workspaceJoinType; // -// private Set featureIds; + private Set featureIds; /** * 菜单资源数节点类型 diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionQueryServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionQueryServiceImpl.java index 289e4748..4a89b677 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionQueryServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionQueryServiceImpl.java @@ -19,6 +19,7 @@ import cn.axzo.tyr.client.model.base.FeatureResourceExtraDO; import cn.axzo.tyr.client.model.base.WorkspaceOUPair; import cn.axzo.tyr.client.model.enums.IdentityType; import cn.axzo.tyr.client.model.product.ProductFeatureRelationVO; +import cn.axzo.tyr.client.model.req.FeatureIdPair; import cn.axzo.tyr.client.model.req.IdentityAuthReq; import cn.axzo.tyr.client.model.req.NavTreeReq; import cn.axzo.tyr.client.model.req.PagePermissionReq; @@ -307,7 +308,9 @@ public class PermissionQueryServiceImpl implements PermissionQueryService { .build()); // 有可能存在资源树被删除的情况 // 因为会存在用户只有菜单权限,下面没有节点,这种需要过滤掉 - saasFeatureResources = filterFeature(saasFeatureResources); + if (StringUtils.isBlank(req.getUniCode())) { + saasFeatureResources = filterFeature(saasFeatureResources); + } if (CollectionUtils.isEmpty(saasFeatureResources)) { return Collections.emptyList(); } @@ -608,7 +611,7 @@ public class PermissionQueryServiceImpl implements PermissionQueryService { List saasRoleUserV2DTOS = listUserPermission(treePermissionReq, featureIds); - List workspaceProducts = listWorkspaceProducts(treePermissionReq); + List workspaceProducts = listWorkspaceProducts(treePermissionReq, featureIds); //免授权 List authFreeFeatureIds = listNotAuthFeatures(treePermissionReq); @@ -627,17 +630,26 @@ public class PermissionQueryServiceImpl implements PermissionQueryService { .collect(Collectors.toList()); } - private List listWorkspaceProducts(TreePermissionReq treePermissionReq) { + private List listWorkspaceProducts(TreePermissionReq treePermissionReq, + List featureIds) { //查询租户产品权限点 Set workspaceIds = treePermissionReq.getWorkspaceOUPairs().stream() .map(WorkspaceOUPair::getWorkspaceId) .collect(Collectors.toSet()); + WorkspaceProductService.WorkspaceProductParam workspaceProductParam = WorkspaceProductService.WorkspaceProductParam.builder() .terminal(treePermissionReq.getTerminal()) .workspaceIds(workspaceIds) .featureResourceTypes(treePermissionReq.getFeatureResourceTypes()) .type(NEW_FEATURE) .build(); + + if (CollectionUtils.isNotEmpty(featureIds)) { + workspaceProductParam.setFeatureIdPairs(Lists.newArrayList(FeatureIdPair.builder() + .featureIds(Sets.newHashSet(featureIds)) + .type(NEW_FEATURE) + .build())); + } return workspaceProductService.listWorkspaceProduct(workspaceProductParam); }