新增课时
更新课时
根据ID获取课时
根据ID删除可是
实体类PO类
package com.djr.eduservice.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="EduVideo对象", description="课程视频")
public class EduVideo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "视频ID")
@TableId(value = "id", type = IdType.ID_WORKER_STR)
private String id;
@ApiModelProperty(value = "课程ID")
private String courseId;
@ApiModelProperty(value = "章节ID")
private String chapterId;
@ApiModelProperty(value = "节点名称")
private String title;
@ApiModelProperty(value = "云端视频资源")
private String videoSourceId;
@ApiModelProperty(value = "原始文件名称")
private String videoOriginalName;
@ApiModelProperty(value = "排序字段")
private Integer sort;
@ApiModelProperty(value = "播放次数")
private Long playCount;
@ApiModelProperty(value = "是否可以试听:0收费 1免费")
private Boolean isFree;
@ApiModelProperty(value = "视频时长(秒)")
private Float duration;
@ApiModelProperty(value = "Empty未上传 Transcoding转码中 Normal正常")
private String status;
@ApiModelProperty(value = "视频源文件大小(字节)")
private Long size;
@ApiModelProperty(value = "乐观锁")
private Long version;
@ApiModelProperty(value = "创建时间")
private Date gmtCreate;
@ApiModelProperty(value = "更新时间")
private Date gmtModified;
}
返回对象封装
package com.djr.eduservice.entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@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;
}
service
package com.djr.eduservice.service;
import com.djr.eduservice.entity.EduVideo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.djr.eduservice.entity.VideoInfoForm;
public interface EduVideoService extends IService<EduVideo> {
boolean getCountByChapterId(String id);
void saveVideoInfo(VideoInfoForm videoInfoForm);
void updateVideoInfoById(VideoInfoForm videoInfoForm);
VideoInfoForm getVideoInfoFormById(String id);
boolean removeVideoById(String id);
}
serviceIMpl
package com.djr.eduservice.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.djr.commonutils.ResultCode;
import com.djr.eduservice.entity.EduVideo;
import com.djr.eduservice.entity.VideoInfoForm;
import com.djr.eduservice.mapper.EduVideoMapper;
import com.djr.eduservice.service.EduVideoService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.djr.servicebase.exceptionhandler.MyselfException;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@Service
public class EduVideoServiceImpl extends ServiceImpl<EduVideoMapper, EduVideo> implements EduVideoService {
@Override
public boolean getCountByChapterId(String chapterId) {
QueryWrapper<EduVideo> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("chapter_id", chapterId);
Integer count = baseMapper.selectCount(queryWrapper);
return null != count && count > 0;
}
@Override
public void saveVideoInfo(VideoInfoForm videoInfoForm) {
EduVideo video = new EduVideo();
BeanUtils.copyProperties(videoInfoForm, video);
boolean result = this.save(video);
if (!result) {
throw new MyselfException(50005, "课时信息保存失败");
}
}
@Override
public void updateVideoInfoById(VideoInfoForm videoInfoForm) {
EduVideo eduVideo = new EduVideo();
BeanUtils.copyProperties(videoInfoForm, eduVideo);
boolean result = this.updateById(eduVideo);
if (!result) {
throw new MyselfException(50005, "课时信息保存失败");
}
}
@Override
public VideoInfoForm getVideoInfoFormById(String id) {
EduVideo video = this.getById(id);
if (video == null) {
throw new MyselfException(50006, "数据不存在");
}
VideoInfoForm videoInfoForm = new VideoInfoForm();
BeanUtils.copyProperties(video, videoInfoForm);
return videoInfoForm;
}
@Override
public boolean removeVideoById(String id) {
Integer result = baseMapper.deleteById(id);
return null != result && result > 0;
}
}
controller
package com.djr.eduservice.controller;
import com.djr.commonutils.R;
import com.djr.eduservice.entity.VideoInfoForm;
import com.djr.eduservice.service.EduVideoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@Api(description="课时管理")
@CrossOrigin
@RestController
@RequestMapping("/eduservice/video")
public class VideoAdminController {
@Autowired
private EduVideoService eduVideoService;
@ApiOperation(value = "新增课时")
@PostMapping("/save-video-info")
public R save(
@ApiParam(name = "videoForm", value = "课时对象", required = true)
@RequestBody VideoInfoForm videoInfoForm){
eduVideoService.saveVideoInfo(videoInfoForm);
return R.ok();
}
@ApiOperation(value = "根据ID查询课时")
@GetMapping("video-info/{id}")
public R getVideInfoById(
@ApiParam(name = "id", value = "课时ID", required = true)
@PathVariable String id){
VideoInfoForm videoInfoForm = eduVideoService.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){
eduVideoService.updateVideoInfoById(videoInfoForm);
return R.ok();
}
@ApiOperation(value = "根据ID删除课时")
@DeleteMapping("{id}")
public R removeById(
@ApiParam(name = "id", value = "课时ID", required = true)
@PathVariable String id){
boolean result = eduVideoService.removeVideoById(id);
if(result){
return R.ok();
}else{
return R.error().message("删除失败");
}
}
}