- 针对返回数据创建对应的实体类(两个实体类,一级和二级分类),写入id+title两个属性在两个实体类之间表示关系(一个一级分类有多个二级分类)
private List<二级分类实体类> children = new ArrayList<>();编写具体封装的代码
controller中写查询所有分类的方法
//课程分类列表 @ApiOperation(value = "课程分类列表") @PostMapping("getAllSubject") public R getAllSubject() { //list集合泛型是一级分类,里面已经包含了二级分类 Listlist = subjectService.getAlloneTwoSubject(); return R.ok().data("list",list); }
service中查询出所有的一级分类
service中查询出所有的二级分类
//查询所有的一级分类 parentId = 0 QueryWrapperwrapperOne = new QueryWrapper<>(); wrapperOne.eq("parent_id","0"); List oneSubjectList = baseMapper.selectList(wrapperOne); //查询所有的二级分类 parentId != 0 QueryWrapper wrapperTwo = new QueryWrapper<>(); wrapperTwo.ne("parent_id","0"); List twoSubjectList = baseMapper.selectList(wrapperTwo);
创建list集合,用于存储最终封装数据
ListfinalSubjectList = new ArrayList<>();
封装一二级分类
//查询出来所有的一级分类list集合遍历,得到每个一级分类对象,获取每个一级分类对象值, //封装到要求的list集合里面 ListfinalSubjectList for (int i = 0; i < oneSubjectList.size(); i++) { //遍历oneSubjectList集合 //得到oneSubjectList每个eduSubject对象 EduSubject eduSubject = oneSubjectList.get(i); //把eduSubject里面值获取出来,放到OneSubject对象里面 oneSubject oneSubject = new oneSubject(); // oneSubject.setId(eduSubject.getId()); // oneSubject.setTitle(eduSubject.getTitle()); //eduSubject值复制到对应oneSubject对象里面 BeanUtils.copyProperties(eduSubject,oneSubject); //多个OneSubject放到finalSubjectList里面 finalSubjectList.add(oneSubject); //在一级分类循环遍历查询所有的二级分类 //创建list集合封装每个一级分类的二级分类 List twoFinalSubjectList = new ArrayList<>(); //遍历二级分类list集合 for (int m = 0; m < twoSubjectList.size(); m++) { //获取每个二级分类 EduSubject tSubject = twoSubjectList.get(m); //判断二级分类parentid和一级分类id是否一样 if(tSubject.getParentId().equals(eduSubject.getId())) { //把tSubject值复制到TwoSubject里面,放到twoFinalSubjectList里面 TwoSubject twoSubject = new TwoSubject(); BeanUtils.copyProperties(tSubject,twoSubject); twoFinalSubjectList.add(twoSubject); } } //把一级下面所有二级分类放到一级分类里面 oneSubject.setChildren(twoFinalSubjectList); } return finalSubjectList;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)