@author Lenovo
@since 2021-03-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value=“EduCourse对象”, description=“课程”)
public class EduCourse 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 teacherId;
@ApiModelProperty(value = “课程专业ID”)
private String subjectId;
@ApiModelProperty(value = “课程专业父级ID”)
private String subjectParentId;
@ApiModelProperty(value = “课程标题”)
private String title;
@ApiModelProperty(value = “课程销售价格,设置为0则可免费观看”)
private BigDecimal price;
@ApiModelProperty(value = “总课时”)
private Integer lessonNum;
@ApiModelProperty(value = “课程封面图片路径”)
private String cover;
@ApiModelProperty(value = “销售数量”)
private Long buyCount;
@ApiModelProperty(value = “浏览数量”)
private Long viewCount;
@ApiModelProperty(value = “乐观锁”)
private Long version;
@ApiModelProperty(value = “课程状态 Draft未发布 Normal已发布”)
private String status;
@ApiModelProperty(value = “逻辑删除 1(true)已删除, 0(false)未删除”)
private Integer isDeleted;
@ApiModelProperty(value = “创建时间”)
@TableField(fill = FieldFill.INSERT)
private Date gmtCreate;
@ApiModelProperty(value = “更新时间”)
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date gmtModified;
}
[](()2.1.2、eduCourseDescription
package com.nonglin.eduservice.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableField;
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;
/**
课程简介
@author Lenovo
@since 2021-03-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value=“EduCourseDescription对象”, description=“课程简介”)
public class EduCourseDescription implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = “课程ID”)
@TableId(value = “id”, type = IdType.INPUT)
private String id;
@ApiModelProperty(value = “课程简介”)
private String description;
@ApiModelProperty(value = “创建时间”)
@TableField(fill = FieldFill.INSERT)
private Date gmtCreate;
@ApiModelProperty(value = “更新时间”)
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date gmtModified;
}
[](()3、创建vo类,封装添加课程信息的表单提交的数据
=======================================================================================
因为添加课程信息的表单中包含的课程简介信息,课程简介信息在课程表(edu_course)中没有设置该字段,而是存在一张单独的表edu_course_description表中,所以需要设置一个封装类,用于封装添加课程表单所有信息。
代码:
package com.nonglin.eduservice.entity.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
@Description :封装添加课程信息表单的数据
@Author :lenovo
《大厂前端面试题解析+Web核心总结学习笔记+企业项目实战源码+最新高清讲解视频》无偿开源 徽信搜索公众号【编程进阶路】 @Date :2021/3/9 11:04
*/
@ApiModel(value = “课程基本信息”, description = “编辑课程基本信息的表单对象”)
@Data
public class CourseInfoVo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = “课程ID”)
private String id;
@ApiModelProperty(value = “课程讲师ID”)
private String teacherId;
@ApiModelProperty(value = “课程专业ID”)
private String subjectId;
@ApiModelProperty(value = “课程标题”)
private String title;
@ApiModelProperty(value = “课程销售价格,设置为0则可免费观看”)
private BigDecimal price;
@ApiModelProperty(value = “总课时”)
private Integer lessonNum;
@ApiModelProperty(value = “课程封面图片路径”)
private String cover;
@ApiModelProperty(value = “课程简介”)
private String description;
}
[](()4、完善控制层,编写添加课程信息代码
=================================================================================
package com.nonglin.eduservice.controller;
import com.nonglin.commonutils.R;
import com.nonglin.eduservice.entity.vo.CourseInfoVo;
import com.nonglin.eduservice.service.EduCourseService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
课程 前端控制器
@author Lenovo
@since 2021-03-09
*/
@Api(description=“课程管理”)
@RestController
@RequestMapping(“/eduservice/course”)
@CrossOrigin
public class EduCourseController {
@Autowired
private EduCourseService courseService;
//添加课程信息
@ApiOperation(value = “添加课程信息”)
@PostMapping(“addCourseInfo”)
public R addCourseInfo(@RequestBody CourseInfoVo courseInfoVo){
courseService.saveCourseInfo(courseInfoVo);
return R.ok();
}
}
[](()5、完善业务层代码
========================================================================
[](()5.1、完善业务层接口代码
package com.nonglin.eduservice.service;
import com.nonglin.eduservice.entity.EduCourse;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nonglin.eduservice.entity.vo.CourseInfoVo;
/**
课程 服务类
@author Lenovo
@since 2021-03-09
*/
public interface EduCourseService extends IService {
//添加课程信息
void saveCourseInfo(CourseInfoVo courseInfoVo);
}
[](()5.1、完善业务层实现类代码
package com.nonglin.eduservice.service.impl;
import com.nonglin.commonutils.exceptionhandler.MyException;
import com.nonglin.eduservice.entity.EduCourse;
import com.nonglin.eduservice.entity.EduCourseDescription;
import com.nonglin.eduservice.entity.vo.CourseInfoVo;
import com.nonglin.eduservice.mapper.EduCourseMapper;
import com.nonglin.eduservice.service.EduCourseDescriptionService;
import com.nonglin.eduservice.service.EduCourseService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
课程 服务实现类
@author Lenovo
@since 2021-03-09
*/
@Service
public class EduCourseServiceImpl extends ServiceImpl<EduCourseMapper, EduCourse> implements EduCourseService {
@Autowired
private EduCourseDescriptionService eduCourseDescriptionService;