From 3a8b3037e31dfc698205a047b897cb6843f7e180 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Wed, 24 May 2023 15:02:42 +0800
Subject: [PATCH] 短信发送记录保存修改,新增短信发送结果保存即关联
---
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/controller/SmsController.java | 73 +++++++++++++++++++++++++++++-------
1 files changed, 59 insertions(+), 14 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/controller/SmsController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/controller/SmsController.java
index 2e35846..d84efde 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/controller/SmsController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/controller/SmsController.java
@@ -4,7 +4,9 @@
import cn.com.flaginfo.sdk.cmc.api.sms.send.SMSSendRequest;
import cn.gistack.sm.sms.entity.SmsRecord;
import cn.gistack.sm.sms.entity.SmsRequest;
+import cn.gistack.sm.sms.entity.SmsResult;
import cn.gistack.sm.sms.service.ISmsRecordService;
+import cn.gistack.sm.sms.service.ISmsResultService;
import cn.gistack.sm.sms.util.SmsUtils;
import cn.gistack.system.user.entity.User;
import cn.gistack.system.user.feign.IUserClient;
@@ -35,6 +37,8 @@
private final ISmsRecordService smsRecordService;
+ private final ISmsResultService smsResultService;
+
private final BladeRedis bladeRedis;
private final IUserClient userClient;
@@ -64,7 +68,10 @@
String sendMsg = SmsUtils.sendMsg(request);
JSONObject jsonObject = JSON.parseObject(sendMsg);
// 记录发送记录操作
- saveSendRecord(request, sendMsg);
+ SmsResult smsResult = saveSendResult(request, 1);
+ if (null != smsResult){
+ saveSendRecord(request, sendMsg,smsResult.getId());
+ }
// 保存验证码到 redis
saveCodeForRedis(request.getUserNumber(), randNumber);
// 返回发送信息
@@ -123,16 +130,46 @@
* 发送记录保存
* @param request 发送信息
* @param sendMsg 响应数据
+ * @param resultId 发送结果id
*/
- private void saveSendRecord(SMSSendRequest request, String sendMsg) {
+ private void saveSendRecord(SMSSendRequest request, String sendMsg,Long resultId) {
+ // 在保存明细
SmsRecord smsRecord = new SmsRecord();
- smsRecord.setPhone(request.getUserNumber());
+// smsRecord.setPhone(request.getUserNumber());
+ smsRecord.setTel(request.getUserNumber());
smsRecord.setContent(request.getMessageContent());
smsRecord.setTemplateId(request.getTemplateId());
smsRecord.setResContent(sendMsg);
+ smsRecord.setResultId(resultId);
+ // 解析 sendMsg
+ JSONObject jsonObject = JSON.parseObject(sendMsg);
+ smsRecord.setResponseStatus(jsonObject.getString("code"));
+ smsRecord.setResponseMsg(jsonObject.getString("msg"));
//插入记录
smsRecordService.save(smsRecord);
}
+
+ /**
+ * 发送记录保存
+ * @param request 发送信息
+ * @param number 号码个数
+ */
+ private SmsResult saveSendResult(SMSSendRequest request,Integer number) {
+ // 先保存结果表
+ SmsResult smsResult = new SmsResult();
+ smsResult.setTemplateId(request.getTemplateId());
+ smsResult.setContent(request.getMessageContent());
+ smsResult.setNumber(number);
+ //插入记录
+ boolean save = smsResultService.save(smsResult);
+ if (save){
+ return smsResult;
+ }
+ // 返回
+ return null;
+ }
+
+
/**
* 发送邮件提醒
@@ -143,6 +180,12 @@
public R sendEmailMsg(@RequestBody SmsRequest smsRequest){
// 处理数据(可能是多个手机号情况)
List<String> list = Arrays.asList(smsRequest.getPhone().split(","));
+ // 保存发送结果
+ // 记录保存
+ SMSSendRequest request = new SMSSendRequest();
+ request.setMessageContent(smsRequest.getContent());
+ request.setTemplateId("2431012165299");
+ SmsResult smsResult = saveSendResult(request, list.size());
// 遍历
for (String phone : list) {
DynSMSSendRequest dynSMSSendRequest = new DynSMSSendRequest();
@@ -153,21 +196,23 @@
// 发送邮件短信
String dynSendMsg = SmsUtils.dynSendMethod(dynSMSSendRequest);
// 记录保存
- SMSSendRequest request = new SMSSendRequest();
- request.setUserNumber(phone);
- request.setMessageContent(smsRequest.getContent());
- request.setTemplateId(dynSMSSendRequest.getTemplateId());
- // 记录发送记录操作
- saveSendRecord(request, dynSendMsg);
+ if (null != smsResult) {
+ SMSSendRequest smsSendRequest = new SMSSendRequest();
+ smsSendRequest.setUserNumber(phone);
+ smsSendRequest.setMessageContent(smsRequest.getContent());
+ smsSendRequest.setTemplateId(dynSMSSendRequest.getTemplateId());
+ // 记录发送记录操作
+ saveSendRecord(smsSendRequest, dynSendMsg,smsResult.getId());
+ }
}else {
// 手机号有误记录
// 记录保存
- SMSSendRequest request = new SMSSendRequest();
- request.setUserNumber(phone);
- request.setMessageContent(smsRequest.getContent());
- request.setTemplateId(dynSMSSendRequest.getTemplateId());
+ SMSSendRequest smsSendRequest = new SMSSendRequest();
+ smsSendRequest.setUserNumber(phone);
+ smsSendRequest.setMessageContent(smsRequest.getContent());
+ smsSendRequest.setTemplateId(dynSMSSendRequest.getTemplateId());
// 记录发送记录操作
- saveSendRecord(request, "手机号错误未发送...");
+ saveSendRecord(smsSendRequest, "手机号错误未发送...",null);
}
}
return R.status(true);
--
Gitblit v1.9.3