多级树形查询
做项目的时候遇到了这个问题,想记录一下~
多级树形查询实例
@Service
public class CategoryServiceImpl extends ServiceImpl<CategoryMapper, Category> implements ICategoryService {
@Override
public List<CategoryVo> listWithTree() {
List<Category> entities = list();
//把Category的数组entities包装成CategoryVo数组
List<CategoryVo> categoryVos = entities.stream().map(category -> {
CategoryVo categoryVo = new CategoryVo();
BeanUtils.copyProperties(category, categoryVo);//此处主要使用工具类BeanUtils中的copyProperties完成赋值
return categoryVo;
}).collect(Collectors.toList());
List<CategoryVo> list = categoryVos.stream()
.filter(category -> category.getParentId().equals(Long.parseLong("0")))//parentId为0则说明该节点为根节点
.map(
(menu)->{
menu.setChildren(getChildrenData(menu,categoryVos));
return menu;
})
.collect(Collectors.toList());
return list;
}
//获取孩子(下级目录)的方法,递归实现
private List<CategoryVo> getChildrenData(CategoryVo categoryVo, List<CategoryVo> categoryVoList) {
List<CategoryVo> children = categoryVoList.stream()
.filter(c -> c.getParentId().equals(categoryVo.getId()))
.map(
c -> {
c.setChildren(getChildrenData(c,categoryVoList));
return c;
})
.collect(Collectors.toList());
return children;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/147357.html