谷粒学院73——课程列表后端(下)

上节的代码我们还没有对数据进行封装(把数据库对应的类型Edusubject封装到前端需要的类型Onesubject中)。如何封装?第一种方法是遍历取出需要的值。

// 最终返回的数据类型,泛型中存储的数据类型是OneSubject,这个数据类型与前端展示的列表要求的结构一致
List<OneSubject> finalSubject = new ArrayList();
// 3.封装一级分类
// 我们需要把firstList封装到finalSubject中。
// 法1:遍历取值、传值
for (int i = 0; i < firstList.size(); i++) {
     EduSubject eduSubject = firstList.get(i);
     OneSubject oneSubject = new OneSubject();
     oneSubject.setId(eduSubject.getId());
     oneSubject.setTitle(eduSubject.getTitle());
     finalSubject.add(oneSubject);
}

但是如果需要的属性不止idtitle,而是很多,那操作不是很麻烦吗?

 //法2:BeanUtils
for (int i = 0; i < firstList.size(); i++) {
     EduSubject eduSubject = firstList.get(i);
     OneSubject oneSubject = new OneSubject();
     BeanUtils.copyProperties(eduSubject, oneSubject);
     finalSubject.add(oneSubject);
}
return finalSubject;

在controller增加注解,返回数据。

@GetMapping("/getAllSubject")
public R getAllSubject() {
	// 一级分类中已经包含了二级分类
	List<OneSubject> list = eduSubjectService.getAllSubject();
    return R.ok().data("list", list);
}

swagger-ui测试如下.

image-20211111165615482

把二级分类封装。

  for (int i = 0; i < firstList.size(); i++) {
            EduSubject eduSubject = firstList.get(i);
            OneSubject oneSubject = new OneSubject();
            BeanUtils.copyProperties(eduSubject, oneSubject);

            // 4.封装二级分类
            List<TwoSubject> twoFinalSubject = new ArrayList<>();
            // 在一级分类中遍历二级分类,找到parent_id与当前一级分类对应的二级分类
            for (int j = 0; j < secondList.size(); j++) {
                EduSubject tSubject = secondList.get(j);
                if(tSubject.getId().equals(eduSubject.getId())) {
                    TwoSubject twoSubject = new TwoSubject();
                    BeanUtils.copyProperties(tSubject, twoSubject);
                    twoFinalSubject.add(twoSubject);
                }
            }
            oneSubject.setChildren(twoFinalSubject);
            finalSubject.add(oneSubject);
}

测试结果如下。

image-20211111183153555

java全栈日日学 文章被收录于专栏

java全栈每日必学,不要高估自己一年能做的事,不要低估自己十年能做的事

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务