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());