forked from ruoyi/RuoYi-Vue
		
	优化递归子节点
This commit is contained in:
		| @@ -267,13 +267,7 @@ public class SysDeptServiceImpl implements ISysDeptService | ||||
|         { | ||||
|             if (hasChild(list, tChild)) | ||||
|             { | ||||
|                 // 判断是否有子节点 | ||||
|                 Iterator<SysDept> it = childList.iterator(); | ||||
|                 while (it.hasNext()) | ||||
|                 { | ||||
|                     SysDept n = (SysDept) it.next(); | ||||
|                     recursionFn(list, n); | ||||
|                 } | ||||
|                 recursionFn(list, tChild); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|   | ||||
| @@ -178,14 +178,19 @@ public class SysMenuServiceImpl implements ISysMenuService | ||||
|     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 @@ public class SysMenuServiceImpl implements ISysMenuService | ||||
|         { | ||||
|             if (hasChild(list, tChild)) | ||||
|             { | ||||
|                 // 判断是否有子节点 | ||||
|                 Iterator<SysMenu> it = childList.iterator(); | ||||
|                 while (it.hasNext()) | ||||
|                 { | ||||
|                     SysMenu n = (SysMenu) it.next(); | ||||
|                     recursionFn(list, n); | ||||
|                 } | ||||
|                 recursionFn(list, tChild); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 RuoYi
					RuoYi