From 50a4d12540229d93b6dc7040438ec994c9b9966d Mon Sep 17 00:00:00 2001 From: zhansihu Date: Tue, 12 Sep 2023 14:41:07 +0800 Subject: [PATCH] =?UTF-8?q?refactor(=E6=9D=83=E9=99=90=E7=82=B9):=20?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=80=9A=E8=BF=87ID=E8=BF=87=E6=BB=A4?= =?UTF-8?q?=E6=A0=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../model/permission/PermissionPointTreeQueryReq.java | 3 ++- .../service/impl/PermissionPointServiceImpl.java | 10 +++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) 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 978a9d01..28ed8ce6 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 @@ -3,6 +3,7 @@ package cn.axzo.tyr.client.model.permission; import lombok.Data; import java.util.List; +import java.util.Set; /** * 权限点树形查询请求参数 @@ -27,7 +28,7 @@ public class PermissionPointTreeQueryReq { private List terminalList; /** 权限点ID列表 **/ - private List ids; + private Set ids; /** 权限点terminal对应workspaceType **/ private List workspaceType; 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 001fe90f..2078213c 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 @@ -140,7 +140,8 @@ public class PermissionPointServiceImpl implements PermissionPointService { private List filterTreeNode(PermissionPointTreeQueryReq request, List treeList) { //过滤条件 boolean needFilter = StrUtil.isNotBlank(request.getKeyword()) - || request.getDelegateType() != 0; + || request.getDelegateType() != 0 + || CollectionUtil.isNotEmpty(request.getIds()); if (needFilter) { return treeList.stream().filter(x -> this.recursionFilter(request, x)).collect(Collectors.toList()); @@ -149,14 +150,17 @@ public class PermissionPointServiceImpl implements PermissionPointService { } private boolean recursionFilter(PermissionPointTreeQueryReq request, PermissionPointTreeNode node) { - + // 过滤参数为空时 认为匹配成功 //条件匹配 - 关键字 boolean matchKeyword = request.getKeyword() == null || node.getPermissionName().contains(request.getKeyword()); //条件匹配 - 授权策略类型 boolean matchDelegateType = request.getDelegateType() == 0 || Objects.equals(request.getDelegateType(), node.getDelegatedType()); - if (matchKeyword && matchDelegateType) { + //条件匹配 - ID + boolean matchId = CollectionUtil.isEmpty(request.getIds()) || request.getIds().contains(node.getPermissionPointId()); + + if (matchKeyword && matchDelegateType && matchId) { //如果匹配直接返回,否则过滤子节点 return true; }