二级目录
注:这个过于繁琐,直接去看通过递归生成多级目录
1:先创建俩VO,分为一级目录和二级目录,一般在entity
一级目录包含
@Data
public class OneSubject {
private String id;
private String title;
//一个一级分类包含多个二级分类
private List<TwoSubject> children = new ArrayList<>();
}
@Data
public class TwoSubject {
private String id;
private String title;
}
2:在逻辑中()
//课程分类列表(树形)
@ApiOperation(value = "显示所上传课程分类列表")
@GetMapping("getAllSubject")
public R getAllSubject(){
//将查到的数据放在list中
//由于第一类是OneSubject故而泛型为这
List<OneSubject> list=subjectService.getAllOneTwoSubject();
return R.ok().data("list",list);
}
实现类中:
//课程分类列表(树形)
@Override
public List<OneSubject> getAllOneTwoSubject() {
//查询所以一级分类(parent_id=0)
QueryWrapper<EduSubject> wrapperOne=new QueryWrapper<>();
wrapperOne.eq("parent_id","0");
//查询,需调用mapper中的
List<EduSubject> oneSubjectList = baseMapper.selectList(wrapperOne);
//查询所有二级分类(parent_id不等于0)
QueryWrapper<EduSubject> wrapperTwo=new QueryWrapper<>();
wrapperTwo.ne("parent_id","0");
//查询,需调用mapper中的
List<EduSubject> twoSubjectList = baseMapper.selectList(wrapperTwo);
//创建一个集合,用于存放查到的东西
List<OneSubject> finalSubjectList=new ArrayList<>();
//封装一级,其内封装二级
//遍历查询到的一级分类,存放到finalSubjectList,注有EducationSubject放到OneSubject,再放到finalSubjectList
for (int i=0;i<oneSubjectList.size();i++){
//得到oneSubjectList中每个EduSubject对象
EduSubject oneeduSubject=oneSubjectList.get(i);
//把oneeduSubject值获取出来,放到OneSubject中
OneSubject oneSubject=new OneSubject();
//原方法
// oneSubject.setId(oeneduSubject.getId());
//oneSubject.setTitle(oneeduSubject.getTitle());
//简化方法
BeanUtils.copyProperties(oneeduSubject,oneSubject);
//多个oneSubject放到finalSubjectList
finalSubjectList.add(oneSubject);
//在一级分类循环中遍历查询出来的二级分类
//创建个存放一级分类下查询到的二级分类的list
List<TwoSubject> TwoAllOne=new ArrayList<>();
for (int k=0;k<twoSubjectList.size();k++){
//得到TwoSubject中每个EduSubject对象
EduSubject twoEduSubject=twoSubjectList.get(k);
//把EduSubject值获取出来,放到TwoSubject中
TwoSubject twoSubject=new TwoSubject();
//判断一级分类的id和二级分类的parenrid是否相同
if(twoEduSubject.getParentId().equals(oneeduSubject.getId())){
BeanUtils.copyProperties(twoEduSubject,twoSubject);
TwoAllOne.add(twoSubject);
}
}
//将二级查到的放入到一级分类中
oneSubject.setChildren(TwoAllOne);
}
return finalSubjectList;
}