查询显示二级目录

二级目录

注:这个过于繁琐,直接去看通过递归生成多级目录

1:先创建俩VO,分为一级目录和二级目录,一般在entity

一级目录包含

@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:在逻辑中()

    //课程分类列表(树形)
    @ApiOperation(value = "显示所上传课程分类列表")
    @GetMapping("getAllSubject")
    public R getAllSubject(){

        //将查到的数据放在list中
        //由于第一类是OneSubject故而泛型为这
        List<OneSubject> list=subjectService.getAllOneTwoSubject();
        return R.ok().data("list",list);
    }

实现类中:

    //课程分类列表(树形)
    @Override
    public List<OneSubject> getAllOneTwoSubject() {

        //查询所以一级分类(parent_id=0)
        QueryWrapper<EduSubject> wrapperOne=new QueryWrapper<>();
        wrapperOne.eq("parent_id","0");
        //查询,需调用mapper中的
        List<EduSubject> oneSubjectList = baseMapper.selectList(wrapperOne);

        //查询所有二级分类(parent_id不等于0)
        QueryWrapper<EduSubject> wrapperTwo=new QueryWrapper<>();
        wrapperTwo.ne("parent_id","0");
        //查询,需调用mapper中的
        List<EduSubject> twoSubjectList = baseMapper.selectList(wrapperTwo);

        //创建一个集合,用于存放查到的东西
        List<OneSubject> finalSubjectList=new ArrayList<>();

        //封装一级,其内封装二级
        //遍历查询到的一级分类,存放到finalSubjectList,注有EducationSubject放到OneSubject,再放到finalSubjectList
        for (int i=0;i<oneSubjectList.size();i++){
            //得到oneSubjectList中每个EduSubject对象
            EduSubject oneeduSubject=oneSubjectList.get(i);
            //把oneeduSubject值获取出来,放到OneSubject中
            OneSubject oneSubject=new OneSubject();
            //原方法
            // oneSubject.setId(oeneduSubject.getId());
            //oneSubject.setTitle(oneeduSubject.getTitle());
            //简化方法
            BeanUtils.copyProperties(oneeduSubject,oneSubject);
            //多个oneSubject放到finalSubjectList
            finalSubjectList.add(oneSubject);


            //在一级分类循环中遍历查询出来的二级分类
            //创建个存放一级分类下查询到的二级分类的list
            List<TwoSubject> TwoAllOne=new ArrayList<>();
            for (int k=0;k<twoSubjectList.size();k++){
                //得到TwoSubject中每个EduSubject对象
                EduSubject twoEduSubject=twoSubjectList.get(k);
                //把EduSubject值获取出来,放到TwoSubject中
                TwoSubject twoSubject=new TwoSubject();
                //判断一级分类的id和二级分类的parenrid是否相同
                if(twoEduSubject.getParentId().equals(oneeduSubject.getId())){
                    BeanUtils.copyProperties(twoEduSubject,twoSubject);
                    TwoAllOne.add(twoSubject);
                }

            }

            //将二级查到的放入到一级分类中
            oneSubject.setChildren(TwoAllOne);

        }

        return finalSubjectList;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值