潘志宝
2024-08-21 c39abccd937de093fc067abffac5f66b758bc97b
提交 | 用户 | 时间
e7c126 1 package com.iailab.module.system.dal.dataobject.sms;
H 2
3 import com.iailab.framework.common.enums.UserTypeEnum;
4 import com.iailab.framework.mybatis.core.dataobject.BaseDO;
5 import com.iailab.module.system.enums.sms.SmsReceiveStatusEnum;
6 import com.iailab.module.system.enums.sms.SmsSendStatusEnum;
7 import com.baomidou.mybatisplus.annotation.KeySequence;
8 import com.baomidou.mybatisplus.annotation.TableField;
9 import com.baomidou.mybatisplus.annotation.TableName;
10 import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
11 import lombok.*;
12
13 import java.time.LocalDateTime;
14 import java.util.Map;
15
16 /**
17  * 短信日志 DO
18  *
19  * @author zzf
20  * @since 2021-01-25
21  */
22 @TableName(value = "system_sms_log", autoResultMap = true)
23 @KeySequence("system_sms_log_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
24 @Data
25 @EqualsAndHashCode(callSuper = true)
26 @ToString(callSuper = true)
27 @Builder
28 @AllArgsConstructor
29 @NoArgsConstructor
30 public class SmsLogDO extends BaseDO {
31
32     /**
33      * 自增编号
34      */
35     private Long id;
36
37     // ========= 渠道相关字段 =========
38
39     /**
40      * 短信渠道编号
41      *
42      * 关联 {@link SmsChannelDO#getId()}
43      */
44     private Long channelId;
45     /**
46      * 短信渠道编码
47      *
48      * 冗余 {@link SmsChannelDO#getCode()}
49      */
50     private String channelCode;
51
52     // ========= 模板相关字段 =========
53
54     /**
55      * 模板编号
56      *
57      * 关联 {@link SmsTemplateDO#getId()}
58      */
59     private Long templateId;
60     /**
61      * 模板编码
62      *
63      * 冗余 {@link SmsTemplateDO#getCode()}
64      */
65     private String templateCode;
66     /**
67      * 短信类型
68      *
69      * 冗余 {@link SmsTemplateDO#getType()}
70      */
71     private Integer templateType;
72     /**
73      * 基于 {@link SmsTemplateDO#getContent()} 格式化后的内容
74      */
75     private String templateContent;
76     /**
77      * 基于 {@link SmsTemplateDO#getParams()} 输入后的参数
78      */
79     @TableField(typeHandler = JacksonTypeHandler.class)
80     private Map<String, Object> templateParams;
81     /**
82      * 短信 API 的模板编号
83      *
84      * 冗余 {@link SmsTemplateDO#getApiTemplateId()}
85      */
86     private String apiTemplateId;
87
88     // ========= 手机相关字段 =========
89
90     /**
91      * 手机号
92      */
93     private String mobile;
94     /**
95      * 用户编号
96      */
97     private Long userId;
98     /**
99      * 用户类型
100      *
101      * 枚举 {@link UserTypeEnum}
102      */
103     private Integer userType;
104
105     // ========= 发送相关字段 =========
106
107     /**
108      * 发送状态
109      *
110      * 枚举 {@link SmsSendStatusEnum}
111      */
112     private Integer sendStatus;
113     /**
114      * 发送时间
115      */
116     private LocalDateTime sendTime;
117     /**
118      * 短信 API 发送结果的编码
119      *
120      * 由于第三方的错误码可能是字符串,所以使用 String 类型
121      */
122     private String apiSendCode;
123     /**
124      * 短信 API 发送失败的提示
125      */
126     private String apiSendMsg;
127     /**
128      * 短信 API 发送返回的唯一请求 ID
129      *
130      * 用于和短信 API 进行定位于排错
131      */
132     private String apiRequestId;
133     /**
134      * 短信 API 发送返回的序号
135      *
136      * 用于和短信 API 平台的发送记录关联
137      */
138     private String apiSerialNo;
139
140     // ========= 接收相关字段 =========
141
142     /**
143      * 接收状态
144      *
145      * 枚举 {@link SmsReceiveStatusEnum}
146      */
147     private Integer receiveStatus;
148     /**
149      * 接收时间
150      */
151     private LocalDateTime receiveTime;
152     /**
153      * 短信 API 接收结果的编码
154      */
155     private String apiReceiveCode;
156     /**
157      * 短信 API 接收结果的提示
158      */
159     private String apiReceiveMsg;
160
161 }