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实现课程类目管理

    • 课程基本信息管理

    • 课程章节信息管理

    • 课程课时管理

      • 课时管理后端开发
        • 一、定义Form表单对象
        • 二、课时保存
          • 1、web层接口的定义
          • 2、业务层
        • 三、课时的修改
          • 1、web层接口的定义
          • 2、业务层
        • 四、课时的删除
          • 1、web层接口的定义
          • 2、业务层
      • 课时管理前端开发
      • 作业-发布课程完善步骤导航-答案
      • 作业-发布课程完善步骤导航
    • 使用阿里云视频点播

    • 媒资管理

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

    • 整合ECharts实现统计分析

    • 服务端渲染NUXT

    • 整合阿里云播放器

    • 微服务安全

    • 整合微信登录

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

    • 总结

  • 项目 谷粒商城

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

  • Project
  • 项目 在线教育
  • 课程课时管理
zhihuanwang
2023-09-25
目录

课时管理后端开发

# 一、定义Form表单对象

VideoInfoForm.java
package com.guli.edu.form;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * @author helen
 * @since 2019/3/5
 */
@ApiModel(value = "课时基本信息", description = "编辑课时基本信息的表单对象")
@Data
public class VideoInfoForm {

    @ApiModelProperty(value = "视频ID")
    private String id;

    @ApiModelProperty(value = "节点名称")
    private String title;

    @ApiModelProperty(value = "课程ID")
    private String courseId;

    @ApiModelProperty(value = "章节ID")
    private String chapterId;

    @ApiModelProperty(value = "视频资源")
    private String videoSourceId;

    @ApiModelProperty(value = "显示排序")
    private Integer sort;
    
    @ApiModelProperty(value = "是否可以试听:0默认 1免费")
    private Boolean free;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

# 二、课时保存

# 1、web层接口的定义

VideoAdminController.java

package com.guli.edu.controller.admin;

@Api(description="课时管理")
@CrossOrigin //跨域
@RestController
@RequestMapping("/admin/edu/video")
public class VideoAdminController {

    @Autowired
    private VideoService videoService;

    @ApiOperation(value = "新增课时")
    @PostMapping("save-video-info")
    public R save(
            @ApiParam(name = "videoForm", value = "课时对象", required = true)
            @RequestBody VideoInfoForm videoInfoForm){

        videoService.saveVideoInfo(videoInfoForm);
        return R.ok();
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# 2、业务层

VideoService.java

void saveVideoInfo(VideoInfoForm videoInfoForm);
1

VideoServiceImpl.java

@Override
public void saveVideoInfo(VideoInfoForm videoInfoForm) {

    Video video = new Video();
    BeanUtils.copyProperties(videoInfoForm, video);
    boolean result = this.save(video);

    if(!result){
        throw new GuliException(20001, "课时信息保存失败");
    }
}
1
2
3
4
5
6
7
8
9
10
11

# 三、课时的修改

# 1、web层接口的定义

VideoAdminController.java

@ApiOperation(value = "根据ID查询课时")
@GetMapping("video-info/{id}")
public R getVideInfoById(
    @ApiParam(name = "id", value = "课时ID", required = true)
    @PathVariable String id){

    VideoInfoForm videoInfoForm = videoService.getVideoInfoFormById(id);
    return R.ok().data("item", videoInfoForm);
}

@ApiOperation(value = "更新课时")
@PutMapping("update-video-info/{id}")
public R updateCourseInfoById(
    @ApiParam(name = "VideoInfoForm", value = "课时基本信息", required = true)
    @RequestBody VideoInfoForm videoInfoForm,

    @ApiParam(name = "id", value = "课时ID", required = true)
    @PathVariable String id){

    videoService.updateVideoInfoById(videoInfoForm);
    return R.ok();
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# 2、业务层

VideoService.java

VideoInfoForm getVideoInfoFormById(String id);

void updateVideoInfoById(VideoInfoForm videoInfoForm);
1
2
3

VideoServiceImpl.java

@Override
public VideoInfoForm getVideoInfoFormById(String id) {
    //从video表中取数据
    Video video = this.getById(id);
    if(video == null){
        throw new GuliException(20001, "数据不存在");
    }

    //创建videoInfoForm对象
    VideoInfoForm videoInfoForm = new VideoInfoForm();
    BeanUtils.copyProperties(video, videoInfoForm);

    return videoInfoForm;
}

@Override
public void updateVideoInfoById(VideoInfoForm videoInfoForm) {
    //保存课时基本信息
    Video video = new Video();
    BeanUtils.copyProperties(videoInfoForm, video);
    boolean result = this.updateById(video);
    if(!result){
        throw new GuliException(20001, "课时信息保存失败");
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

# 四、课时的删除

# 1、web层接口的定义

VideoAdminController.java

@ApiOperation(value = "根据ID删除课时")
@DeleteMapping("{id}")
public R removeById(
    @ApiParam(name = "id", value = "课时ID", required = true)
    @PathVariable String id){

    boolean result = videoService.removeVideoById(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、业务层

VideoService.java

boolean removeVideoById(String id);
1

VideoServiceImpl.java

@Override
public boolean removeVideoById(String id) {

    //删除视频资源 TODO

    Integer result = baseMapper.deleteById(id);
    return null != result && result > 0;
}
1
2
3
4
5
6
7
8
编辑 (opens new window)
上次更新: 2024/06/15, 15:12:25
章节管理前端页面实现
课时管理前端开发

← 章节管理前端页面实现 课时管理前端开发→

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