课程删除

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();
          });
        })
    }
相关推荐
用户198834243622125 分钟前
在vue中,abortController调用导致的内存泄漏问题
vue.js
石像鬼₧魂石2 小时前
【Y2Ksoft】四季贵州水世界乐园管理系统 —— 玻璃拟态 · 单文件HTML · 开箱即用
前端·html
ndsc_d3 小时前
前端实战复盘:用AI直接生成响应式官网落地页与React源码
前端·人工智能·react.js·ui·前端框架·aigc·paico
梨想橙汁4 小时前
吃透HTML5:从基础标签到核心新特性全覆盖
html
HackTwoHub4 小时前
AntiDebug Mcp、AI逆向绕过前端,Hook 加密接口,抓取 Vue 路由漏洞,接入 MCP 让 AI 自动化挖掘前端漏洞
前端·vue.js·人工智能·安全·web安全·网络安全·系统安全
李明卫杭州5 小时前
还在用 Vue2 的 $set?一文吃透 Observable 响应式原理与 Vue3 的 Proxy 重构
vue.js
英勇无比的消炎药5 小时前
层级选择不再手写联动:TinyVue Cascader 级联选择器上手
vue.js
摇滚侠6 小时前
SpringBoot3+Vue3 全套视频教程 61
vue.js
breeze jiang6 小时前
告别等待焦虑:Vue 3 + DeepSeek 实现 AI 打字机流式对话,用户体验提升立竿见影
vue.js·人工智能·ux
石像鬼₧魂石6 小时前
【Y2Ksoft】贵阳陈桥饭店ERP管理系统
大数据·前端·物联网·html·数据库架构