refactor(权限点): 增加通过ID过滤树
This commit is contained in:
parent
26e1438414
commit
50a4d12540
@ -3,6 +3,7 @@ package cn.axzo.tyr.client.model.permission;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 权限点树形查询请求参数
|
* 权限点树形查询请求参数
|
||||||
@ -27,7 +28,7 @@ public class PermissionPointTreeQueryReq {
|
|||||||
private List<String> terminalList;
|
private List<String> terminalList;
|
||||||
|
|
||||||
/** 权限点ID列表 **/
|
/** 权限点ID列表 **/
|
||||||
private List<Long> ids;
|
private Set<Long> ids;
|
||||||
|
|
||||||
/** 权限点terminal对应workspaceType **/
|
/** 权限点terminal对应workspaceType **/
|
||||||
private List<String> workspaceType;
|
private List<String> workspaceType;
|
||||||
|
|||||||
@ -140,7 +140,8 @@ public class PermissionPointServiceImpl implements PermissionPointService {
|
|||||||
private List<PermissionPointTreeNode> filterTreeNode(PermissionPointTreeQueryReq request, List<PermissionPointTreeNode> treeList) {
|
private List<PermissionPointTreeNode> filterTreeNode(PermissionPointTreeQueryReq request, List<PermissionPointTreeNode> treeList) {
|
||||||
//过滤条件
|
//过滤条件
|
||||||
boolean needFilter = StrUtil.isNotBlank(request.getKeyword())
|
boolean needFilter = StrUtil.isNotBlank(request.getKeyword())
|
||||||
|| request.getDelegateType() != 0;
|
|| request.getDelegateType() != 0
|
||||||
|
|| CollectionUtil.isNotEmpty(request.getIds());
|
||||||
|
|
||||||
if (needFilter) {
|
if (needFilter) {
|
||||||
return treeList.stream().filter(x -> this.recursionFilter(request, x)).collect(Collectors.toList());
|
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) {
|
private boolean recursionFilter(PermissionPointTreeQueryReq request, PermissionPointTreeNode node) {
|
||||||
|
// 过滤参数为空时 认为匹配成功
|
||||||
//条件匹配 - 关键字
|
//条件匹配 - 关键字
|
||||||
boolean matchKeyword = request.getKeyword() == null || node.getPermissionName().contains(request.getKeyword());
|
boolean matchKeyword = request.getKeyword() == null || node.getPermissionName().contains(request.getKeyword());
|
||||||
|
|
||||||
//条件匹配 - 授权策略类型
|
//条件匹配 - 授权策略类型
|
||||||
boolean matchDelegateType = request.getDelegateType() == 0 || Objects.equals(request.getDelegateType(), node.getDelegatedType());
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user