Search in sources :

Example 1 with MenuVO

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;
}
Also used : MenuVO(com.haier.user.vo.response.MenuVO) QueryWrapper(com.baomidou.mybatisplus.core.conditions.query.QueryWrapper) Menu(com.haier.user.domain.Menu)

Aggregations

QueryWrapper (com.baomidou.mybatisplus.core.conditions.query.QueryWrapper)1 Menu (com.haier.user.domain.Menu)1 MenuVO (com.haier.user.vo.response.MenuVO)1