package com.iailab.module.system.dal.dataobject.sms; import com.iailab.framework.common.enums.UserTypeEnum; import com.iailab.framework.mybatis.core.dataobject.BaseDO; import com.iailab.module.system.enums.sms.SmsReceiveStatusEnum; import com.iailab.module.system.enums.sms.SmsSendStatusEnum; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import lombok.*; import java.time.LocalDateTime; import java.util.Map; /** * 短信日志 DO * * @author zzf * @since 2021-01-25 */ @TableName(value = "system_sms_log", autoResultMap = true) @KeySequence("system_sms_log_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) @Builder @AllArgsConstructor @NoArgsConstructor public class SmsLogDO extends BaseDO { /** * 自增编号 */ private Long id; // ========= 渠道相关字段 ========= /** * 短信渠道编号 * * 关联 {@link SmsChannelDO#getId()} */ private Long channelId; /** * 短信渠道编码 * * 冗余 {@link SmsChannelDO#getCode()} */ private String channelCode; // ========= 模板相关字段 ========= /** * 模板编号 * * 关联 {@link SmsTemplateDO#getId()} */ private Long templateId; /** * 模板编码 * * 冗余 {@link SmsTemplateDO#getCode()} */ private String templateCode; /** * 短信类型 * * 冗余 {@link SmsTemplateDO#getType()} */ private Integer templateType; /** * 基于 {@link SmsTemplateDO#getContent()} 格式化后的内容 */ private String templateContent; /** * 基于 {@link SmsTemplateDO#getParams()} 输入后的参数 */ @TableField(typeHandler = JacksonTypeHandler.class) private Map templateParams; /** * 短信 API 的模板编号 * * 冗余 {@link SmsTemplateDO#getApiTemplateId()} */ private String apiTemplateId; // ========= 手机相关字段 ========= /** * 手机号 */ private String mobile; /** * 用户编号 */ private Long userId; /** * 用户类型 * * 枚举 {@link UserTypeEnum} */ private Integer userType; // ========= 发送相关字段 ========= /** * 发送状态 * * 枚举 {@link SmsSendStatusEnum} */ private Integer sendStatus; /** * 发送时间 */ private LocalDateTime sendTime; /** * 短信 API 发送结果的编码 * * 由于第三方的错误码可能是字符串,所以使用 String 类型 */ private String apiSendCode; /** * 短信 API 发送失败的提示 */ private String apiSendMsg; /** * 短信 API 发送返回的唯一请求 ID * * 用于和短信 API 进行定位于排错 */ private String apiRequestId; /** * 短信 API 发送返回的序号 * * 用于和短信 API 平台的发送记录关联 */ private String apiSerialNo; // ========= 接收相关字段 ========= /** * 接收状态 * * 枚举 {@link SmsReceiveStatusEnum} */ private Integer receiveStatus; /** * 接收时间 */ private LocalDateTime receiveTime; /** * 短信 API 接收结果的编码 */ private String apiReceiveCode; /** * 短信 API 接收结果的提示 */ private String apiReceiveMsg; }