树形菜单列表

  public ResData treeMenus(Integer uid) throws BusinessException {
        List<Menu> menuList = this.baseMapper.selectMenusByUserId(uid);
        List<Menu> result = menuList.stream()
                .filter(menu -> menu.getParentId().equals(0L))
                .map(menu -> covert(menu, menuList)).collect(Collectors.toList());
        return ResData.ok(result);
    }


    /**
     * 将菜单转换为带有子级菜单对象
     * 当找不到子级菜单的时候map操作不会再递归调用covert
     */
    private Menu covert(Menu menu, List<Menu> menuList) {
        List<Menu> children = menuList.stream()
                .filter(itme -> itme.getParentId().equals(menu.getId()))
                .map(itme -> covert(itme, menuList)).collect(Collectors.toList());
        menu.setChildList(children);
        return menu;
    }

版权声明:本文为qq_45834006原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。