From 76382d63d3b41579e83b3b2f927b937cfca25fae Mon Sep 17 00:00:00 2001 From: zhansihu Date: Mon, 18 Sep 2023 16:05:23 +0800 Subject: [PATCH] =?UTF-8?q?feature(=E6=9D=83=E9=99=90=E7=82=B9):=20?= =?UTF-8?q?=E6=A0=91=E5=BD=A2=E6=9F=A5=E8=AF=A2=E6=94=AF=E6=8C=81=E5=B1=82?= =?UTF-8?q?=E7=BA=A7=E5=8F=82=E6=95=B0=EF=BC=9B=E5=AD=97=E6=AE=B5=E6=89=A9?= =?UTF-8?q?=E5=B1=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../permission/PermissionPointTreeNode.java | 26 +++++++++++++++++ .../PermissionPointTreeQueryReq.java | 7 +++-- .../impl/PermissionPointServiceImpl.java | 29 ++++++++++++++----- .../permission/PermissionPointTest.java | 3 +- 4 files changed, 54 insertions(+), 11 deletions(-) diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/PermissionPointTreeNode.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/PermissionPointTreeNode.java index 5bc11adc..fc9081c5 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/PermissionPointTreeNode.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/PermissionPointTreeNode.java @@ -52,9 +52,35 @@ public class PermissionPointTreeNode implements IBaseTree children; + /** + * 网关专属字段,所属应用 + */ + private String appName; + + /** + * 网关专属字段 ,功能URL,对应后端接口url + */ + private String featureUrl; + @JsonIgnore @Override diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/PermissionPointTreeQueryReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/PermissionPointTreeQueryReq.java index 7cbcc53e..6f869369 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/PermissionPointTreeQueryReq.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/PermissionPointTreeQueryReq.java @@ -33,8 +33,9 @@ public class PermissionPointTreeQueryReq { /** 权限点terminal对应workspaceType **/ private List workspaceType; - /** 权限点元素类型 - * 0.菜单 1.页面 3按钮 + /** + * 过滤层级-包含顶层两级 + * 1-工作台类型 2-工作台 * **/ - private Integer featureType; + private Integer maxLevel; } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionPointServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionPointServiceImpl.java index a23ca5a3..17627ab0 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionPointServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionPointServiceImpl.java @@ -91,9 +91,30 @@ public class PermissionPointServiceImpl implements PermissionPointService { List resultTree = buildTopNodes(nodesResult, needAllTop); watch.stop(); log.info("permission-point-tree cost:{}", watch.prettyPrint()); + //层级过滤 + filterLevel(resultTree, request.getMaxLevel(), 1); return resultTree; } + private void filterLevel(List resultTree, Integer maxLevel, Integer currentLevel) { + if (maxLevel == null || resultTree == null) { + return; + } + if (currentLevel < maxLevel) { + //递归子级 + for (PermissionPointTreeNode node : resultTree) { + filterLevel(node.getChildren(), maxLevel, currentLevel + 1); + } + } else { + //清空下级 + for (PermissionPointTreeNode node : resultTree) { + node.setChildren(null); + } + } + + } + + private List buildTopNodes(List nodesResult, boolean needAllTop) { //构建workspace-terminal工作台层级 @@ -451,17 +472,11 @@ public class PermissionPointServiceImpl implements PermissionPointService { } private PermissionPointTreeNode feature2Node(SaasFeature feature) { - PermissionPointTreeNode node = new PermissionPointTreeNode(); + PermissionPointTreeNode node = BeanMapper.copyBean(feature, PermissionPointTreeNode.class); node.setPermissionPointId(feature.getId()); node.setPermissionName(feature.getFeatureName()); node.setCode(feature.getFeatureCode()); - node.setParentId(feature.getParentId()); - node.setTerminal(feature.getTerminal()); - node.setFeatureType(feature.getFeatureType()); node.setFeatureTypeDesc(FeatureType.apply(feature.getFeatureType()).getDesc()); - node.setDelegatedType(feature.getDelegatedType()); - node.setPath(feature.getPath()); - node.setSort(feature.getSort()); return node; } diff --git a/tyr-server/src/test/java/cn/axzo/tyr/server/permission/PermissionPointTest.java b/tyr-server/src/test/java/cn/axzo/tyr/server/permission/PermissionPointTest.java index 1fd25e78..ed81af0c 100644 --- a/tyr-server/src/test/java/cn/axzo/tyr/server/permission/PermissionPointTest.java +++ b/tyr-server/src/test/java/cn/axzo/tyr/server/permission/PermissionPointTest.java @@ -47,7 +47,8 @@ public class PermissionPointTest { //request.setKeyword("预警"); //request.setWorkspaceType(Arrays.asList("ent")); //request.setTerminalList(Arrays.asList("NT_CMS_WEB_ENT_ZB")); - request.setDelegateType(2); + request.setDelegateType(0); + request.setMaxLevel(3); ApiResult> result = controller.listTreeNodes(request); System.out.println("---------------"); System.out.println(JSON.toJSONString(result, SerializerFeature.DisableCircularReferenceDetect));