课程管理-删除课程删除视频(远程调用) | 学习笔记

简介: 简介:快速学习课程管理-删除课程删除视频(远程调用)

开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot):课程管理-删除课程删除视频(远程调用)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/667/detail/11419


课程管理-删除课程删除视频(远程调用)

 

第一步我们先来加入注解,加入依赖和相关配置,加完之后我们新建一个interface,里面调用指定服务的名称,在 interface 中,将方法注入,

//定义调用删除多个视频的方法

将 vod,control 中的方法直接复制到这里,就可以了,

//参数多个视频 id List videoIdlist

@DeleteMapping("delete-batch")

public R deleteBatch(@RequestParam("videoIdList") List videoIdList)

完成之后,完善一下路径,改成完全路径,加上 eduvod/video,后面加一个delete-batch,

//定义调用删除多个视频的方法

//删除多个阿里云视频的方法

//参数多个视频 id List videoIdlist

@DeleteMapping("/eduvod/video/delete-batch")

public R deleteBatch(@RequestParam("videoIdList") List videoIdList):

在 vodclient 中把发布方法进行自我定义,之后来到我们的调的过程中进行调用方式,我们找到删除课程的方法,

//删除课程

@DeleteMapping("{courseId}")

public R deleteCourse(@PathVariable String courseId){

courseService. removeCourse(courseId);

return R. ok();

进入到 removeCourse 中,进入实现类中,在实现类中有如下内容:

//删除课程@Override

public void removeCourse(String courseId) {

//1 根据课程 id 删除小节

eduVideoService.removeVideoByCourseId(courseId)

找到 removeVideoByCourseId,进入最终到方法中,根据视频 id 删除小节,而我们现在就是根据课程 id 删除视频,那就要先查出来视频 id,把课程中所有的视频 id都查出来,在小节表中查到视频 id,写下方法:

//1 根据课程 id 删除小节

// TODO 删除小节,删除对应视频文件

@Override

public void removeVideoByCourseId(String courseId) {

在此注入

//注入vodclient

@Autowired

private VodClient vodClient

调用里面的方法,给他进行删除

//1 根据课程 id 查询课程所有的视频 id

QueryWrapperwrapperVideo = new QueryWrapper<>():

wrapperVideo.eq( column:"course_id",courseId);

在这里设置条件,因为我们要根据课程 id 查视频,所以要写课程 id,

wrapperVideo select(“video- source- i”)

ListeduVideoList=baseMapper.selectList(wrapperVideo)

因为这里可能有一个或者多个视频,所以我们使用 selectList,上传一个wrapperVideo,最后返回一个 list 集合,这里会有我们课程所有的小节对象,但是我们要得到所有的视频 id,然后我们直接取就可以,这是我们第一部分。

我们直接便利取值就可以,但是我们可以把方法优化一点,说明如下:

因为我们现在删除视频需要查询视频id,我们可以写

SELECT video- source- id FRoM edu video WHERE c...

直接查询视频 id 就可以, 就没有必要再查询别的字段,所以我们现在代码也可以这样做,只需要查询视频 id 就可以,

如下:

现在查询的话,就是查询所有默认字段,但我现在只想查询 video source 这个字段,这就叫查询指定的列,

而这个在我们的 wrapperVideo 里有个方法,这个需要牢记,因为我们后面也需要用到,就是 wrapperVideo select(“”),插入指定字段的名字,比如 video- source- id,这样的话,我们就可以查出指定字段的值,使用的是 select 方法,因为我们只需要指定的值,其他的就不需要了。

我们要从 eduVideoList 取里面的值,调用方法就可以做到,如果要调用 vodclient,要先注入。

Vodclient

这里虽然传入的是一个 list 集合,但不是 List,我们要写的是下面的这种效果,而不是里面传入对象,继续完善一下,

public static void main(String[] args)

List list = new ArrayList<>()

list.add("11");

list.add("22");

list.add("33");

// 11,22,33

取出值,传的是 list,这种没有其他的方法,只能取值 list 放入,得到每个值,取出视频 id,

//List变成List

ListvideoIds =new ArrayList<>(:

for (int i =0; i

EduVideo eduVideo = eduVideoList.get(i):

String videoSourceId =eduVideo. getVideoSourceId()

if(!StringUtils.isEmpty(videoSourceId))

//放到 videoIds 集合里面

videoIds.add(videoSourceId);

我们小节可能是空的,没有值,如果没有值得话,我们需要把空给放进去,所以我们需要判断,如果 videoSourceId 不等于空,那我们就可以放入值,放入 list 中,这就是完成了。

这就是一个主要的过程,把 videoSourceId 直接放入 videoIds,将 videoIds 直接传进来,

下面我们也需要做一个判断,因为上面的原因,小节里面可能一个视频都没有,那这个集合如果为空,如果为空,那我们就没必要远程调用去删除,所以需要做一个判断,

//就会根据多个视频 id 删除视频,

If(videoids,size()>0){

因为它是一个 list 集合,所以我们使用 size 判断,如果它大于0,说明它有值,有值再调用方法,进行删除,所以我们可以做出完善,如果没有值,就不需要删除,这样我们就完成了调用,过程可能会有点麻烦,但里边也不复杂,就是把多个视频id 查出来,然后进行删除,

vodClient.deleteBatch(videoIds):

我们代码就算完成了,删除视频之后我们再删除小节,但是我们不能先删小节,这样的话就查不到视频id了,所以我们要先删视频,再删小节,这样我们调用就完成了

QueryWrapper wrapper =new QueryWrapper<>() wrapper.eq(column:"course_id",courseId);

baseMapper. delete(wrapper);

//2根据课程id删除章节

chapterService.removeChapterByCourseId(courseId)

//3根据课程id删除描述

courseDescriptionService.removeById(courseId)

//4根据课程id删除课程本身

int result =baseMapper.deleteById(courseId) if(result == 0) { //失败返回

throw new GuliException(20001,"删除失败”)

相关文章
|
存储
TienChin-课程管理-课程更新接口
TienChin-课程管理-课程更新接口
50 0
TienChin-课程管理-删除课程
TienChin-课程管理-删除课程
50 0
|
数据建模 Java 开发工具
课程管理-删除视频接口 | 学习笔记
简介:快速学习课程管理-删除视频接口
135 0
课程管理-删除视频接口 | 学习笔记
|
Java Nacos 开发者
课程管理-删除小节删除视频(服务调用) | 学习笔记
简介:快速学习课程管理-删除小节删除视频(服务调用)
103 0
课程管理-删除小节删除视频(服务调用) | 学习笔记
|
开发者 微服务
课程管理-删除课程(后端) | 学习笔记
简介:快速学习课程管理-删除课程(后端)
213 0
课程管理-删除课程(后端) | 学习笔记
|
前端开发 API 数据库
课程管理-删除视频前端 | 学习笔记
简介:快速学习课程管理-删除视频前端
131 0
课程管理-删除视频前端 | 学习笔记
|
前端开发 数据库 开发者
课程管理-添加和删除小节 | 学习笔记
简介:快速学习课程管理-添加和删除小节
144 0
课程管理-添加和删除小节 | 学习笔记
|
前端开发 数据库 开发者
课程管理-修改课程信息(后端) | 学习笔记
简介:快速学习课程管理-修改课程信息(后端)
134 0
课程管理-修改课程信息(后端) | 学习笔记
|
存储 前端开发 JavaScript
课程管理-修改课程信息(前端) | 学习笔记
简介:快速学习课程管理-修改课程信息(前端)
课程管理-修改课程信息(前端) | 学习笔记
|
前端开发 Java Nacos
课程管理-删除课程删除视频(最终测试) | 学习笔记
简介:快速学习课程管理-删除课程删除视频(最终测试)
115 0
课程管理-删除课程删除视频(最终测试) | 学习笔记