一、创建vo
//一级分类
@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;
}
二、创建Controller
@GetMapping("subjectList")
public R subjectList(){
List<OneSubject> data=subjectService.getOneTwoSubject();
return R.ok().data("list",data);
}
三、创建service
接口
//获取分类列表
List<OneSubject> getOneTwoSubject();
实现类
//获取分类列表
@Override
public List<OneSubject> getOneTwoSubject() {
//1.获取一级分类列表
QueryWrapper<EduSubject> OneWrapper=new QueryWrapper<>();
OneWrapper.eq("parent_id", "0");
List<EduSubject> eduOneSubject = baseMapper.selectList(OneWrapper);
//2.查询二级分类列表
QueryWrapper<EduSubject> TwoWrapper=new QueryWrapper<>();
OneWrapper.ne("parent_id", "0");
List<EduSubject> eduTwoSubject = baseMapper.selectList(TwoWrapper);
//3.封装一级分类
List<OneSubject> finalOneSubject=new ArrayList<>();
for (int i = 0; i < eduOneSubject.size(); i++) {
EduSubject eduSubjectOne = eduOneSubject.get(i);
OneSubject oneSubject = new OneSubject();//
BeanUtils.copyProperties(eduSubjectOne, oneSubject);
finalOneSubject.add(oneSubject);
//4.封装二级分类
List<TwoSubject> finalTwoSubject=new ArrayList<>();
for (int m = 0; m < eduTwoSubject.size(); m++) {
EduSubject eduSubjectTwo = eduTwoSubject.get(m);
if(eduSubjectTwo.getParentId().equals(eduSubjectOne.getId())){
TwoSubject twoSubject=new TwoSubject();
BeanUtils.copyProperties(eduSubjectTwo, twoSubject);
finalTwoSubject.add(twoSubject);
}
}
oneSubject.setChildren(finalTwoSubject);
}
return finalOneSubject;
}