删除课程的同时删除所有小节视频

  • 需求:删除课程的同时删除云端视频
  • 1、在service模块添加pom依赖
  • 2、在调用端的启动类添加注解
  • 3、创建包和接口
  • 4、在service-vod中创建接口。用于删除多个视频
  • 5、在servicr_edu中调用service_vod接口实现删除多个视频的功能

需求:删除课程的同时删除云端视频

一个课程有很多章节,一个章节有很多小节,每个小节都有视频,删除课程的时候,删除视频有多个,怎么实现删除课程的同时删除阿里云端所有小节。

1、在service模块添加pom依赖

<!--服务调用--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency>

2、在调用端的启动类添加注解

@EnableFeignClients

3、创建包和接口

创建client包
@FeignClient注解用于指定从哪个服务中调用功能 ,名称与被调用的服务名保持一致。
@DeleteMapping注解用于对被调用的微服务进行地址映射。
@PathVariable注解一定要指定参数名称,否则出错
@Component注解防止,在其他位置注入CodClient时idea报错

package com.nonglin.eduservice.client;import com.nonglin.commonutils.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;/*** @Description :* @Author :lenovo* @Date :2021/3/24 15:07*/
@FeignClient("service-vod")
@Component
public interface VodClient {//根据视频id删除阿里云视频@DeleteMapping("/eduvod/video/removeAlyVideo/{id}")public R removeAlyClient(@PathVariable("id") String id);}

4、在service-vod中创建接口。用于删除多个视频

controller

   //删除多个阿里云端视频@DeleteMapping("delete-batch")public R deleteBatch(@RequestParam("videoIdList") List videoIdList){vodService.removeMoreAlyVideo(videoIdList);return R.ok();}

service接口

 //删除多个阿里云端视频void removeMoreAlyVideo(List videoIdList);

service实现类

 //删除多个阿里云端视频@Overridepublic void removeMoreAlyVideo(List<String> videoIdList) {try {//初始化对象DefaultAcsClient client = InitVodClient.initVodClient(ConstantVodUtils.ACCESS_KEY_ID,ConstantVodUtils.ACCESS_KEY_SECRET);//创建删除视频request对象DeleteVideoRequest request = new DeleteVideoRequest();//videoIdList值转换成1,2,3String videoIds = StringUtils.join(videoIdList.toArray(), ",");//向request设置视频idrequest.setVideoIds(videoIds);//调用初始化对象的方法实现删除client.getAcsResponse(request);}catch(Exception e){e.printStackTrace();throw new MyException(20001,"删除视频失败");}}

5、在servicr_edu中调用service_vod接口实现删除多个视频的功能

package com.nonglin.eduservice.service.impl;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.nonglin.eduservice.client.VodClient;
import com.nonglin.eduservice.entity.EduVideo;
import com.nonglin.eduservice.mapper.EduVideoMapper;
import com.nonglin.eduservice.service.EduVideoService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.ArrayList;
import java.util.List;/*** <p>* 课程视频 服务实现类* </p>** @author Lenovo* @since 2021-03-09*/
@Service
public class EduVideoServiceImpl extends ServiceImpl<EduVideoMapper, EduVideo> implements EduVideoService {@Autowiredprivate VodClient vodClient;//1 根据课程id删除小节// TODO 删除小节,删除对应视频文件@Overridepublic void removeVideoByCourseId(String courseId) {QueryWrapper<EduVideo> wrapperVideo = new QueryWrapper<>();wrapperVideo.eq("course_id",courseId);wrapperVideo.select("video_source_id");List<EduVideo> eduVideoList = baseMapper.selectList(wrapperVideo);//List<EduVideo> 变成List<String>List<String> videoIds = new ArrayList<>();for (int i = 0; i < eduVideoList.size(); i++) {EduVideo eduVideo = eduVideoList.get(i);String videoSouceId = eduVideo.getVideoSourceId();if(!StringUtils.isEmpty(videoSouceId)){//放到videoIds集合里面videoIds.add(videoSouceId);}}if(videoIds.size()>0){//根据多个视频id删除多个视频vodClient.deleteBatch(videoIds);}QueryWrapper<EduVideo> wrapper = new QueryWrapper<>();wrapper.eq("course_id",courseId);baseMapper.delete(wrapper);}
}

Day10-服务调用-删除课程的同时删除所有小节视频-p158、p159相关推荐

  1. 【OF框架】使用OF.WinService项目,添加定时服务,进行创建启动停止删除服务操作...

    准备 使用框架搭建完成项目,包含OF.WinService项目. 了解Window Service 和定时服务相关知识. 一.添加一个定时服务 第一步:了解项目结构 第二步:创建一个新的Job 第三步 ...

  2. oracle11 删除表空间,oracle11g启动停止服务,修改字符集,导入导出,创建删除表空间,卸载oracle等...

    oracle11g启动停止服务,修改字符集,导入导出,创建删除表空间,卸载oracle等 1. [启动停止服务] //启动停止监听  www.2cto.com lsnrctl start; lsnrc ...

  3. c语言添加删除课程的思路,基于C语言实现学生选课系统

    基于C语言实现学生选课系统 发布时间:2020-09-03 11:41:13 来源:脚本之家 阅读:100 作者:xiaocaidayong 鉴于C语言实现的通讯录,为了巩固C语言的基础知识,试着写一 ...

  4. 如何在服务里面删除应用(比如说删除掉服务里面的tomcat)?

    有时候我们需要在服务里面去删除掉那些没用.残余的应用,比如说我们卸载tomcat的时候,有时候会卸载不干净,安装的时候就会报错.那么我们就要考虑到服务里面是不是有残余的tomcat应用还在,如果存在我 ...

  5. uItron内核原理和服务调用--Kernel篇

    转载:http://hi.baidu.com/qinzhispace/item/46a0dfe13131cf216dabb8a7 一:Kernel篇 1.描述:uItron内核,是操作系统的核心,可以 ...

  6. Dapr牵手.NET学习笔记:想入非非的服务调用

    demo运行环境:Windows10,Docker(dapr_zipkin,dapr_redid,dapr_placement) 安装:dapr init 卸载:dapr uninstall,然后删除 ...

  7. Blazor+Dapr+K8s微服务之服务调用

    1.1  Dapr环境配置 1.1.1        在开发机安装Docker Desktop并启用Kubernetes 安装过程略,安装好后效果如下:(左下角两个绿色指示Docker和K8s正在运行 ...

  8. 真实世界:使用WCF扩展记录服务调用时间

    WCF 可扩展性 WCF 提供了许多扩展点供开发人员自定义运行时行为. WCF 在 Channel Layer 之上还提供了一个高级运行时,主要是针对应用程序开发人员.在 WCF 文档中,它常被称为服 ...

  9. Windows 网络服务架构系列课程详解(一) ----DHCP服务器的搭建与配置

    Windows 网络服务架构系列课程详解(一) ---------DHCP服务器的搭建与配置   实验背景: 企业网络环境中在没有配置DHCP服务器时,经常会遇到这样的情况,用户不懂怎么去配置IP地址 ...

最新文章

  1. 零基础Java学习之构造器
  2. python逐步回归筛选变量_利用python实现逐步回归
  3. html显示本地磁盘 图片,手把手教你为本地磁盘增添背景图片(图解)
  4. Sql Server查询语句的一些小技巧
  5. “芯”痛痛在系统与芯片 转型升级是历史趋势
  6. 第一章 概率论的基本概念
  7. c/c++整理--c++面向对象(5)
  8. 还在担心没有服务器做不了数据分析?这个免费资源看一下!
  9. 链接详解--共享库命名
  10. ActiveMQ 依赖JDK版本
  11. apulSoft apShaper for Mac(滤波失真插件)
  12. DocFetcher 本机文件搜索工具
  13. 【OpenCV 例程200篇】201. 图像的颜色空间转换
  14. ppt thinkcell-Thinkcell: 一款强大的专业图表制作工具
  15. DTcms-【无限级别分类设计】
  16. C++ CURL使用
  17. Revealing ecosystem services relationships and their driving factors for five basins of Beijing (2)
  18. 用python批量下载网络图片_使用python批量下载图片吗?怎么做?
  19. python numpy读取数据_python机器学习(七)数据分析利器,NumPy,pandas与Matplotlib
  20. 多测师肖sir_高级金牌讲师_面试题

热门文章

  1. grub引导项修复详解_grub2修复引导 · LINCHUAN的小站
  2. Win7开机加速全攻略四:系统服务优化
  3. 物联网模块跨阵M1控制LED
  4. 教你几招解决电脑假死现象
  5. framemaker 导出word文档,利用list遍历输出换行以及保留段落格式(首行空两格)
  6. python转行成数据分析_大数据专业成热门,该如何转行做大数据分析师
  7. 春林文件批量改名系统
  8. Kingdom Rush 国王保卫战图文攻略
  9. 摘要-Amira用户指南
  10. mysql异地容灾备份开启log_bin