1.查询出所有数据
List<ProductCourseCategory> productCourseCategoryList = productCourseCategoryMapper.findAllShowTree();//所有数据
2.查询父级节点
List<ProductCourseCategory> parentList = new ArrayList<>();
for (ProductCourseCategory pro:productCourseCategoryList) {
if(pro.getParentId()== null){
parentList.add(pro);
}
}
3.获取子集
private void getChild(ProductCourseCategory productCourseCategory,List<ProductCourseCategory> productCourseCategoryList){
List<ProductCourseCategory> productCourseCategories = new ArrayList<>();//子集
for (ProductCourseCategory pro:productCourseCategoryList) {
if(pro.getParentId() != null &&pro.getParentId().equals(productCourseCategory.getId())){
productCourseCategories.add(pro);
}
}
if(productCourseCategories == null){
return;
}
if(productCourseCategory.getChildren() == null){
productCourseCategory.setChildren(new ArrayList<>());
}
//子集添加到对象中
for (ProductCourseCategory prod:productCourseCategories) {
productCourseCategory.getChildren().add(prod);
}
}
4.父级节点添加子集
parentList.forEach(info->{
getChild(info,productCourseCategoryList);//添加子集
});
- return 父级list
public List<ProductCourseCategory> findAllShowTree() {
List<ProductCourseCategory> productCourseCategoryList = productCourseCategoryMapper.findAllShowTree();//所有数据
//List<ProductCourseCategory> parentList = productCourseCategoryList.stream().filter(item->item.getParentId().equals("")).collect(Collectors.toList());//所有父节点
List<ProductCourseCategory> parentList = new ArrayList<>();
for (ProductCourseCategory pro:productCourseCategoryList) {
if(pro.getParentId()== null){
parentList.add(pro);
}
}
parentList.forEach(info->{
getChild(info,productCourseCategoryList);//添加子集
});
return parentList; //return
}