树状结构(MybatisPlus)
生活随笔
收集整理的這篇文章主要介紹了
树状结构(MybatisPlus)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
樹狀結構
返回菜單數據需要體現父子菜單的層級關系
1.查詢當前用戶下的所有菜單數據
@Overridepublic List<Menu> selectRouterMenuTreeByUserId(Long id) {return buildMenuTree(menuMapper.selectRouterMenuTreeByUserId(id),0L);}2.構建樹結構,先過濾出第一層菜單,向第一層菜單里添加子菜單
private List<Menu> buildMenuTree(List<Menu> menus,Long parentId) {//先找出第一層的菜單,然后將子菜單設置到children屬性中List<Menu> menuTree = menus.stream()//過濾出所有菜單里是第一層的菜單,parentId=0L.filter(menu -> menu.getParentId().equals(parentId))//向當前菜單里添加子菜單.map(menu -> menu.setChildren(getChildren(menu, menus))).collect(Collectors.toList());return menuTree;}3.獲取當前菜單的子菜單集合
private List<Menu> getChildren(Menu menu, List<Menu> menus) {List<Menu> childrenList = menus.stream().filter(m -> m.getParentId().equals(menu.getId()))//子菜單的下一級(第三層一般很少用).map(m->m.setChildren(getChildren(m,menus))).collect(Collectors.toList());return childrenList;}總結
以上是生活随笔為你收集整理的树状结构(MybatisPlus)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu: 将bing主页的背景图片
- 下一篇: 推荐一款全能PDF编辑神器:PDFele