课程删除
1、所需删除信息内容说明
课程基本信息、描述信息、章节信息、小节信息、小节里还包括视频,删除课程时删除所有信息。
2、删除课程的接口
(1)在EduCourseController添加删除课程(以及相关信息)方法
@ApiOperation(value = "删除课程(以及相关信息)")
@DeleteMapping("{courseId}")
public R deleteCourse(@PathVariable String courseId){
courseService.deleteCourse(courseId);
return R.ok();
}
(2)在EduCourseService添加接口
void deleteCourse(String courseId);
(3)在EduCourseServiceImpl实现接口方法
//删除课程(以及相关信息)
@Override
public void deleteCourse(String courseId) {
//1根据课程id删除小节
//TODO 删除小节前删除视频
QueryWrapper<EduVideo> wrapperVideo = new QueryWrapper<>();
wrapperVideo.eq("course_id",courseId);
videoService.remove(wrapperVideo);
//2根据课程id删除章节
QueryWrapper<EduChapter> wrapperChapter = new QueryWrapper<>();
wrapperChapter.eq("course_id",courseId);
chapterService.remove(wrapperChapter);
//3根据课程id删除描述
courseDescriptionService.removeById(courseId);
//4根据课程id删除课程
int delete = baseMapper.deleteById(courseId);
if(delete==0){
throw new GuliException(20001,"删除课程失败");
}
}
3、整合前端
(1)在api/course.js
中添加删除课程的接口方法
//删除课程方法
deleteCourse(courseId){
return request({
url: `/eduservice/educourse/${courseId}`,
method: 'delete'
})
}
(2)修改course/list.vue
页面,调用删除课程接口方法
<el-button type="text" @click="removeCourseId(scope.row.id)" size="mini" icon="el-icon-delete">删除</el-button>
(3)在course/list.vue
页面实现删除课程js方法
//删除课程(以及相关信息)
removeCourseId(id) {
this.$confirm("此操作将永久删除该课程, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
//调用接口删除数据
course.deleteCourse(id).then(response => {
//提示
this.$message({
type: "success",
message: "删除成功!"
});
//刷新表格
this.getCourseList();
});
})
}
转载自:https://juejin.cn/post/7277917854430887951