Day07-添加课程信息接口-p108

  • @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;


版权声明:本文为m0_70273331原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。