后端

在 ​​ContentController​​ 当中定义接口

/**
* <b>
* 根据作品id删除对应视频信息
* </b>
*/
@ApiOperation(value = "根据作品id删除对应视频信息")
@PostMapping("/deleteContent/{id}")
public ResponseResult deleteContent(@PathVariable String id) {
contentService.deleteContentWithId(id);
return ResponseResult.ok();
}

修改 ContentService 添加方法

/**
* <b>
* 根据作品id删除对应视频信息
* </b>
*
* @param id 作品ID
*/
void deleteContentWithId(String id);

修改 ContentServiceImpl 实现方法

@Override
public void deleteContentWithId(String id) {
// 根据作品的id删除作品
// 1.作品章节
chapterService.deleteChapterWithContentId(id);

// 2.作品小节视频
contentVideoService.deleteContentVideoByContentId(id);

// 3.删除信息
baseMapper.deleteById(id);
}

修改 ChapterService

/**
* <b>
* 根据作品id删除作品关联的所有章节
* </b>
*
* @param id 作品ID
*/
void deleteChapterWithContentId(String id);

修改 ChapterServiceImpl

@Override
public void deleteChapterWithContentId(String id) {
QueryWrapper<Chapter> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("content_id", id);
baseMapper.delete(queryWrapper);
}

修改 ContentVideoService

/**
* <b>
* 根据作品id删除对应的小节视频
* </b>
*
* @param id 作品id
*/
void deleteContentVideoByContentId(String id);

修改 ContentVideoServiceImpl

@Override
public void deleteContentVideoByContentId(String id) {
QueryWrapper<ContentVideo> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("content_id", id);
baseMapper.delete(queryWrapper);
}

前端调用

在 ​​content.js​​ 当中定义删除请求

// 删除作品
deleteContentById(id) {
return request({
url: `/service_video/content/deleteContent/${id}`,
method: 'post'
});
}

删除按钮事件注册

作品管理-删除作品_ide

实现删除事件方法

deleteContentById(id) {
// debugger
this.$confirm(&#39;真的的要删除该作品?&#39;, &#39;提示&#39;, {
confirmButtonText: &#39;确定&#39;,
cancelButtonText: &#39;取消&#39;,
type: &#39;warning&#39;
}).then(() => {
return content.deleteContentById(id)
}).then((res) => {
this.getData()
this.$message({
type: &#39;success&#39;,
message: res.message
});
// 失败
}).catch((response) => {
if (response === &#39;cancel&#39;) {
this.$message({
type: &#39;info&#39;,
message: &#39;已取消删除&#39;
});
}
})
},