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