菜单管理优化

master
An Yong Shuai 2024-04-13 08:53:56 +08:00
parent 656daa9501
commit 0d955b0425
1 changed files with 14 additions and 33 deletions

View File

@ -70,60 +70,41 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
menu.getParams().put("userId", userId);
menuList = menuMapper.selectMenuListByUserId(menu);
}
/**
* parentId
*/
List<SysMenu> list = list(menuList);
List<Long> collect = menuList.stream().distinct()
.map(SysMenu::getParentId)
.collect(Collectors.toList());
System.out.println(collect);
/*
*parentID
*/
// if (collect.size()==0){
// return menuList;
// }
/**
* parentID
*/
List<SysMenu> sysMenus=menuMapper.selectMenuByparentList(collect);
List<SysMenu> finalMenuList = menuList;
/**
*
*/
sysMenus.forEach(sysMenu -> {
finalMenuList.add(sysMenu);
});
/**
* parentID
*/
List<Long> collect2 = finalMenuList.stream().distinct()
//菜单列表 去重 防止重复 并在获取所有的parentID 获取更高一级的菜单
List<Long> ids = finalMenuList.stream().distinct()
.map(SysMenu::getParentId)
.collect(Collectors.toList());
/**
* parentID
*/
List<SysMenu> sysMenus1 = menuMapper.selectMenuByparentList(collect2);
sysMenus1.forEach(sysMenu -> {
//再次根据 parentID 查询 菜单 防止遗漏
List<SysMenu> menus = menuMapper.selectMenuByparentList(ids);
menus.forEach(sysMenu -> {
finalMenuList.add(sysMenu);
});
/**
*
*/
List<SysMenu> collect1 = finalMenuList
//去重 防止重复 并转为菜单列表
List<SysMenu> sysMenuList = finalMenuList
.stream()
.distinct()
.collect(Collectors.toList());
collect1.addAll(list);
List<SysMenu> collect3 = collect1.stream().distinct().collect(Collectors.toList());
sysMenuList.addAll(list);
List<SysMenu> collect3 = sysMenuList.stream().distinct().collect(Collectors.toList());
return collect3;
}
/**
*
* @param menuList
* @return
*/
public List<SysMenu> list(List<SysMenu> menuList){
List<Long> collect = menuList.stream().distinct()
.map(SysMenu::getMenuId).collect(Collectors.toList());