栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

树形结构后端

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

树形结构后端

    针对返回数据创建对应的实体类(两个实体类,一级和二级分类),写入id+title两个属性在两个实体类之间表示关系(一个一级分类有多个二级分类)
    private List<二级分类实体类> children = new ArrayList<>();编写具体封装的代码
    controller中写查询所有分类的方法
    //课程分类列表
        @ApiOperation(value = "课程分类列表")
        @PostMapping("getAllSubject")
        public R getAllSubject() {
            //list集合泛型是一级分类,里面已经包含了二级分类
            List list = subjectService.getAlloneTwoSubject();
            return R.ok().data("list",list);
        }

    service中查询出所有的一级分类
    service中查询出所有的二级分类
    //查询所有的一级分类 parentId = 0
            QueryWrapper wrapperOne = 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集合,用于存储最终封装数据
     List finalSubjectList = new ArrayList<>();

    封装一二级分类
    //查询出来所有的一级分类list集合遍历,得到每个一级分类对象,获取每个一级分类对象值,
            //封装到要求的list集合里面 List finalSubjectList
            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;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/712607.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号