在线教育项目(十九)----课程分类管理分类列表

一、后端实现

在这里插入图片描述

1、创建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;
}

2、创建controller

@Api(description = "课程管理")
@RestController
@RequestMapping("/eduservice/subject")
@CrossOrigin
public class SubjectController {

    @Autowired
    private SubjectService subjectService;

    //课程分类列表(树形)
    @ApiOperation(value = "课程分类列表(树形)")
    @GetMapping("getAllSubject")
    public R getAllSubject(){
        //list集合是一级分类
        List<OneSubject> list= subjectService.getAllOneSubject();
        return R.ok().data("list",list);
    }
}

3、创建service

①接口

public interface SubjectService extends IService<Subject> {

    //课程分类列表(树形)
    List<OneSubject> getAllOneSubject();
}

②实现Final

@Service
public class SubjectServiceImpl extends ServiceImpl<SubjectMapper, Subject> implements SubjectService {

    //课程分类列表(树形)
    @Override
    public List<OneSubject> getAllOneSubject() {
        //1查询是所有的一级分类 parentid=0
        QueryWrapper<Subject> wrapperOne=new QueryWrapper<>();
        wrapperOne.eq("parent_id","0");

        List<Subject> oneSubjectList=baseMapper.selectList(wrapperOne);
        //2查询是所有的二级分类parentid!=0
        QueryWrapper<Subject> wrapperTwo=new QueryWrapper<>();
        wrapperTwo.ne("parent_id","0");
        List<Subject> twoSubjectList=baseMapper.selectList(wrapperTwo);

        //创建一个list集合,用于存储最终数据
        List<OneSubject> finalSubjectList = new ArrayList<>();

        //3封装一级分类
        //遍历一级分类,放S进最后的集合
        for(int i =0;i<oneSubjectList.size();i++){
            //得到每个oneSubject
            Subject eduSubject=oneSubjectList.get(i);

            //把Subject里面的值取出来,放到OneSubject对象里面

            //多个Oneubject放到finalSubjectList里面
            OneSubject oneSubject=new OneSubject();

            //第一个值是get对象,第二个值是set对象
            //edusubject的值复制到oneSubject对象里面去
            BeanUtils.copyProperties(eduSubject,oneSubject);//spring fw中的,不要导错包

            finalSubjectList.add(oneSubject);

            //在一级分类的里面循环便利查询所有的二级分类
            //创建list集合封装每个一级分类的二级分类
            //4封装二级分类
            List<TwoSubject> twoFianlSubjectList=new ArrayList<>();
            //遍历twoFianlSubjectList
            for (int k=0;k<twoSubjectList.size();k++) {
                //获取每个二级分类、
                Subject tSubject=twoSubjectList.get(k);

                //判断所有二级分类的parent_id和一级分类的id是否一样
                if(tSubject.getParentId().equals(eduSubject.getId())){
                    //把tSubject的值复制到TwoSubject中去,放到twoFianlSubjectList
                    TwoSubject twoSubject=new TwoSubject();

                    //第一个值是get对象,第二个值是set对象
                    //subject的值复制到oneSubject对象里面去
                    BeanUtils.copyProperties(tSubject,twoSubject);//spring fw中的,不要导错包
                    twoFianlSubjectList.add(twoSubject);
                }
            }
//            把一级下面的所有二级分类都放到一级分类里面
            oneSubject.setChildren(twoFianlSubjectList);
        }
        return finalSubjectList;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值