From 0d955b0425c7ad4fd1cf4decffaf3be3bfaef079 Mon Sep 17 00:00:00 2001 From: An Yong Shuai <1539893812@qq.com> Date: Sat, 13 Apr 2024 08:53:56 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8F=9C=E5=8D=95=E7=AE=A1=E7=90=86=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SysMenuServiceImpl.java | 47 ++++++------------- 1 file changed, 14 insertions(+), 33 deletions(-) diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java index 3af6106..6fa00ae 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java @@ -70,60 +70,41 @@ public class SysMenuServiceImpl extends ServiceImpl impl menu.getParams().put("userId", userId); menuList = menuMapper.selectMenuListByUserId(menu); } - /** - * 去重,并获取查询到的菜单parentId 集合 - */ List list = list(menuList); List collect = menuList.stream().distinct() .map(SysMenu::getParentId) .collect(Collectors.toList()); System.out.println(collect); - /* - *如果没有parentID 集合就返回 菜单表 - */ -// if (collect.size()==0){ -// return menuList; -// } - /** - * 根据parentID 集合获取 所有父类菜单 - */ List sysMenus=menuMapper.selectMenuByparentList(collect); List finalMenuList = menuList; - /** - *把所有查到的 父类放入 菜单列表中 - */ sysMenus.forEach(sysMenu -> { finalMenuList.add(sysMenu); }); - /** - * 菜单列表 去重 防止重复 并在获取所有的parentID 获取更高一级的菜单 - */ - List collect2 = finalMenuList.stream().distinct() + //菜单列表 去重 防止重复 并在获取所有的parentID 获取更高一级的菜单 + List ids = finalMenuList.stream().distinct() .map(SysMenu::getParentId) .collect(Collectors.toList()); - /** - * 再次根据 parentID 查询 菜单 防止遗漏 - */ - List sysMenus1 = menuMapper.selectMenuByparentList(collect2); - sysMenus1.forEach(sysMenu -> { + //再次根据 parentID 查询 菜单 防止遗漏 + List menus = menuMapper.selectMenuByparentList(ids); + menus.forEach(sysMenu -> { finalMenuList.add(sysMenu); }); - /** - * 去重 防止重复 , 并转为菜单列表 - */ - List collect1 = finalMenuList + //去重 防止重复 , 并转为菜单列表 + List sysMenuList = finalMenuList .stream() .distinct() .collect(Collectors.toList()); - - - collect1.addAll(list); - List collect3 = collect1.stream().distinct().collect(Collectors.toList()); + sysMenuList.addAll(list); + List collect3 = sysMenuList.stream().distinct().collect(Collectors.toList()); return collect3; - } + /** + * 递归查询 + * @param menuList + * @return + */ public List list(List menuList){ List collect = menuList.stream().distinct() .map(SysMenu::getMenuId).collect(Collectors.toList());