Day08-课程管理-课程大纲列表-p116、117,面试了几家公司都被拒绝了

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Web前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
img

正文

}

2、编写根据课程id查询章节、小节信息的代码


2.1、控制层代码

在这里插入图片描述

package com.nonglin.eduservice.controller;

import com.nonglin.commonutils.R;

import com.nonglin.eduservice.entity.chapter.ChapterVo;

import com.nonglin.eduservice.service.EduChapterService;

import io.swagger.annotations.Api;

import io.swagger.annotations.ApiOperation;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.*;

import java.util.List;

/**

  • 课程 前端控制器

  • @author Lenovo

  • @since 2021-03-09

*/

@Api(description = “课程大纲管理”)

@RestController

@RequestMapping(“/eduservice/chapter”)

@CrossOrigin

public class EduChapterController {

@Autowired

private EduChapterService eduChapterService;

//课程大纲列表,根据课程id查询该课程的章节小节信息

//@PathVariable可以用来映射URL中的占位符到目标方法的参数中

@ApiOperation(value = “查看课程的章节小节信息”)

@GetMapping(“getChapterVideo/{courseId}”)

public R getAllChapterVideo(@PathVariable(“courseId”) String courseId) {

List list = eduChapterService.getChapterVideoByCourseId(courseId);

return R.ok().data(“allChapterVideo”, list);

}

}

2.2、业务层接口

在这里插入图片描述

package com.nonglin.eduservice.service;

import com.nonglin.eduservice.entity.EduChapter;

import com.baomidou.mybatisplus.extension.service.IService;

import com.nonglin.eduservice.entity.chapter.ChapterVo;

import java.util.List;

/**

  • 课程 服务类

  • @author Lenovo

  • @since 2021-03-09

*/

public interface EduChapterService extends IService {

//课程大纲列表,根据课程id进行查询

List getChapterVideoByCourseId(String courseId);

}

2.2、业务层接口实现类

package com.nonglin.eduservice.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

import com.nonglin.eduservice.entity.EduChapter;

import com.nonglin.eduservice.entity.EduVideo;

import com.nonglin.eduservice.entity.chapter.ChapterVo;

import com.nonglin.eduservice.entity.chapter.VideoVo;

import com.nonglin.eduservice.mapper.EduChapterMapper;

import com.nonglin.eduservice.service.EduChapterService;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

import org.springframework.beans.BeanUtils;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

import java.util.ArrayList;

import java.util.List;

/**

  • 课程 服务实现类

  • @author Lenovo

  • @since 2021-03-09

*/

@Service

public class EduChapterServiceImpl extends ServiceImpl<EduChapterMapper, EduChapter> implements EduChapterService {

@Autowired

private EduVideoServiceImpl eduVideoService;

//课程大纲列表,根据课程id进行查询

@Override

public List getChapterVideoByCourseId(String courseId) {

//1、根据课程id查询所有章节信息

QueryWrapper wrapperyChapter = new QueryWrapper<>();

wrapperyChapter.eq(“course_id”, courseId);

List eduChapterList = baseMapper.selectList(wrapperyChapter);

//2、根据课程id查询课程里面所有小节信息

QueryWrapper wrapperVideo = new QueryWrapper<>();

wrapperVideo.eq(“course_id”, courseId);

List eduVideolist = eduVideoService.list(wrapperVideo);

//创建结合用于封装最终的数据

List finalList = new ArrayList<>();

//3、遍历查询章节list集合进行封装

for (int i = 0; i < eduChapterList.size() ; i++) {

//每个章节信息

EduChapter eduChapter = eduChapterList.get(i);

//将eduChapter对象复制到chapterVo中

ChapterVo chapterVo = new ChapterVo();

BeanUtils.copyProperties(eduChapter,chapterVo);

//将chapterVo放到finalList集合中去

finalList.add(chapterVo);

//创建集合,用于封装章节的小节

List videoList = new ArrayList();

//4、遍历查询小节list集合进行封装

for (int m = 0; m < eduVideolist.size(); m++) {

//得到每个小节

EduVideo eduVideo = eduVideolist.get(m);

//判断小节里面的chapterId是否和章节id一致

if(eduVideo.getChapterId().equals(eduChapter.getId())){

//进行封装

VideoVo videoVo = new VideoVo();

BeanUtils.copyProperties(eduVideo,videoVo);

//放到小节封装的集合

videoList.add(videoVo);

}

}

//把封装之后的小节List集合,放到章节对象中去

chapterVo.setChildren(videoList);

}

return finalList;

}

}

前端实现

===================================================================

3.1、创建api


在这里插入图片描述

import request from ‘@/utils/request’

export default {

//1 课程大纲列表

getAllChapterVideo(courseId){

return request({

url:‘/eduservice/chapter/getChapterVideo/’+courseId,

method:‘get’

})

}

}

3.2、前端代码


引入api

在这里插入图片描述

完善前端方法:

在这里插入图片描述

  • 24
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值