From f45445073f8cfc8c518662fe9932b27cdf54967f Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: 星期五, 28 八月 2020 10:08:02 +0800
Subject: [PATCH] 优化递归子节点
---
src/main/java/com/ruoyi/project/system/service/impl/SysMenuServiceImpl.java | 23 +++++++++++------------
src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java | 8 +-------
2 files changed, 12 insertions(+), 19 deletions(-)
diff --git a/src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java b/src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java
index 4e0ef4a..6acea9e 100644
--- a/src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java
+++ b/src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java
@@ -267,13 +267,7 @@
{
if (hasChild(list, tChild))
{
- // 鍒ゆ柇鏄惁鏈夊瓙鑺傜偣
- Iterator<SysDept> it = childList.iterator();
- while (it.hasNext())
- {
- SysDept n = (SysDept) it.next();
- recursionFn(list, n);
- }
+ recursionFn(list, tChild);
}
}
}
diff --git a/src/main/java/com/ruoyi/project/system/service/impl/SysMenuServiceImpl.java b/src/main/java/com/ruoyi/project/system/service/impl/SysMenuServiceImpl.java
index e5dda00..fb1c830 100644
--- a/src/main/java/com/ruoyi/project/system/service/impl/SysMenuServiceImpl.java
+++ b/src/main/java/com/ruoyi/project/system/service/impl/SysMenuServiceImpl.java
@@ -178,14 +178,19 @@
public List<SysMenu> buildMenuTree(List<SysMenu> menus)
{
List<SysMenu> returnList = new ArrayList<SysMenu>();
+ List<Long> tempList = new ArrayList<Long>();
+ for (SysMenu dept : menus)
+ {
+ tempList.add(dept.getMenuId());
+ }
for (Iterator<SysMenu> iterator = menus.iterator(); iterator.hasNext();)
{
- SysMenu t = (SysMenu) iterator.next();
- // 鏍规嵁浼犲叆鐨勬煇涓埗鑺傜偣ID,閬嶅巻璇ョ埗鑺傜偣鐨勬墍鏈夊瓙鑺傜偣
- if (t.getParentId() == 0)
+ SysMenu menu = (SysMenu) iterator.next();
+ // 濡傛灉鏄《绾ц妭鐐�, 閬嶅巻璇ョ埗鑺傜偣鐨勬墍鏈夊瓙鑺傜偣
+ if (!tempList.contains(menu.getParentId()))
{
- recursionFn(menus, t);
- returnList.add(t);
+ recursionFn(menus, menu);
+ returnList.add(menu);
}
}
if (returnList.isEmpty())
@@ -406,13 +411,7 @@
{
if (hasChild(list, tChild))
{
- // 鍒ゆ柇鏄惁鏈夊瓙鑺傜偣
- Iterator<SysMenu> it = childList.iterator();
- while (it.hasNext())
- {
- SysMenu n = (SysMenu) it.next();
- recursionFn(list, n);
- }
+ recursionFn(list, tChild);
}
}
}
--
Gitblit v1.9.3