use of com.haier.user.vo.response.MenuVO in project su-sunday-cloud by illeagalName.
the class UserServiceImpl method listMenus.
@Override
public List<MenuVO> listMenus() {
// 严格排序
QueryWrapper<Menu> menuWrapper = new QueryWrapper<>();
menuWrapper.orderByAsc("parent_id", "menu_sort");
List<Menu> menus = menuMapper.selectList(menuWrapper);
Map<Long, MenuVO> temp = new HashMap<>();
List<MenuVO> result = new ArrayList<>();
menus.forEach(item -> {
if (!item.getVisible()) {
return;
}
MenuVO vo = new MenuVO();
vo.setPath(item.getPath());
vo.setComponent(item.getComponent());
vo.setRedirect(item.getRedirect());
vo.setName(item.getMenuName());
MenuVO.Meta meta = new MenuVO.Meta();
meta.setIcon(item.getIcon());
meta.setTitle(Objects.isNull(item.getMenuTitle()) ? item.getMenuName() : item.getMenuTitle());
vo.setMeta(meta);
Long parentId = item.getParentId();
if (Objects.equals(parentId, 0L)) {
result.add(vo);
} else {
MenuVO routeVO = temp.get(parentId);
if (Objects.isNull(routeVO)) {
return;
}
routeVO.getChildren().add(vo);
}
temp.put(item.getMenuId(), vo);
});
return result;
}
Aggregations