当前位置:网站首页>直播课堂系统03-model类及实体
直播课堂系统03-model类及实体
2022-07-23 09:25:00 【z754916067】
目录
enums

CouponType
优惠券的类型
package enums;
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;
@Getter
public enum CouponType {
//提供枚举类对象
REGISTER(1,"注册"),
RECOMMEND(2,"推荐购买");
//声明此为枚举类
@EnumValue
private Integer code;
private String comment;
//构造函数
CouponType(Integer code,String comment){
this.code = code;
this.comment = comment;
}
}
CouponStatus
优惠券状态
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;
@Getter
public enum CouponStatus {
NOT_USED(0,"未使用"),
USED(1,"已使用");
@EnumValue
private Integer code ;
private String comment ;
CouponStatus(Integer code, String comment ){
this.code=code;
this.comment=comment;
}
}
CouponRangeType
优惠券作用范围
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;
@Getter
public enum CouponRangeType {
ALL(1,"通用"),
;
@EnumValue
private Integer code ;
private String comment ;
CouponRangeType(Integer code, String comment ){
this.code=code;
this.comment=comment;
}
}
OrderStatus
订单状态,目前只列了两个
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;
@Getter
public enum OrderStatus {
//订单状态【0->待付款;1->待发货;2->待团长收货;3->待用户收货,已完成;-1->已取消】
UNPAID(0,"待支付"),
PAID(1,"已支付"),
;
@EnumValue
private Integer code ;
private String comment ;
OrderStatus(Integer code, String comment ){
this.code = code;
this.comment=comment;
}
}
PaymentStatus
支付的状态,应该是用户界面展示的
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;
@Getter
public enum PaymentStatus {
UNPAID(1,"支付中"),
PAID(2,"已支付");
//REFUND(-1,"已退款");
@EnumValue
private Integer code ;
private String comment ;
PaymentStatus(Integer code, String comment) {
this.code = code;
this.comment = comment;
}
}
PaymentType
支付方式,支付宝还是微信
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;
@Getter
public enum PaymentType {
ALIPAY(1,"支付宝"),
WEIXIN(2,"微信" );
@EnumValue
private Integer code ;
private String comment ;
PaymentType(Integer code, String comment ){
this.code = code;
this.comment=comment;
}
}
model
base
BaseEntity
顾名思义,其是几乎所有实体类的父类,需要实现序列化接口。
@ApiModel是作用在接口相关实体类上的注解,用来对该接口相关实体类添加额外的描述信息
@ApiModelProperty 是作用在接口相关实体类的参数上的注解,用来对具体的接口相关实体类中的参数添加额外的描述信息
一般在实体类上声明@ApiModel,在其具体属性里声明@ApiModelProperty
@TableName可以映射到数据库中的表名
@JsonFormat用来表示json序列化的一种格式或者类型,比如存储在mysql中的数据是date类型的,当读取出来封装在实体类中的时候,就会变成英文时间格式,而不是yyyy-MM-dd HH:mm:ss这样的中文时间,因此需要用到JsonFormat注解来格式化时间。
@TableField(exist = false) 注解加载bean属性上,表示当前属性不是数据库的字段,但在项目中必须使用,这样在新增等使用bean的时候,mybatis-plus就会忽略这个,不会报错,单纯@TableField就是对应着数据库内的字段。
@JsonIgnore此注解用于属性或者方法上(最好是属性上),返回到前端的实体类中,有一些属性不想暴露出去,用这个注解返回的json数据即不包含该属性。
@Data
public class BaseEntity implements Serializable {
//value 对其进行描述
@ApiModelProperty(value = "id")
//AUTO为自增
@TableId(type = IdType.AUTO)
private Long id;
@ApiModelProperty(value="创建时间")
//固定数据库从其取出后被实体化后的格式
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
//声明数据库中有可能没有,但需要使用
@TableField("create_time")
private Date createTime;
@ApiModelProperty(value = "更新时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField("update_time")
private Date updateTime;
@ApiModelProperty(value = "逻辑删除(1:已删除,0:未删除)")
//不让这个数据被返回
@JsonIgnore
//是否能够逻辑删除
@TableLogic
@TableField("is_deleted")
private Integer isDeleted;
@ApiModelProperty(value = "其他参数")
@TableField(exist = false)
private Map<String,Object> param = new HashMap<>();
}
BaseMongoEntity
@CreatedDate @LastModifiedDate可以在实体插入或更新时自动赋值,其赋的就是声明的值。
@Data
public class BaseMongoEntity {
@ApiModelProperty(value = "id")
@Id
private String id;
@ApiModelProperty(value = "创建时间")
//可以在实体创建时自动赋值
@CreatedDate
private Date createTime;
@ApiModelProperty(value = "更新时间")
//可以在实体最后一次修改时自动赋值
@LastModifiedDate
private Date updateTime;
@ApiModelProperty(value = "其他参数")
@Transient //被该注解标注的,将不会被录入到数据库中。只作为普通的javaBean属性
private Map<String,Object> param = new HashMap<>();
}
MqRepeatRecord
这个原项目放在base里了,可是我寻思它是继承的baseEntity的,于是单独提出来了,没看懂这个实体是做什么的,它指的表也没找到,先放这吧。
@Data
@ApiModel(description = "MqRepeatRecord")
@TableName("mq_repeat_record")
public class MqRepeatRecord extends BaseEntity {
//实现序列化接口
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "业务编号")
@TableField("business_no")
private String businessNo;
}
activity
去看数据库表,有两张表,所以对应创建两个实体,前面的base看懂了的话这块不用看。
CouponInfo
//声明getter setter等一系列方法
@Data
//注解表明这是作用在接口相关实体类上的注解,用来对该接口相关实体类添加额外的描述信息
@ApiModel(description = "CouponInfo")
@TableName("coupon_info")
public class CouponInfo extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "购物券类型 1 现金券")
@TableField("coupon_type")
private String couponType;
@ApiModelProperty(value = "优惠卷名字")
@TableField("coupon_name")
private String couponName;
@ApiModelProperty(value = "金额")
@TableField("amount")
private BigDecimal amount;
@ApiModelProperty(value = "使用门槛 0->没门槛")
@TableField("condition_amount")
private BigDecimal conditionAmount;
@ApiModelProperty(value = "可以领取的开始日期")
@TableField("start_time")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date startTime;
@ApiModelProperty(value = "可以领取的结束日期")
@TableField("end_time")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date endTime;
@ApiModelProperty(value = "使用范围[1->全场通用]")
@TableField("range_type")
private String rangeType;
@ApiModelProperty(value = "使用范围描述")
@TableField("rule_desc")
private String ruleDesc;
@ApiModelProperty(value = "发行数量")
@TableField("publish_count")
private Integer publishCount;
@ApiModelProperty(value = "每人限领张数")
@TableField("per_limit")
private Integer perLimit;
@ApiModelProperty(value = "已使用数量")
@TableField("use_count")
private Integer useCount;
@ApiModelProperty(value = "领取数量")
@TableField("receive_count")
private Integer receiveCount;
@ApiModelProperty(value = "过期时间")
@TableField("expire_time")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date expireTime;
@ApiModelProperty(value = "发布状态[0-未发布,1-已发布]")
@TableField("publish_status")
private Boolean publishStatus;
@ApiModelProperty(value = "使用状态")
@TableField(exist = false)
private String couponStatus;
@ApiModelProperty(value = "优惠券领取表id")
@TableField(exist = false)
private Long couponUseId;
@ApiModelProperty(value = "领取时间")
@TableField(exist = false)
@JsonFormat(pattern = "yyyy-MM-dd")
private Date getTime;
}
CouponUse
@Data
@ApiModel(description = "CouponUse")
@TableName("coupon_use")
public class CouponUse extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "购物券ID")
@TableField("coupon_id")
private Long couponId;
@ApiModelProperty(value = "用户ID")
@TableField("user_id")
private Long userId;
@ApiModelProperty(value = "订单ID")
@TableField("order_id")
private Long orderId;
@ApiModelProperty(value = "购物券状态(0:未使用 1:已使用)")
@TableField("coupon_status")
private String couponStatus;
@ApiModelProperty(value = "获取时间")
@TableField("get_time")
private Date getTime;
@ApiModelProperty(value = "使用时间")
@TableField("using_time")
private Date usingTime;
@ApiModelProperty(value = "支付时间")
@TableField("used_time")
private Date usedTime;
@ApiModelProperty(value = "过期时间")
@TableField("expire_time")
private Date expireTime;
}
live
里面也没啥新东西,按照数据库表来建对应的实体而已,随便列举一个,直接跳过。
package model.live;
@Data
@ApiModel(description = "LiveCourse")
@TableName("live_course")
public class LiveCourse extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "课程id")
@TableField("course_id")
private Long courseId;
@ApiModelProperty(value = "直播名称")
@TableField("course_name")
private String courseName;
@ApiModelProperty(value = "直播开始时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField("start_time")
private Date startTime;
@ApiModelProperty(value = "直播结束时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField("end_time")
private Date endTime;
@ApiModelProperty(value = "主播老师id")
@TableField("teacher_id")
private Long teacherId;
@ApiModelProperty(value = "课程封面图片路径")
@TableField("cover")
private String cover;
}
order
里面也差不多,注意下payment里面有几个是enum里的实体类即可。
@Data
@ApiModel(description = "PaymentInfo")
@TableName("payment_info")
public class PaymentInfo extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "对外业务编号")
@TableField("out_trade_no")
private String outTradeNo;
@ApiModelProperty(value = "订单编号")
@TableField("order_id")
private Long orderId;
@ApiModelProperty(value = "用户id")
@TableField("user_id")
private Long userId;
@ApiModelProperty(value = "支付宝交易编号")
@TableField("alipay_trade_no")
private String alipayTradeNo;
@ApiModelProperty(value = "支付金额")
@TableField("total_amount")
private BigDecimal totalAmount;
@ApiModelProperty(value = "交易内容")
@TableField("trade_body")
private String tradeBody;
@ApiModelProperty(value = "paymentType")
@TableField("payment_type")
private PaymentType paymentType;
@ApiModelProperty(value = "支付状态")
@TableField("payment_status")
private PaymentStatus paymentStatus;
@ApiModelProperty(value = "回调信息")
@TableField("callback_content")
private String callbackContent;
@ApiModelProperty(value = "回调时间")
@TableField("callback_time")
private Date callbackTime;
}
user
跳过
package model.user;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import model.base.BaseEntity;
@Data
@ApiModel(description = "UserInfo")
@TableName("user_info")
public class UserInfo extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "手机号")
@TableField("phone")
private String phone;
@ApiModelProperty(value = "用户密码")
@TableField("password")
private String password;
@ApiModelProperty(value = "用户姓名")
@TableField("name")
private String name;
@ApiModelProperty(value = "昵称")
@TableField("nick_name")
private String nickName;
@ApiModelProperty(value = "性别")
@TableField("sex")
private Integer sex;
@ApiModelProperty(value = "头像")
@TableField("avatar")
private String avatar;
@ApiModelProperty(value = "省")
@TableField("province")
private String province;
@ApiModelProperty(value = "0:未订阅 1:已订阅")
@TableField("subscribe")
private Integer subscribe;
@ApiModelProperty(value = "小程序open id")
@TableField("open_id")
private String openId;
@ApiModelProperty(value = "微信开放平台unionID")
@TableField("union_id")
private String unionId;
@ApiModelProperty(value = "推荐人用户id")
@TableField("recommend_id")
private Long recommendId;
@ApiModelProperty(value = "status")
@TableField("status")
private Integer status;
}
vod
vod就是直播板块,跳过。
@Data
@ApiModel(description = "Subject")
@TableName("subject")
public class Subject {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "id")
private Long id;
@ApiModelProperty(value = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField("create_time")
private Date createTime;
@ApiModelProperty(value = "更新时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField("update_time")
private Date updateTime;
@ApiModelProperty(value = "逻辑删除(1:已删除,0:未删除)")
@JsonIgnore
@TableLogic
@TableField("is_deleted")
private Integer isDeleted;
@ApiModelProperty(value = "其他参数")
@TableField(exist = false)
private Map<String,Object> param = new HashMap<>();
@ApiModelProperty(value = "类别名称")
@TableField("title")
private String title;
@ApiModelProperty(value = "父ID")
@TableField("parent_id")
private Long parentId;
@ApiModelProperty(value = "排序字段")
@TableField("sort")
private Integer sort;
@ApiModelProperty(value = "是否包含子节点")
@TableField(exist = false)
private boolean hasChildren;
}
边栏推荐
- 4. Find the median of two positive arrays
- C language implementation of classroom random roll call system
- Quick introduction to PKI system
- [paper notes] mobile robot navigation method based on hierarchical depth reinforcement learning
- 第2章 基础查询与排序
- 云呐|公司固定资产如何管理?公司固定资产如何管理比较好?
- win11安装系统提示virtualBox不兼容需要卸载virtual的解决办法,但是卸载列表找不到virtual的解决办法
- 中望CAD专业版 2022软件安装包下载及安装教程
- Is it risky and safe to open a mobile stock account?
- 基金开户网上办理是否安全?谁给解答一下
猜你喜欢

手工测试如何转向自动化测试?字节5年自动化经验浅谈一下...

【C语言】猜数字小游戏+关机小程序

Yunna - how to strengthen fixed asset management? How to strengthen the management of fixed assets?

C语言项目实战:24点游戏计算器(基于结构体、指针、函数、数组、循环等知识点)
![[can I do your first project?] Detailed introduction and Simulation Implementation of gzip](/img/92/dfef5887e2313f8025baf11c8f4379.png)
[can I do your first project?] Detailed introduction and Simulation Implementation of gzip

Work notes: one time bag grabbing

基于EFR32MG24的AI 加速度姿势识别体验

【FLink】FLink Hash collision on user-specified ID “opt“. Most likely cause is a non-unique ID

Official wechat product! Applet automation framework minium sharing Preview

Aruba学习笔记05-配置架构- WLAN配置架构
随机推荐
反射调用事务方法导致事务失效
What is per title encoding?
可以进行2D或3D三角剖分的一些库
CAN总线快速了解
C language introduction practice (11): enter a group of positive integers and sum the numbers in reverse order
固定资产管理系统哪家好?固定资产管理平台有哪些?
[download attached] several scripts commonly used in penetration testing that are worth collecting
微信官方出品!小程序自动化框架 minium 分享预告
【PyQt5安装以及使用】
Chapter 3 complex query
[C language] number guessing game + shutdown applet
基于nextcloud构建个人网盘
【测试平台开发】二十、完成编辑页发送接口请求功能
21 - 二叉树的垂直遍历
It is suggested that Siyuan notes can be compatible with third-party sync disks
中望CAD专业版 2022软件安装包下载及安装教程
PKI体系快速介绍
Uni app knowledge points and records of problems and solutions encountered in the project
Towhee weekly model
4. Find the median of two positive arrays