|
@@ -52,11 +52,11 @@ public class SysMenuServiceImpl extends ServiceImpl<ISysMenuMapper, SysMenu> imp
|
|
|
wrapper.isNull(SysMenu::getParentId);
|
|
|
wrapper.orderByAsc(SysMenu::getSort);
|
|
|
Page<SysMenu> page = this.page(new Page<>(param.getPageNum(),param.getPageSize()), wrapper);
|
|
|
- // List<SysMenuVo> voList = getByParentId(null,page.getRecords(),false,null);
|
|
|
+ List<SysMenuVo> voList = getByParentId(null,page.getRecords(),false,null,null);
|
|
|
|
|
|
- List<SysMenuVo> allVos = setTreeMenuVo(false,null,null);
|
|
|
- List<Long> ids = page.getRecords().parallelStream().map(SysMenu::getId).collect(Collectors.toList());
|
|
|
- List<SysMenuVo> voList = allVos.parallelStream().filter(vo -> ids.contains(vo.getId())).collect(Collectors.toList());
|
|
|
+// List<SysMenuVo> allVos = setTreeMenuVo(false,null,null);
|
|
|
+// List<Long> ids = page.getRecords().parallelStream().map(SysMenu::getId).collect(Collectors.toList());
|
|
|
+// List<SysMenuVo> voList = allVos.parallelStream().filter(vo -> ids.contains(vo.getId())).collect(Collectors.toList());
|
|
|
|
|
|
Page<SysMenuVo> resultPage = new Page<>(page.getCurrent(),page.getSize());
|
|
|
resultPage.setRecords(voList);
|
|
@@ -66,7 +66,7 @@ public class SysMenuServiceImpl extends ServiceImpl<ISysMenuMapper, SysMenu> imp
|
|
|
|
|
|
@Override
|
|
|
public List<SysMenuVo> allShowList() {
|
|
|
- return setTreeMenuVo(true,null,null);
|
|
|
+ return getByParentId(null,null,true,null,null);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -96,11 +96,11 @@ public class SysMenuServiceImpl extends ServiceImpl<ISysMenuMapper, SysMenu> imp
|
|
|
}
|
|
|
menuIds = roleMenus.parallelStream().map(SysRoleMenu::getMenuId).collect(Collectors.toList());
|
|
|
}
|
|
|
- return setTreeMenuVo(true,menuIds,2);
|
|
|
+ return getByParentId(null,null,true,null,2);
|
|
|
}
|
|
|
|
|
|
//递归设置menuTree
|
|
|
- private List<SysMenuVo> getByParentId(Long parentId, List<SysMenu> list, boolean show ,List<Long> menuIds){
|
|
|
+ private List<SysMenuVo> getByParentId(Long parentId, List<SysMenu> list, boolean show ,List<Long> menuIds,Integer notType){
|
|
|
if(list == null){
|
|
|
LambdaQueryWrapper<SysMenu> wrapper = new LambdaQueryWrapper<>();
|
|
|
if(show){
|
|
@@ -114,6 +114,9 @@ public class SysMenuServiceImpl extends ServiceImpl<ISysMenuMapper, SysMenu> imp
|
|
|
if(menuIds != null){
|
|
|
wrapper.in(SysMenu::getId,menuIds);
|
|
|
}
|
|
|
+ if(notType!=null){
|
|
|
+ wrapper.notIn(SysMenu::getType, Arrays.asList(notType));
|
|
|
+ }
|
|
|
list = this.list(wrapper);
|
|
|
}
|
|
|
List<SysMenuVo> sysMenuVos = new ArrayList<>();
|
|
@@ -123,55 +126,21 @@ public class SysMenuServiceImpl extends ServiceImpl<ISysMenuMapper, SysMenu> imp
|
|
|
for (SysMenu record : list) {
|
|
|
SysMenuVo vo = new SysMenuVo();
|
|
|
BeanUtils.copyProperties(record,vo);
|
|
|
+ Meta meta = new Meta();
|
|
|
+ meta.setIcon(record.getIcon());
|
|
|
+ meta.setTitle(record.getName());
|
|
|
+ meta.setHideMenu(record.getHideMenu() == 1);
|
|
|
+ meta.setFrameSrc(null);
|
|
|
+ vo.setMeta(meta);
|
|
|
+
|
|
|
sysMenuVos.add(vo);
|
|
|
- List<SysMenuVo> children = getByParentId(record.getId(),null,show,menuIds);
|
|
|
+ List<SysMenuVo> children = getByParentId(record.getId(),null,show,menuIds,null);
|
|
|
vo.setChildren(children);
|
|
|
}
|
|
|
+ setChildrenNull(sysMenuVos);
|
|
|
return sysMenuVos;
|
|
|
}
|
|
|
|
|
|
- //查询到全部list ,根据parentId组装树形结构
|
|
|
- private List<SysMenuVo> setTreeMenuVo( boolean show ,List<Long> menuIds,Integer notType){
|
|
|
- LambdaQueryWrapper<SysMenu> wrapper = new LambdaQueryWrapper<>();
|
|
|
- wrapper.orderByAsc(SysMenu::getSort);
|
|
|
- if(show){
|
|
|
- wrapper.eq(SysMenu::getIsShow,1);
|
|
|
- }
|
|
|
- if(menuIds != null){
|
|
|
- wrapper.in(SysMenu::getId,menuIds);
|
|
|
- }
|
|
|
- if(notType!=null){
|
|
|
- wrapper.notIn(SysMenu::getType, Arrays.asList(notType));
|
|
|
- }
|
|
|
- List<SysMenu> list = this.list(wrapper);
|
|
|
-
|
|
|
- List<SysMenuVo> voList = new ArrayList<>();
|
|
|
-
|
|
|
- HashMap<Long,SysMenuVo> voMap = new HashMap<>();
|
|
|
- for (SysMenu sysMenu : list) {
|
|
|
- SysMenuVo menuVo = new SysMenuVo();
|
|
|
- BeanUtils.copyProperties(sysMenu,menuVo);
|
|
|
- Meta meta = new Meta();
|
|
|
- meta.setIcon(sysMenu.getIcon());
|
|
|
- meta.setTitle(sysMenu.getName());
|
|
|
- meta.setHideMenu(sysMenu.getHideMenu() == 1);
|
|
|
- meta.setFrameSrc(null);
|
|
|
- menuVo.setMeta(meta);
|
|
|
- voMap.put(sysMenu.getId(),menuVo);
|
|
|
- }
|
|
|
- for (SysMenu sysMenu : list) {
|
|
|
- if(sysMenu.getParentId() !=null){
|
|
|
- SysMenuVo menuVo = voMap.get(sysMenu.getId());
|
|
|
- List<SysMenuVo> children = voMap.get(sysMenu.getParentId()).getChildren();
|
|
|
- children.add(menuVo);
|
|
|
- }else {
|
|
|
- voList.add(voMap.get(sysMenu.getId()));
|
|
|
- }
|
|
|
- }
|
|
|
- setChildrenNull(voList);
|
|
|
- return voList;
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 递归 将children为空设置为null
|
|
|
*/
|