From 290a83e383a6b69bf838f0b4dc6310958dff8116 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Wed, 24 May 2023 15:59:20 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jtdev' into jtdev

---
 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