From 37f3a1de5069a7e8088cbe7c90ecb16362c9546d Mon Sep 17 00:00:00 2001 From: TanJ Date: Fri, 15 Sep 2023 18:04:11 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=AE=9E=E4=BD=93=E7=B1=BB=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E8=87=AA=E6=9C=89=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1.saasRoleVo添加权限过滤 2.菜单添加平铺展示 --- .../permission/PermissionPointTreeNode.java | 29 +++++++++++++++++++ .../axzo/tyr/client/model/vo/SaasRoleVO.java | 1 + 2 files changed, 30 insertions(+) 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 16bdf184..5bc11adc 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 @@ -1,10 +1,13 @@ package cn.axzo.tyr.client.model.permission; import cn.axzo.basics.common.model.IBaseTree; +import cn.axzo.framework.domain.ServiceException; +import cn.hutool.core.collection.CollectionUtil; import com.alibaba.fastjson.annotation.JSONField; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; +import java.util.ArrayList; import java.util.List; /** @@ -76,4 +79,30 @@ public class PermissionPointTreeNode implements IBaseTree nodeChildren) { this.children = nodeChildren; } + /** + * 将树型结构平铺展示。会将当前节点也添加到children中 + */ + public void flatChildren() { + if (CollectionUtil.isNotEmpty(children)) { + this.children = getNode(new ArrayList<>(),children, 10); + } + } + + private List getNode(List rootList,List list,Integer maxDepth) { + if (maxDepth < 1) { + throw new ServiceException("超过最大递归深度,可能发生死循环"); + } + if (CollectionUtil.isEmpty(list)) { + return rootList; + } + list.stream().forEach(e -> { + getNode(rootList, e.getChildren(), maxDepth - 1); + e.setChildren(null); + } ); + + rootList.addAll(list); + + + return rootList; + } } diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/vo/SaasRoleVO.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/vo/SaasRoleVO.java index fd657e65..ac4a41f9 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/vo/SaasRoleVO.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/vo/SaasRoleVO.java @@ -82,6 +82,7 @@ public class SaasRoleVO { // 通用权限 if (CollectionUtil.isEmpty(permissionGroupVO.getScopes())) { permissionPoint.addAll(permissionGroupVO.getFeature()); + continue; } List scopes = permissionGroupVO.getScopes();