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;
}
=======================================================================================
因为添加课程信息的表单中包含的课程简介信息,课程简介信息在课程表(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;
}
=================================================================================
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();
}
}
========================================================================
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);
}
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前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
文末
逆水行舟不进则退,所以大家要有危机意识。
同样是干到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开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
前端面试题汇总