后端
在 ContentController
当中定义接口
/**
* <b>
* 根据作品id删除对应视频信息
* </b>
*/
(value = "根据作品id删除对应视频信息")
("/deleteContent/{id}")
public ResponseResult deleteContent( String id) {
contentService.deleteContentWithId(id);
return ResponseResult.ok();
}
修改 ContentService 添加方法
/**
* <b>
* 根据作品id删除对应视频信息
* </b>
*
* @param id 作品ID
*/
void deleteContentWithId(String id);
修改 ContentServiceImpl 实现方法
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
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
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'
});
}
删除按钮事件注册
实现删除事件方法
deleteContentById(id) {
// debugger
this.$confirm('真的的要删除该作品?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
return content.deleteContentById(id)
}).then((res) => {
this.getData()
this.$message({
type: 'success',
message: res.message
});
// 失败
}).catch((response) => {
if (response === 'cancel') {
this.$message({
type: 'info',
message: '已取消删除'
});
}
})
},