|
|
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 +
|
|
|
"}";
|
|
|
}
|
|
|
} |