删除课程
# 一、后端实现
# 1、web层
定义删除api方法:CourseAdminController.java
@ApiOperation(value = "根据ID删除课程")
@DeleteMapping("{id}")
public R removeById(
@ApiParam(name = "id", value = "课程ID", required = true)
@PathVariable String id){
boolean result = courseService.removeCourseById(id);
if(result){
return R.ok();
}else{
return R.error().message("删除失败");
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 2、service层
如果用户确定删除,则首先删除video记录,然后删除chapter记录,最后删除Course记录
2.1、在VideoService中定义根据courseId删除video业务方法
接口
boolean removeByCourseId(String courseId);
1
实现
@Override
public boolean removeByCourseId(String courseId) {
QueryWrapper<Video> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("course_id", courseId);
Integer count = baseMapper.delete(queryWrapper);
return null != count && count > 0;
}
1
2
3
4
5
6
7
2
3
4
5
6
7
***2.2、*在ChapterService中定义根据courseId删除chapter业务方法
接口
boolean removeByCourseId(String courseId);
1
实现
@Override
public boolean removeByCourseId(String courseId) {
QueryWrapper<Chapter> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("course_id", courseId);
Integer count = baseMapper.delete(queryWrapper);
return null != count && count > 0;
}
1
2
3
4
5
6
7
2
3
4
5
6
7
***2.3、*删除当前course记录
接口:CourseService.java
boolean removeCourseById(String id);
1
实现:CourseServiceImpl.java
@Override
public boolean removeCourseById(String id) {
//根据id删除所有视频
videoService.removeByCourseId(id);
//根据id删除所有章节
chapterService.removeByCourseId(id);
Integer result = baseMapper.deleteById(id);
return null != result && result > 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
#
# 二、前端实现
# 1、定义api
course.js中添加删除方法
removeById(id) {
return request({
url: `${api_name}/${id}`,
method: 'delete'
})
}
1
2
3
4
5
6
2
3
4
5
6
# 2、修改删除按钮
src/api/edu/course.js 删除按钮注册click事件
<el-button type="text" size="mini" icon="el-icon-delete" @click="removeDataById(scope.row.id)">删除</el-button>
1
# 3、编写删除方法
removeDataById(id) {
// debugger
this.$confirm('此操作将永久删除该课程,以及该课程下的章节和视频,是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
return course.removeById(id)
}).then(() => {
this.fetchData()
this.$message({
type: 'success',
message: '删除成功!'
})
}).catch((response) => { // 失败
if (response === 'cancel') {
this.$message({
type: 'info',
message: '已取消删除'
})
}
})
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
编辑 (opens new window)