|
@@ -70,7 +70,7 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
|
|
|
public PageUtils selectList(Integer page, Integer pageSize, User user, String name) {
|
|
|
List<Menu> list = this.list(
|
|
|
new LambdaQueryWrapper<Menu>().eq(Menu::getHospId, user.getHospId())
|
|
|
- .like(StrUtil.isNotBlank(name),Menu::getName,name)
|
|
|
+ .like(StrUtil.isNotBlank(name), Menu::getName, name)
|
|
|
.orderByAsc(Menu::getOrderNum)
|
|
|
);
|
|
|
|
|
@@ -176,39 +176,34 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
|
|
|
*/
|
|
|
@Override
|
|
|
public List<NavVO> getNav(User user) {
|
|
|
- Long id = user.getId();
|
|
|
- Long hospId = user.getHospId();
|
|
|
- // TODO: 2021/8/5 超级管理员(切换人员操作)
|
|
|
- List<Menu> list = baseMapper.getNav(id, hospId);
|
|
|
+ List<Menu> list = this.list(new LambdaQueryWrapper<Menu>().eq(Menu::getHospId, user.getHospId()).ne(Menu::getType, 2).orderByAsc(Menu::getOrderNum));
|
|
|
+ list.removeIf(i -> i.getType() != 0);
|
|
|
+ // 用户具体不同的是菜单不同
|
|
|
+ List<Menu> menus = baseMapper.getNav(user.getId(), user.getHospId());
|
|
|
+ list.addAll(menus);
|
|
|
List<NavVO> navVOS = BeanUtil.convertList(list, NavVO.class);
|
|
|
- log.info("拷贝后的list:{}", navVOS);
|
|
|
-// List<NavVO> parentNavVOs = navVOS.stream().filter(i -> i.getParentId() == 0L).collect(Collectors.toList());
|
|
|
- List<NavVO> parentNavVOs = baseMapper.getAllParentNav(id, hospId);
|
|
|
- List<NavVO> navVOList = new ArrayList<>();
|
|
|
- for (NavVO parentNavVO : parentNavVOs) {
|
|
|
- List<NavVO> navs = this.getSon(parentNavVO, navVOS);
|
|
|
- navVOList.addAll(navs);
|
|
|
- }
|
|
|
- navVOList.removeIf(next -> CollUtil.isEmpty(next.getChildren()));
|
|
|
- navVOList = navVOList.stream().sorted((Comparator.comparingInt(NavVO::getOrderNum))).collect(Collectors.toList());
|
|
|
- return navVOList;
|
|
|
+ List<NavVO> vos = navVOS.stream().filter(i -> i.getParentId() == 0)
|
|
|
+ .peek(o -> {
|
|
|
+ List<NavVO> son = this.getSon(o, navVOS);
|
|
|
+ if (CollUtil.isNotEmpty(son)) {
|
|
|
+ o.setChildren(son);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ // 移除目录下菜单为空的层级
|
|
|
+ vos.removeIf(next -> CollUtil.isEmpty(next.getChildren()));
|
|
|
+ return vos;
|
|
|
}
|
|
|
|
|
|
private List<NavVO> getSon(NavVO parentNavVO, List<NavVO> list) {
|
|
|
- List<NavVO> navVOs = new ArrayList<>();
|
|
|
- navVOs.add(parentNavVO);
|
|
|
- for (NavVO nav : list) {
|
|
|
- if (parentNavVO.getMenuId().equals(nav.getParentId())) {
|
|
|
- List<NavVO> children = parentNavVO.getChildren();
|
|
|
- if (CollUtil.isEmpty(children)) {
|
|
|
- children = new ArrayList<>();
|
|
|
- }
|
|
|
- children.add(nav);
|
|
|
- parentNavVO.setChildren(children);
|
|
|
- this.getSon(nav, list);
|
|
|
- }
|
|
|
- }
|
|
|
- return navVOs;
|
|
|
+ return list.stream().filter(o -> parentNavVO.getMenuId().equals(o.getParentId()))
|
|
|
+ .peek(i -> {
|
|
|
+ List<NavVO> son = this.getSon(i, list);
|
|
|
+ if (CollUtil.isNotEmpty(son)) {
|
|
|
+ i.setChildren(son);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .collect(Collectors.toList());
|
|
|
}
|
|
|
|
|
|
}
|