二级分类封装

一、创建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;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值