1.先写方法
传列表删除多个视频
首先测试我们的方法看他输入的格式是否是我们需要的
可以看到list中的集合成为了我们想要的格式
更改我们的删除方法
//删除多个视频 @DeleteMapping("delete-bantch") public R delete_bantch(List videolist){ try { //初始化对象 DefaultAcsClient client = InitVodClient.initVodClient("LTAI4G6wT9rRbhacy6YBj9Lt","04jdcJDdAgEJWD0pqLyf4smnW0Xou7"); //创建删除视频request对象 DeleteVideoRequest request = new DeleteVideoRequest(); //转换形式 String str=StringUtils.join(videolist.toArray(),","); //向request设置视频id request.setVideoIds(str); //调用初始化对象的方法实现删除 client.getAcsResponse(request); return R.OK(); }catch(Exception e) { e.printStackTrace(); throw new onlineEduException(20001,"删除视频失败"); } }
2.写我们的接口
@FeignClient("service-vod") @Component public interface VodClient { //定义调用方法的路径 @DeleteMapping("/eduvod/video/deleteAlyiVideo/{videoId}") public R deleteAlyiVideo(@PathVariable("videoId") String videoId); //定义调用删除多个视频方法的路径 //删除多个视频 @DeleteMapping("/eduvod/video/delete-bantch") public R delete_bantch(List videolist); }
3.完善方法
完善根据课程id删除小节这个方法
//1 根据课程id删除小节 // TODO 删除小节,删除对应视频文件 @Override public void removeVideoByCourseId(String courseId) { QueryWrapper<EduVideo> wrapper2 = new QueryWrapper<>(); wrapper2.eq("course_id",courseId); wrapper2.select("video_sourse_id"); List<EduVideo> eduVideoList=baseMapper.selectList(wrapper2); List<String> videoIds=new ArrayList<>(); for (int i = 0; i < eduVideoList.size(); i++) { EduVideo eduVideo=eduVideoList.get(i); String videoSourseId=eduVideo.getVideoSourceId(); if(!StringUtils.isEmpty(videoSourseId)){ videoIds.add(videoSourseId); } } if(videoIds.size()>0){ vodClient.delete_bantch(videoIds); } QueryWrapper<EduVideo> wrapper = new QueryWrapper<>(); wrapper.eq("course_id",courseId); baseMapper.delete(wrapper); } }