From b1c4044b3f64b763dd646214933ec22dbd91f199 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Wed, 24 May 2023 18:01:48 +0800
Subject: [PATCH] 新增短信发送通用模板接口,短信模板新增模板类型字段

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/controller/SmsController.java |   76 +++++++++++++++++++++++++++++++++++++
 1 files changed, 75 insertions(+), 1 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..53daeb9 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
@@ -49,13 +49,87 @@
 	}
 
 	/**
+	 * 短信固定内容发送通用方法(仅支持 {xx} 模式的模板)
+	 * request 必须包含手机号,模板id,拼接好的内容
+	 * @param request
+	 * @return
+	 */
+	@PostMapping("/sendFixedContentByXXModel")
+	public R sendFixedContentByXXModel(@RequestBody SMSSendRequest request){
+		// 手机号码校验
+		if(validatePhone(request.getUserNumber())) {
+			// 发送操作
+			String sendMsg = 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 = 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())) {
 			//设置模板相关信息

--
Gitblit v1.9.3