
controller
/**
* 菜单列表
*/
@GetMapping("/list")
public R<?> lists() {
return R.ok(menuService.lists());
}
service
/**
* 查询全部菜单
*/
List<MenuPo> lists();
ServiceImpl
/**
* 菜单列表
*/
@Override
@Cacheable(cacheNames = "menu")
public List<MenuPo> lists() {
LambdaQueryWrapper<MenuPo> menuPoWrapper = Wrappers.lambdaQuery();
menuPoWrapper.orderByAsc(MenuPo::getSort);
List<MenuPo> list = menuMapper.selectList(menuPoWrapper);
return dataToTreeList(list);
}
/**
* 数据转树形结构
*/
private List<MenuPo> dataToTreeList(List<MenuPo> allList) {
return allList.parallelStream()
//父级ID为0
.filter(item -> "0".equals(item.getPid()))
.map(menu -> menu.setChildren(getTreeChilds(allList, menu.getId())))
.collect(Collectors.toList());
}
/**
* 递归子级
*/
private List<MenuPo> getTreeChilds(List<MenuPo> allList, String pid) {
return allList.parallelStream()
.filter(item -> pid.equals(item.getPid()))
.map(menu -> menu.setChildren(getTreeChilds(allList, menu.getId())))
.collect(Collectors.toList());
}
返回结果
{
"status": 200,
"msg": "success",
"data": [
{
"id": "1590219111046717441",
"pid": "0",
"name": "一级菜单",
"type": 1,
"icon": "",
"sort": 1,
"status": true,
"template": "",
"description": "简介",
"keywords": "关键字",
"createTime": "2022-11-09 13:45:56",
"updateTime": "2022-11-27 12:51:57",
"children": [
{
"id": "1596728570011074562",
"pid": "1590219111046717441",
"name": "二级菜单",
"type": 2,
"icon": "",
"sort": 2,
"status": true,
"template": "",
"description": "简介",
"keywords": "关键字",
"createTime": "2022-11-27 12:52:12",
"updateTime": null,
"children": []
}
]
}
]
}
共0人打赏
打赏的土豪们
Rewarded users
暂无打赏
© 未经允许禁止转载
暂无数据