You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
test/src/main/java/com/entity/ChatEntity.java

310 lines
8.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.entity;
// 导入 MyBatis-Plus 用于指定主键的注解
import com.baomidou.mybatisplus.annotations.TableId;
// 导入 MyBatis-Plus 用于指定数据库表名的注解
import com.baomidou.mybatisplus.annotations.TableName;
// 导入 JSR 303 验证注解,确保字段不为空字符串
import javax.validation.constraints.NotBlank;
// 导入 JSR 303 验证注解,确保集合或数组不为空
import javax.validation.constraints.NotEmpty;
// 导入 JSR 303 验证注解,确保字段不为 null
import javax.validation.constraints.NotNull;
// 导入 Jackson 注解,用于忽略 JSON 序列化和反序列化时的某些属性
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
// 导入反射调用可能抛出的异常类
import java.lang.reflect.InvocationTargetException;
// 导入序列化接口
import java.io.Serializable;
// 导入日期类
import java.util.Date;
// 导入列表集合类
import java.util.List;
// 导入 Spring 框架用于日期格式化的注解
import org.springframework.format.annotation.DateTimeFormat;
// 导入 Jackson 用于 JSON 序列化时日期格式化的注解
import com.fasterxml.jackson.annotation.JsonFormat;
// 导入 Apache Commons BeanUtils 工具类,用于对象属性复制
import org.apache.commons.beanutils.BeanUtils;
// 导入 MyBatis-Plus 用于指定字段的注解
import com.baomidou.mybatisplus.annotations.TableField;
// 导入 MyBatis-Plus 字段填充策略枚举
import com.baomidou.mybatisplus.enums.FieldFill;
// 导入 MyBatis-Plus 主键生成策略枚举
import com.baomidou.mybatisplus.enums.IdType;
/**
* 在线咨询
*
* @author
* @email
*/
// 指定该类对应数据库中的 chat 表
@TableName("chat")
// 实现 Serializable 接口,使该类的对象可以进行序列化和反序列化操作
public class ChatEntity<T> implements Serializable {
// 序列化版本号,确保序列化和反序列化的兼容性
private static final long serialVersionUID = 1L;
// 无参构造函数,方便创建 ChatEntity 类的实例
public ChatEntity() {
}
// 带参构造函数,接收一个泛型对象 t将其属性复制到当前 ChatEntity 对象
public ChatEntity(T t) {
try {
// 使用 BeanUtils 工具类复制属性
BeanUtils.copyProperties(this, t);
} catch (IllegalAccessException | InvocationTargetException e) {
// 若复制属性过程中出现异常,打印异常堆栈信息
e.printStackTrace();
}
}
/**
* 主键
*/
// 指定该字段为主键,且主键生成策略为自增
@TableId(type = IdType.AUTO)
// 指定该字段对应数据库表中的 id 字段
@TableField(value = "id")
// 主键,用于唯一标识一条在线咨询记录
private Integer id;
/**
* 提问用户
*/
// 指定该字段对应数据库表中的 yonghu_id 字段
@TableField(value = "yonghu_id")
// 提问用户的 ID关联用户表
private Integer yonghuId;
/**
* 问题
*/
// 指定该字段对应数据库表中的 chat_issue 字段
@TableField(value = "chat_issue")
// 用户提出的问题内容
private String chatIssue;
/**
* 问题时间
*/
// 设置 JSON 序列化时日期的格式,使用中文环境,时区为东八区,格式为 "yyyy-MM-dd HH:mm:ss"
@JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
// 用于 Spring MVC 接收表单数据时将日期字符串转换为 Date 对象
@DateTimeFormat
// 指定该字段对应数据库表中的 issue_time 字段
@TableField(value = "issue_time")
// 用户提出问题的时间
private Date issueTime;
/**
* 回复
*/
// 指定该字段对应数据库表中的 chat_reply 字段
@TableField(value = "chat_reply")
// 针对用户问题的回复内容
private String chatReply;
/**
* 回复时间
*/
// 设置 JSON 序列化时日期的格式,使用中文环境,时区为东八区,格式为 "yyyy-MM-dd HH:mm:ss"
@JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
// 用于 Spring MVC 接收表单数据时将日期字符串转换为 Date 对象
@DateTimeFormat
// 指定该字段对应数据库表中的 reply_time 字段
@TableField(value = "reply_time")
// 回复用户问题的时间
private Date replyTime;
/**
* 状态
*/
// 指定该字段对应数据库表中的 zhuangtai_types 字段
@TableField(value = "zhuangtai_types")
// 在线咨询的状态,可能用整数表示不同状态,如 0 表示待回复1 表示已回复等
private Integer zhuangtaiTypes;
/**
* 数据类型
*/
// 指定该字段对应数据库表中的 chat_types 字段
@TableField(value = "chat_types")
// 在线咨询的数据类型,可能用整数表示不同类型,如 1 表示文字咨询2 表示图片咨询等
private Integer chatTypes;
/**
* 创建时间
*/
// 设置 JSON 序列化时日期的格式,使用中文环境,时区为东八区,格式为 "yyyy-MM-dd HH:mm:ss"
@JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
// 用于 Spring MVC 接收表单数据时将日期字符串转换为 Date 对象
@DateTimeFormat
// 指定该字段对应数据库表中的 insert_time 字段,且在插入数据时自动填充
@TableField(value = "insert_time", fill = FieldFill.INSERT)
// 该条在线咨询记录的创建时间
private Date insertTime;
/**
* 设置:主键
*/
// 获取主键的方法
public Integer getId() {
return id;
}
/**
* 获取:主键
*/
// 设置主键的方法
public void setId(Integer id) {
this.id = id;
}
/**
* 设置:提问用户
*/
// 获取提问用户 ID 的方法
public Integer getYonghuId() {
return yonghuId;
}
/**
* 获取:提问用户
*/
// 设置提问用户 ID 的方法
public void setYonghuId(Integer yonghuId) {
this.yonghuId = yonghuId;
}
/**
* 设置:问题
*/
// 获取问题内容的方法
public String getChatIssue() {
return chatIssue;
}
/**
* 获取:问题
*/
// 设置问题内容的方法
public void setChatIssue(String chatIssue) {
this.chatIssue = chatIssue;
}
/**
* 设置:问题时间
*/
// 获取问题时间的方法
public Date getIssueTime() {
return issueTime;
}
/**
* 获取:问题时间
*/
// 设置问题时间的方法
public void setIssueTime(Date issueTime) {
this.issueTime = issueTime;
}
/**
* 设置:回复
*/
// 获取回复内容的方法
public String getChatReply() {
return chatReply;
}
/**
* 获取:回复
*/
// 设置回复内容的方法
public void setChatReply(String chatReply) {
this.chatReply = chatReply;
}
/**
* 设置:回复时间
*/
// 获取回复时间的方法
public Date getReplyTime() {
return replyTime;
}
/**
* 获取:回复时间
*/
// 设置回复时间的方法
public void setReplyTime(Date replyTime) {
this.replyTime = replyTime;
}
/**
* 设置:状态
*/
// 获取状态的方法
public Integer getZhuangtaiTypes() {
return zhuangtaiTypes;
}
/**
* 获取:状态
*/
// 设置状态的方法
public void setZhuangtaiTypes(Integer zhuangtaiTypes) {
this.zhuangtaiTypes = zhuangtaiTypes;
}
/**
* 设置:数据类型
*/
// 获取数据类型的方法
public Integer getChatTypes() {
return chatTypes;
}
/**
* 获取:数据类型
*/
// 设置数据类型的方法
public void setChatTypes(Integer chatTypes) {
this.chatTypes = chatTypes;
}
/**
* 设置:创建时间
*/
// 获取创建时间的方法
public Date getInsertTime() {
return insertTime;
}
/**
* 获取:创建时间
*/
// 设置创建时间的方法
public void setInsertTime(Date insertTime) {
this.insertTime = insertTime;
}
// 重写 toString 方法,方便打印对象信息
@Override
public String toString() {
return "Chat{" +
"id=" + id +
", yonghuId=" + yonghuId +
", chatIssue=" + chatIssue +
", issueTime=" + issueTime +
", chatReply=" + chatReply +
", replyTime=" + replyTime +
", zhuangtaiTypes=" + zhuangtaiTypes +
", chatTypes=" + chatTypes +
", insertTime=" + insertTime +
"}";
}
}