树形数据展示
BeanUtils.copyProperties(eduSubject, oneSubject); 将对象1数据复制到二中
第一步针对返回值数据创建对应的实体类
第二步两个实体类之间的表示关系(一级分类有多个二级分类)
//课程分类返回结构(树形)
@GetMapping("getAllSubject")
public R getAllSubject() {
List<OneSubject> list = eduSubjectService.getAllOneTwoSubject();
return R.ok().data("list", list);
}
//查询一级分类 parent_id=0
QueryWrapper<EduSubject> wrapperOne = new QueryWrapper<>();
wrapperOne.eq("parent_id", 0);
List<EduSubject> oneEduSubject = baseMapper.selectList(wrapperOne);
//查询二级分类 parent_id!=0
QueryWrapper<EduSubject> wrapperTwo = new QueryWrapper<>();
wrapperTwo.ne("parent_id", 0);
List<EduSubject> twoEduSubject = baseMapper.selectList(wrapperTwo);
//封装一级分类
List<OneSubject> oneList = new ArrayList<>();
for (int i = 0; i < oneEduSubject.size(); i++) {
//遍历一级分类
EduSubject eduSubject = oneEduSubject.get(i);
//将一级分类eduSubject对象的值添加到OneSubject中
OneSubject oneSubject = new OneSubject();
//复制操作
BeanUtils.copyProperties(eduSubject, oneSubject);
oneList.add(oneSubject);
//封装二级分类
ArrayList<TwoSubject> twoList = new ArrayList<>();
//遍历所有二级分类
for (int m = 0; m < twoEduSubject.size(); m++) {
EduSubject subject = twoEduSubject.get(m);
TwoSubject twoSubject= new TwoSubject();
//判断一级分类对应的二级分类数据,全表扫描
if (subject.getParentId().equals(eduSubject.getId())){
BeanUtils.copyProperties(subject, twoSubject);
twoList.add(twoSubject);
}
}
//添加一对多数据
oneSubject.setChildren(twoList);
}
return oneList;

浙公网安备 33010602011771号