From 80a8d45a3e4c79c2dc3e290745ca477032998fae Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Tue, 30 May 2023 19:23:08 +0800
Subject: [PATCH] 新增 xx 变量和 具名变量通用发送接口

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/controller/SmsController.java |  108 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 104 insertions(+), 4 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 d84efde..65fa054 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
@@ -7,7 +7,9 @@
 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.service.SmsService;
 import cn.gistack.sm.sms.util.SmsUtils;
+import cn.gistack.sm.sms.vo.SmsRequestTemplate;
 import cn.gistack.system.user.entity.User;
 import cn.gistack.system.user.feign.IUserClient;
 import com.alibaba.fastjson.JSON;
@@ -39,6 +41,8 @@
 
 	private final ISmsResultService smsResultService;
 
+	private final SmsService smsService;
+
 	private final BladeRedis bladeRedis;
 
 	private final IUserClient userClient;
@@ -49,13 +53,87 @@
 	}
 
 	/**
+	 * 短信固定内容发送通用方法(仅支持 {xx} 模式的模板)
+	 * request 必须包含手机号,模板id,拼接好的内容
+	 * @param request
+	 * @return
+	 */
+	@PostMapping("/sendFixedContentByXXModel")
+	public R sendFixedContentByXXModel(@RequestBody SMSSendRequest request){
+		// 手机号码校验
+		if(validatePhone(request.getUserNumber())) {
+			// 发送操作
+			String sendMsg = JSON.toJSONString(SmsUtils.sendMsg(request));
+			JSONObject jsonObject = JSON.parseObject(sendMsg);
+			// 记录发送记录操作
+			SmsResult smsResult = saveSendResult(request, 1);
+			if (null != smsResult){
+				saveSendRecord(request, sendMsg,smsResult.getId());
+			}
+			// 返回发送信息
+			return R.data(jsonObject);
+		}
+		// 返回发送信息
+		return R.fail(400,"该手机号不存在!");
+	}
+
+
+	/**
+	 * 短信动态内容发送通用方法(仅支持 具名变量 {手机号码:11} 模式的模板)
+	 * request 必须包含手机号,模板id,拼接好的内容
+	 * @param smsRequest
+	 * @return
+	 */
+	@PostMapping("/sendFixedContentByNamedVariableModel")
+	public R sendFixedContentByNamedVariableModel(@RequestBody SmsRequest smsRequest){
+		// 处理数据(可能是多个手机号情况)
+		List<String> list = Arrays.asList(smsRequest.getPhone().split(","));
+		// 保存发送结果
+		// 记录保存
+		SMSSendRequest request = new SMSSendRequest();
+		request.setMessageContent(smsRequest.getContent());
+		request.setTemplateId(smsRequest.getTemplateId());
+		SmsResult smsResult = saveSendResult(request, list.size());
+		// 遍历
+		for (String phone : list) {
+			DynSMSSendRequest dynSMSSendRequest = new DynSMSSendRequest();
+			dynSMSSendRequest.setTemplateId(smsRequest.getTemplateId());
+			dynSMSSendRequest.setDynData(smsRequest.getParams());
+			// 手机号校验
+			if(validator(phone)) {
+				// 发送邮件短信
+				String dynSendMsg = JSON.toJSONString(SmsUtils.dynSendMethod(dynSMSSendRequest));
+				// 记录保存
+				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 smsSendRequest = new SMSSendRequest();
+				smsSendRequest.setUserNumber(phone);
+				smsSendRequest.setMessageContent(smsRequest.getContent());
+				smsSendRequest.setTemplateId(dynSMSSendRequest.getTemplateId());
+				// 记录发送记录操作
+				saveSendRecord(smsSendRequest, "手机号错误未发送...",null);
+			}
+		}
+		return R.status(true);
+	}
+
+	/**
 	 * 发送登录验证码
 	 * request 必须包含手机号
 	 * @param request
 	 * @return
 	 */
 	@PostMapping("/sendCode")
-	public R test(@RequestBody SMSSendRequest request){
+	public R sendCode(@RequestBody SMSSendRequest request){
 		// 手机号码校验
 		if(validatePhone(request.getUserNumber())) {
 			//设置模板相关信息
@@ -65,7 +143,7 @@
 			request.setMessageContent(content);
 			request.setTemplateId(templateId);
 			// 发送操作
-			String sendMsg = SmsUtils.sendMsg(request);
+			String sendMsg =JSON.toJSONString(SmsUtils.sendMsg(request));
 			JSONObject jsonObject = JSON.parseObject(sendMsg);
 			// 记录发送记录操作
 			SmsResult smsResult = saveSendResult(request, 1);
@@ -135,7 +213,6 @@
 	private void saveSendRecord(SMSSendRequest request, String sendMsg,Long resultId) {
 		// 在保存明细
 		SmsRecord smsRecord = new SmsRecord();
-//		smsRecord.setPhone(request.getUserNumber());
 		smsRecord.setTel(request.getUserNumber());
 		smsRecord.setContent(request.getMessageContent());
 		smsRecord.setTemplateId(request.getTemplateId());
@@ -194,7 +271,7 @@
 			// 手机号校验
 			if(validator(phone)) {
 				// 发送邮件短信
-				String dynSendMsg = SmsUtils.dynSendMethod(dynSMSSendRequest);
+				String dynSendMsg = JSON.toJSONString(SmsUtils.dynSendMethod(dynSMSSendRequest));
 				// 记录保存
 				if (null != smsResult) {
 					SMSSendRequest smsSendRequest = new SMSSendRequest();
@@ -217,4 +294,27 @@
 		}
 		return R.status(true);
 	}
+
+
+
+	/**
+	 * 发送 xx 变量模板短信
+	 * @param smsRequest 发送对象
+	 * @return
+	 */
+	@PostMapping("/sendXXMsg")
+	public R sendXXMsg(@RequestBody SmsRequestTemplate smsRequest){
+		return R.data(smsService.sendXXMsg(smsRequest.getSmsRequest(),smsRequest.getPhoneNumbers()));
+	}
+
+
+	/**
+	 * 发送 具名 变量模板短信
+	 * @param smsRequest 发送对象
+	 * @return
+	 */
+	@PostMapping("/sendSignMsg")
+	public R sendSignMsg(@RequestBody SmsRequestTemplate smsRequest){
+		return R.data(smsService.sendSignMsg(smsRequest.getTitle(),smsRequest.getContent(),smsRequest.getSmsRequest()));
+	}
 }

--
Gitblit v1.9.3