Commit 2a4d9f43eb57d78f6dbabb9956aa393644730f29
1 parent
b4be8e98
优化短信日志相关逻辑
Showing
6 changed files
with
27 additions
and
5 deletions
src/main/java/cn/iocoder/dashboard/framework/sms/client/AliyunSmsClient.java
| @@ -5,6 +5,7 @@ import cn.iocoder.dashboard.framework.sms.core.SmsBody; | @@ -5,6 +5,7 @@ import cn.iocoder.dashboard.framework.sms.core.SmsBody; | ||
| 5 | import cn.iocoder.dashboard.framework.sms.core.SmsResult; | 5 | import cn.iocoder.dashboard.framework.sms.core.SmsResult; |
| 6 | import cn.iocoder.dashboard.framework.sms.core.SmsResultDetail; | 6 | import cn.iocoder.dashboard.framework.sms.core.SmsResultDetail; |
| 7 | import cn.iocoder.dashboard.framework.sms.core.property.SmsChannelProperty; | 7 | import cn.iocoder.dashboard.framework.sms.core.property.SmsChannelProperty; |
| 8 | +import cn.iocoder.dashboard.modules.system.enums.sms.SmsSendStatusEnum; | ||
| 8 | import com.aliyuncs.DefaultAcsClient; | 9 | import com.aliyuncs.DefaultAcsClient; |
| 9 | import com.aliyuncs.IAcsClient; | 10 | import com.aliyuncs.IAcsClient; |
| 10 | import com.aliyuncs.dysmsapi.model.v20170525.QuerySendDetailsRequest; | 11 | import com.aliyuncs.dysmsapi.model.v20170525.QuerySendDetailsRequest; |
| @@ -85,11 +86,21 @@ public class AliyunSmsClient extends AbstractSmsClient { | @@ -85,11 +86,21 @@ public class AliyunSmsClient extends AbstractSmsClient { | ||
| 85 | resultDetail.setCreateTime(DateUtil.parseDateTime(s.getSendDate())); | 86 | resultDetail.setCreateTime(DateUtil.parseDateTime(s.getSendDate())); |
| 86 | resultDetail.setMessage(s.getContent()); | 87 | resultDetail.setMessage(s.getContent()); |
| 87 | resultDetail.setPhone(s.getPhoneNum()); | 88 | resultDetail.setPhone(s.getPhoneNum()); |
| 88 | - resultDetail.setStatus(Math.toIntExact(s.getSendStatus())); | 89 | + resultDetail.setStatus(statusConvert(s.getSendStatus())); |
| 89 | resultDetailList.add(resultDetail); | 90 | resultDetailList.add(resultDetail); |
| 90 | }); | 91 | }); |
| 91 | resultBody.setResult(resultDetailList); | 92 | resultBody.setResult(resultDetailList); |
| 92 | return resultBody; | 93 | return resultBody; |
| 93 | } | 94 | } |
| 94 | 95 | ||
| 96 | + private int statusConvert(Long aliSendStatus) { | ||
| 97 | + if (aliSendStatus == 1L) { | ||
| 98 | + return SmsSendStatusEnum.SUCCESS.getStatus(); | ||
| 99 | + } | ||
| 100 | + if (aliSendStatus == 2L) { | ||
| 101 | + return SmsSendStatusEnum.FAIL.getStatus(); | ||
| 102 | + } | ||
| 103 | + return SmsSendStatusEnum.WAITING.getStatus(); | ||
| 104 | + } | ||
| 105 | + | ||
| 95 | } | 106 | } |
src/main/java/cn/iocoder/dashboard/framework/sms/core/SmsResult.java
| @@ -12,7 +12,7 @@ import java.util.List; | @@ -12,7 +12,7 @@ import java.util.List; | ||
| 12 | public class SmsResult implements Serializable { | 12 | public class SmsResult implements Serializable { |
| 13 | 13 | ||
| 14 | /** | 14 | /** |
| 15 | - * 是否成功 | 15 | + * 是否成功(发送短信的请求是否成功) |
| 16 | */ | 16 | */ |
| 17 | // TODO FROM 芋艿 to zzf:未来要加一个 code,将不同平台的短信失败的情况,做一次统一的收敛。 DONE | 17 | // TODO FROM 芋艿 to zzf:未来要加一个 code,将不同平台的短信失败的情况,做一次统一的收敛。 DONE |
| 18 | private Boolean success; | 18 | private Boolean success; |
src/main/java/cn/iocoder/dashboard/framework/sms/core/SmsResultDetail.java
| @@ -12,7 +12,7 @@ import java.util.Date; | @@ -12,7 +12,7 @@ import java.util.Date; | ||
| 12 | public class SmsResultDetail implements Serializable { | 12 | public class SmsResultDetail implements Serializable { |
| 13 | 13 | ||
| 14 | /** | 14 | /** |
| 15 | - * 状态 1成功 2失败 3等待回执 | 15 | + * 短信发送状态 {@link cn.iocoder.dashboard.modules.system.enums.sms.SmsSendStatusEnum} |
| 16 | */ | 16 | */ |
| 17 | private Integer status; | 17 | private Integer status; |
| 18 | 18 |
src/main/java/cn/iocoder/dashboard/framework/sms/core/property/SmsTemplateProperty.java
| @@ -7,7 +7,7 @@ import javax.validation.constraints.NotEmpty; | @@ -7,7 +7,7 @@ import javax.validation.constraints.NotEmpty; | ||
| 7 | 7 | ||
| 8 | /** | 8 | /** |
| 9 | * 渠道模板VO类 | 9 | * 渠道模板VO类 |
| 10 | - * TODO FROM 芋艿 TO zzf:模板是不是不要提供到 client 里面,而是交给 factory 统一维护就好。不然,模板修改时候,刷新 client 会比较麻烦。 | 10 | + * TODO FROM 芋艿 TO zzf:模板是不是不要提供到 client 里面,而是交给 factory 统一维护就好。不然,模板修改时候,刷新 client 会比较麻烦。 DONE |
| 11 | * | 11 | * |
| 12 | * | 12 | * |
| 13 | * @author zzf | 13 | * @author zzf |
src/main/java/cn/iocoder/dashboard/modules/system/enums/sms/SmsSendStatusEnum.java
| @@ -22,8 +22,11 @@ public enum SmsSendStatusEnum { | @@ -22,8 +22,11 @@ public enum SmsSendStatusEnum { | ||
| 22 | //失败 | 22 | //失败 |
| 23 | FAIL(3), | 23 | FAIL(3), |
| 24 | 24 | ||
| 25 | + //等待回执 | ||
| 26 | + WAITING(4), | ||
| 27 | + | ||
| 25 | //成功 | 28 | //成功 |
| 26 | - SUCCESS(4); | 29 | + SUCCESS(5); |
| 27 | 30 | ||
| 28 | private final int status; | 31 | private final int status; |
| 29 | 32 |
src/main/java/cn/iocoder/dashboard/modules/system/service/sms/impl/SysSmsLogServiceImpl.java
| @@ -59,6 +59,14 @@ public class SysSmsLogServiceImpl implements SysSmsLogService { | @@ -59,6 +59,14 @@ public class SysSmsLogServiceImpl implements SysSmsLogService { | ||
| 59 | smsLog.setId(logId); | 59 | smsLog.setId(logId); |
| 60 | if (result.getSuccess()) { | 60 | if (result.getSuccess()) { |
| 61 | smsLog.setSendStatus(SmsSendStatusEnum.SUCCESS.getStatus()); | 61 | smsLog.setSendStatus(SmsSendStatusEnum.SUCCESS.getStatus()); |
| 62 | + SysSmsLogDO smsLogDO = logMapper.selectById(logId); | ||
| 63 | + result.getResult().forEach(s -> { | ||
| 64 | + smsLogDO.setPhones(s.getPhone()); | ||
| 65 | + smsLogDO.setSendStatus(s.getStatus()); | ||
| 66 | + smsLogDO.setRemark(s.getMessage()); | ||
| 67 | + smsLogDO.setCreateTime(s.getCreateTime()); | ||
| 68 | + logMapper.insert(smsLogDO); | ||
| 69 | + }); | ||
| 62 | } else { | 70 | } else { |
| 63 | smsLog.setSendStatus(SmsSendStatusEnum.FAIL.getStatus()); | 71 | smsLog.setSendStatus(SmsSendStatusEnum.FAIL.getStatus()); |
| 64 | smsLog.setRemark(result.getMessage() + JsonUtils.toJsonString(result.getResult())); | 72 | smsLog.setRemark(result.getMessage() + JsonUtils.toJsonString(result.getResult())); |