Kevin's blog Kevin's blog
首页
  • Java基础
  • Java高级
  • MySQL
  • JDBC
  • Java 8新特性
  • 原生Servlet
  • 延迟队列
  • 分布式事务
  • ActiveMQ
  • Elasticsearch
  • Stream API
  • Redis 实战(黑马程序员)
  • Redis 课程(尚硅谷)
  • Redis数据类型和常用命令
  • 版本控制
  • Spring Framework
  • Spring MVC Framework
  • MyBatis Framework
  • MyBatis Plus Framework
  • Spring Boot Framework
  • 韩顺平 Spring Boot Framework
  • 在线教育
  • 谷粒商城 - 分布式基础 高级 集群
  • 谷粒商城 - 详细开发文档
  • docker基础
  • docker-compose容器编排
  • docker swarm集群管理
  • Vue2基础
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Kevin

Java系统笔记
首页
  • Java基础
  • Java高级
  • MySQL
  • JDBC
  • Java 8新特性
  • 原生Servlet
  • 延迟队列
  • 分布式事务
  • ActiveMQ
  • Elasticsearch
  • Stream API
  • Redis 实战(黑马程序员)
  • Redis 课程(尚硅谷)
  • Redis数据类型和常用命令
  • 版本控制
  • Spring Framework
  • Spring MVC Framework
  • MyBatis Framework
  • MyBatis Plus Framework
  • Spring Boot Framework
  • 韩顺平 Spring Boot Framework
  • 在线教育
  • 谷粒商城 - 分布式基础 高级 集群
  • 谷粒商城 - 详细开发文档
  • docker基础
  • docker-compose容器编排
  • docker swarm集群管理
  • Vue2基础
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 项目 在线教育

    • 项目简介

    • Mybatis Plus入门

    • 课程中心微服务搭建

    • 前后端分离相关知识

    • 后台管理系统前端页面的搭建

    • 整合阿里云OSS文件上传

    • 使用POI实现Excel导入导出

    • 整合POI实现课程类目管理

    • 课程基本信息管理

      • 课程发布表单-步骤导航
      • 编辑课程基本信息
      • 课程分类多级联动的实现
      • 讲师下拉列表
      • 富文本编辑器Tinymce
      • 课程封面
      • 课程信息回显
      • 更新课程信息
      • 课程列表的显示
      • 删除课程
        • 1、web层
        • 2、service层
        • 1、定义api
        • 2、修改删除按钮
        • 3、编写删除方法
    • 课程章节信息管理

    • 课程课时管理

    • 使用阿里云视频点播

    • 媒资管理

    • spring cloud服务发现和服务调用

    • 整合ECharts实现统计分析

    • 服务端渲染NUXT

    • 整合阿里云播放器

    • 微服务安全

    • 整合微信登录

    • spring cloud zuul 微服务网关在项目中的应用

    • 总结

  • 项目 谷粒商城

  • 项目 谷粒商城详细开发文档

  • Project
  • 项目 在线教育
  • 课程基本信息管理
zhihuanwang
2023-09-25
目录

删除课程

# 一、后端实现

# 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、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.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、*删除当前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

#

# 二、前端实现

# 1、定义api

course.js中添加删除方法

removeById(id) {
    return request({
        url: `${api_name}/${id}`,
        method: 'delete'
    })
}
1
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
编辑 (opens new window)
课程列表的显示
章节和课程列表显示

← 课程列表的显示 章节和课程列表显示→

最近更新
01
04.Spring Boot 韩顺平
10-12
02
day14
08-29
03
day09
08-29
更多文章>
Theme by Vdoing | Copyright © 2019-2025 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式