From 14a84d92b5f1b9cf5d106738bc9cdbfcb142ca8b Mon Sep 17 00:00:00 2001 From: stylefeng Date: Thu, 31 Oct 2024 10:38:24 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=908.3.1=E3=80=91=E3=80=90role=E3=80=91?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=9D=83=E9=99=90=E5=88=97=E8=A1=A8=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=8Cchildren=E5=A6=82=E6=9E=9C=E6=98=AF=E7=A9=BA?= =?UTF-8?q?=E8=BF=94=E5=9B=9Enull?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../factory/RoleBindPermissionFactory.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/factory/RoleBindPermissionFactory.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/factory/RoleBindPermissionFactory.java index 3b387d497..9c9bd089c 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/factory/RoleBindPermissionFactory.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/factory/RoleBindPermissionFactory.java @@ -53,6 +53,9 @@ public class RoleBindPermissionFactory { List roleBindPermissionItems = new DefaultTreeBuildFactory().doTreeBuild(apps); roleBindPermissionResponse.setAppPermissionList(roleBindPermissionItems); + // 递归遍历roleBindPermissionItems,如果children为空,则设置为null而不是空数组 + circulateDeleteEmptyChildren(roleBindPermissionItems); + return roleBindPermissionResponse; } @@ -125,11 +128,18 @@ public class RoleBindPermissionFactory { } appItem.setChecked(true); + + if (ObjectUtil.isEmpty(appItem.getChildren())) { + return; + } for (RoleBindPermissionItem menuItem : appItem.getChildren()) { if (!menuItem.getChecked()) { appItem.setChecked(false); } + if (ObjectUtil.isEmpty(menuItem.getChildren())) { + continue; + } for (RoleBindPermissionItem options : menuItem.getChildren()) { if (!options.getChecked()) { appItem.setChecked(false); @@ -138,4 +148,20 @@ public class RoleBindPermissionFactory { } } + /** + * 递归遍历,删掉为空数组的children属性,改为null + * + * @author fengshuonan + * @since 2024/10/31 10:24 + */ + private static void circulateDeleteEmptyChildren(List params) { + for (RoleBindPermissionItem item : params) { + if (ObjectUtil.isEmpty(item.getChildren())) { + item.setChildren(null); + } else { + circulateDeleteEmptyChildren(item.getChildren()); + } + } + } + }