Day07-添加课程信息接口-p108,2024大厂前端面试题精选

文章介绍了如何使用MyBatisPlus在Java项目中设计EduCourse和EduCourseDescription实体类,以及如何创建CourseInfoVo表单类用于课程信息的提交。还展示了如何在SpringBoot的Controller和Service层实现课程信息的添加功能,涉及数据库表结构和API接口的定义。
摘要由CSDN通过智能技术生成

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=“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

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

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
img

文末

逆水行舟不进则退,所以大家要有危机意识。

同样是干到35岁,普通人写业务代码划水,榜样们深度学习拓宽视野晋升管理。

这也是为什么大家都说35岁是程序员的门槛,很多人迈不过去,其实各行各业都是这样都会有个坎,公司永远都缺的高级人才,只用这样才能在大风大浪过后,依然闪耀不被公司淘汰不被社会淘汰。

为了帮助大家更好温习重点知识、更高效的准备面试,特别整理了《前端工程师核心知识笔记》电子稿文件。

内容包括html,css,JavaScript,ES6,计算机网络,浏览器,工程化,模块化,Node.js,框架,数据结构,性能优化,项目等等。

269页《前端大厂面试宝典》

包含了腾讯、字节跳动、小米、阿里、滴滴、美团、58、拼多多、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中级前端技术点。

CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

前端面试题汇总

024c (备注前端)**
[外链图片转存中…(img-Fi4FDPGO-1711931316006)]

文末

逆水行舟不进则退,所以大家要有危机意识。

同样是干到35岁,普通人写业务代码划水,榜样们深度学习拓宽视野晋升管理。

这也是为什么大家都说35岁是程序员的门槛,很多人迈不过去,其实各行各业都是这样都会有个坎,公司永远都缺的高级人才,只用这样才能在大风大浪过后,依然闪耀不被公司淘汰不被社会淘汰。

为了帮助大家更好温习重点知识、更高效的准备面试,特别整理了《前端工程师核心知识笔记》电子稿文件。

内容包括html,css,JavaScript,ES6,计算机网络,浏览器,工程化,模块化,Node.js,框架,数据结构,性能优化,项目等等。

269页《前端大厂面试宝典》

包含了腾讯、字节跳动、小米、阿里、滴滴、美团、58、拼多多、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中级前端技术点。

CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

前端面试题汇总

  • 15
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值