课程删除

1、所需删除信息内容说明

课程基本信息、描述信息、章节信息、小节信息、小节里还包括视频,删除课程时删除所有信息。

2、删除课程的接口

(1)在EduCourseController添加删除课程(以及相关信息)方法

java 复制代码
@ApiOperation(value = "删除课程(以及相关信息)")
@DeleteMapping("{courseId}")
public R deleteCourse(@PathVariable String courseId){
    courseService.deleteCourse(courseId);
    return R.ok();
}

(2)在EduCourseService添加接口

java 复制代码
void deleteCourse(String courseId);

(3)在EduCourseServiceImpl实现接口方法

java 复制代码
//删除课程(以及相关信息)
@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中添加删除课程的接口方法

java 复制代码
//删除课程方法
  deleteCourse(courseId){
    return request({
      url: `/eduservice/educourse/${courseId}`,
      method: 'delete'
    })
  }

(2)修改course/list.vue页面,调用删除课程接口方法

java 复制代码
<el-button type="text" @click="removeCourseId(scope.row.id)" size="mini" icon="el-icon-delete">删除</el-button>

(3)在course/list.vue页面实现删除课程js方法

java 复制代码
//删除课程(以及相关信息)
    removeCourseId(id) {
        this.$confirm("此操作将永久删除该课程, 是否继续?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      })
        .then(() => {
          //调用接口删除数据
          course.deleteCourse(id).then(response => {
            //提示
            this.$message({
              type: "success",
              message: "删除成功!"
            });
            //刷新表格
            this.getCourseList();
          });
        })
    }
相关推荐
尾善爱看海5 小时前
Vue 面试收官篇:SSR、性能优化落地、30 道高频面试题精讲(附标准答案)
前端·javascript·vue.js·面试·vue
weixin_BYSJ19875 小时前
【计算机毕设】基于SpringBoot与Vue的文物保护档案管理系统08621
vue.js·spring boot·spring cloud·微服务·架构·django·课程设计
Bs_MoneyMagnet5 小时前
基于springboot+vue的个人健康管理系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·vue3·springboot3·计算机毕业设计
Bs_MoneyMagnet8 小时前
基于springboot+vue的心理咨询预约与随访平台的设计与实现 源码+文档
vue.js·spring boot·后端·spring·毕业设计·旅游·计算机毕业设计
行者全栈架构师10 小时前
Spring Boot 接入 MaxKey 单点登录:6 个内部系统,一次登录全通行
java·vue.js·后端
万敏11 小时前
Vue3 全栈实战第九周:Node.js + Express 后端从零搭建实战记录
vue.js·node.js·全栈
雪芽蓝域zzs11 小时前
第四十七节:驾驶舱大屏 ECharts 图表集成
前端·javascript·vue.js
白雾茫茫丶12 小时前
Vibecoding 一个主题切换动画库:13 种揭幕方式
前端·vue.js·react.js
雪芽蓝域zzs13 小时前
第四十九节:TagsView 右键菜单(带三角箭头)给每个 tag 增加**鼠标右键菜单**(右键标签弹出:关闭、关闭其他、关闭全部)
前端·javascript·vue.js
志尊宝14 小时前
Vue3 零基础每日笔记(024):组件的创建与使用——从 import 到自动导入
前端·vue.js·笔记·前端框架·html5