From 1581ef5a1b4e24ecf21fd95ee6e4b9bd4085b2da Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Fri, 30 Jun 2023 17:48:26 +0800
Subject: [PATCH] 短信发送记录保存修改
---
skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/vo/SmsResponseVO.java | 24 ++++++
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/feign/SmsRecordClient.java | 6 +
skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/entity/SmsResult.java | 10 ++
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/controller/SmsController.java | 96 ++---------------------
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/SmsService.java | 13 +++
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java | 50 ++++++++++--
6 files changed, 103 insertions(+), 96 deletions(-)
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/entity/SmsResult.java b/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/entity/SmsResult.java
index 842de9a..8081f28 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/entity/SmsResult.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/entity/SmsResult.java
@@ -35,4 +35,14 @@
@ApiModelProperty(value = "消息内容")
private String content;
+ /**
+ * 响应状态码
+ */
+ private String resCode;
+
+ /**
+ * 响应消息
+ */
+ private String resMsg;
+
}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/vo/SmsResponseVO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/vo/SmsResponseVO.java
new file mode 100644
index 0000000..0821c90
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/vo/SmsResponseVO.java
@@ -0,0 +1,24 @@
+package cn.gistack.alerts.sms.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 响应类
+ * @author zhongrj
+ * @date 2023-06-30
+ */
+@Data
+public class SmsResponseVO implements Serializable {
+
+ /**
+ * 响应状态码
+ */
+ private String code;
+
+ /**
+ * 响应消息
+ */
+ private String msg;
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/controller/SmsController.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/controller/SmsController.java
index a1032b1..d0b010b 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/controller/SmsController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/controller/SmsController.java
@@ -12,6 +12,7 @@
import cn.gistack.alerts.sms.service.SmsService;
import cn.gistack.alerts.sms.util.SmsUtils;
import cn.gistack.alerts.sms.vo.SmsRequestTemplate;
+import cn.gistack.alerts.sms.vo.SmsResponseVO;
import cn.gistack.system.user.entity.User;
import cn.gistack.system.user.feign.IUserClient;
import com.alibaba.excel.EasyExcel;
@@ -62,8 +63,11 @@
if(validatePhone(request.getUserNumber())) {
// 发送操作
ComResult<SMSSendDataResult> resultComResult = SmsUtils.sendMsg(request);
+ SmsResponseVO smsResponse = new SmsResponseVO();
+ smsResponse.setCode(resultComResult.getCode().toString());
+ smsResponse.setMsg(resultComResult.getMsg());
// 记录发送记录操作
- SmsResult smsResult = smsService.saveSendResult(request, 1);
+ SmsResult smsResult = smsService.saveSendResult(smsResponse,request, 1);
if (null != smsResult){
smsService.saveSendRecord(request, resultComResult.getCode().toString(),resultComResult.getMsg(),smsResult.getId());
}
@@ -72,55 +76,6 @@
}
// 返回发送信息
return R.fail(400,"该手机号不存在!");
- }
-
-
- /**
- * 短信动态内容发送通用方法(仅支持 具名变量 {手机号码:11} 模式的模板)
- * request
- * @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 = smsService.saveSendResult(request, list.size());
- // 遍历
- for (String phone : list) {
- DynSMSSendRequest dynSMSSendRequest = new DynSMSSendRequest();
- dynSMSSendRequest.setTemplateId(smsRequest.getTemplateId());
- dynSMSSendRequest.setDynData(smsRequest.getParams());
- // 手机号校验
- if(validator(phone)) {
- // 发送邮件短信
- ComResult<DynSMSSendDataResult> resultComResult = SmsUtils.dynSendMethod(dynSMSSendRequest);
- // 记录保存
- if (null != smsResult) {
- SMSSendRequest smsSendRequest = new SMSSendRequest();
- smsSendRequest.setUserNumber(phone);
- smsSendRequest.setMessageContent(smsRequest.getContent());
- smsSendRequest.setTemplateId(dynSMSSendRequest.getTemplateId());
- // 记录发送记录操作
- smsService.saveSendRecord(smsSendRequest, resultComResult.getCode().toString(),resultComResult.getMsg(),smsResult.getId());
- }
- }else {
- // 手机号有误记录
- // 记录保存
- SMSSendRequest smsSendRequest = new SMSSendRequest();
- smsSendRequest.setUserNumber(phone);
- smsSendRequest.setMessageContent(smsRequest.getContent());
- smsSendRequest.setTemplateId(dynSMSSendRequest.getTemplateId());
- // 记录发送记录操作
- smsService.saveSendRecord(smsSendRequest, "400","手机号错误未发送...",null);
- }
- }
- return R.status(true);
}
/**
@@ -141,8 +96,11 @@
request.setTemplateId(templateId);
// 发送操作
ComResult<SMSSendDataResult> resultComResult = SmsUtils.sendMsg(request);
+ SmsResponseVO smsResponse = new SmsResponseVO();
+ smsResponse.setCode(resultComResult.getCode().toString());
+ smsResponse.setMsg(resultComResult.getMsg());
// 记录发送记录操作
- SmsResult smsResult = smsService.saveSendResult(request, 1);
+ SmsResult smsResult = smsService.saveSendResult(smsResponse,request, 1);
if (null != smsResult){
smsService.saveSendRecord(request, resultComResult.getCode().toString(),resultComResult.getMsg(),smsResult.getId());
}
@@ -192,40 +150,8 @@
// 处理数据(可能是多个手机号情况)
List<String> list = Arrays.asList(smsRequest.getPhone().split(","));
// 保存发送结果
- // 记录保存
- SMSSendRequest request = new SMSSendRequest();
- request.setMessageContent(smsRequest.getContent());
- request.setTemplateId("2431012165299");
- SmsResult smsResult = smsService.saveSendResult(request, list.size());
- // 遍历
- for (String phone : list) {
- DynSMSSendRequest dynSMSSendRequest = new DynSMSSendRequest();
- dynSMSSendRequest.setTemplateId("2431012165299");
- dynSMSSendRequest.setDynData(new String[][]{{"手机号码", "标题"}, {phone, smsRequest.getContent()}});
- // 手机号校验
- if(validator(phone)) {
- // 发送邮件短信
- ComResult<DynSMSSendDataResult> resultComResult = SmsUtils.dynSendMethod(dynSMSSendRequest);
- // 记录保存
- if (null != smsResult) {
- SMSSendRequest smsSendRequest = new SMSSendRequest();
- smsSendRequest.setUserNumber(phone);
- smsSendRequest.setMessageContent(smsRequest.getContent());
- smsSendRequest.setTemplateId(dynSMSSendRequest.getTemplateId());
- // 记录发送记录操作
- smsService.saveSendRecord(smsSendRequest, resultComResult.getCode().toString(),resultComResult.getMsg(),smsResult.getId());
- }
- }else {
- // 手机号有误记录
- // 记录保存
- SMSSendRequest smsSendRequest = new SMSSendRequest();
- smsSendRequest.setUserNumber(phone);
- smsSendRequest.setMessageContent(smsRequest.getContent());
- smsSendRequest.setTemplateId(dynSMSSendRequest.getTemplateId());
- // 记录发送记录操作
- smsService.saveSendRecord(smsSendRequest, "400","手机号错误未发送...",null);
- }
- }
+ smsService.sendEmailMsg(list,smsRequest);
+ // 返回
return R.status(true);
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/feign/SmsRecordClient.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/feign/SmsRecordClient.java
index 72de900..8d5cd68 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/feign/SmsRecordClient.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/feign/SmsRecordClient.java
@@ -3,6 +3,7 @@
import cn.com.flaginfo.sdk.cmc.api.sms.send.SMSSendRequest;
import cn.gistack.alerts.sms.entity.SmsResult;
import cn.gistack.alerts.sms.service.SmsService;
+import cn.gistack.alerts.sms.vo.SmsResponseVO;
import lombok.AllArgsConstructor;
import org.springblade.core.tenant.annotation.NonDS;
import org.springframework.web.bind.annotation.GetMapping;
@@ -43,8 +44,11 @@
request.setUserNumber(userNumber);
request.setTemplateId(templateId);
request.setMessageContent(messageContent);
+ SmsResponseVO smsResponse = new SmsResponseVO();
+ smsResponse.setCode(code);
+ smsResponse.setMsg(msg);
// 记录发送记录操作
- SmsResult smsResult = smsService.saveSendResult(request, number);
+ SmsResult smsResult = smsService.saveSendResult(smsResponse,request, number);
if (null != smsResult){
smsService.saveSendRecord(request, code,msg,smsResult.getId());
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/SmsService.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/SmsService.java
index e72c05c..7590e20 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/SmsService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/SmsService.java
@@ -1,10 +1,14 @@
package cn.gistack.alerts.sms.service;
+import cn.com.flaginfo.sdk.cmc.api.result.ComResult;
+import cn.com.flaginfo.sdk.cmc.api.sms.dynsend.DynSMSSendDataResult;
import cn.com.flaginfo.sdk.cmc.api.sms.send.SMSSendRequest;
import cn.gistack.alerts.sms.entity.SmsRecord;
+import cn.gistack.alerts.sms.entity.SmsRequest;
import cn.gistack.alerts.sms.entity.SmsResult;
import cn.gistack.alerts.sms.excel.SendRainSmsExcel;
import cn.gistack.alerts.sms.vo.SmsRequestTemplate;
+import cn.gistack.alerts.sms.vo.SmsResponseVO;
import java.util.List;
import java.util.Map;
@@ -34,11 +38,12 @@
/**
* 保存短信发送结果
+ * @param smsResponse
* @param request
* @param number
* @return
*/
- SmsResult saveSendResult(SMSSendRequest request, Integer number);
+ SmsResult saveSendResult(SmsResponseVO smsResponse, SMSSendRequest request, Integer number);
/**
* 短信发送记录保存
@@ -87,4 +92,10 @@
* @return
*/
Object importSendRainSms(List<SendRainSmsExcel> list,String startTime,String endTime);
+
+ /**
+ * 发送邮件提醒短信
+ * @param list
+ */
+ void sendEmailMsg(List<String> list, SmsRequest smsRequest);
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java
index d4a6495..ba2fd5b 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java
@@ -10,6 +10,7 @@
import cn.gistack.alerts.notice.util.FormatUtil;
import cn.gistack.alerts.sms.constant.MinConstant;
import cn.gistack.alerts.sms.entity.SmsRecord;
+import cn.gistack.alerts.sms.entity.SmsRequest;
import cn.gistack.alerts.sms.entity.SmsResult;
import cn.gistack.alerts.sms.entity.SmsTemplate;
import cn.gistack.alerts.sms.excel.SendRainSmsExcel;
@@ -19,6 +20,7 @@
import cn.gistack.alerts.sms.service.SmsService;
import cn.gistack.alerts.sms.util.SmsUtils;
import cn.gistack.alerts.sms.vo.SmsRequestTemplate;
+import cn.gistack.alerts.sms.vo.SmsResponseVO;
import cn.gistack.sm.intelligentCall.entity.CallNotFillRecord;
import cn.gistack.sm.intelligentCall.feign.OutCallClient;
import cn.gistack.sm.sjztmd.feign.IAttResManagePersonClient;
@@ -81,7 +83,7 @@
List<ComResult<SMSSendDataResult>> list = new ArrayList<>();
if (phoneNumbers.size()>0){
// 先保存结果记录
- SmsResult smsResult = saveSendResult(request, phoneNumbers.size());
+ SmsResult smsResult = saveSendResult(null,request, phoneNumbers.size());
// 遍历发送
for (String phone : phoneNumbers) {
request.setUserNumber(phone);
@@ -110,7 +112,7 @@
request.setTemplateId(smsTemplate.getTemplateId());
List<List<String>> templateContent = smsRequestTemplate.getTemplateContent();
// 先保存结果记录
- SmsResult smsResult = saveSendResult(request, templateContent.size());
+ SmsResult smsResult = saveSendResult(null,request, templateContent.size());
List<SmsRecord> smsRecordList = new ArrayList<>();
// 遍历处理
for (List<String> list : templateContent) {
@@ -174,7 +176,7 @@
request.setTemplateId(smsTemplate.getTemplateId());
List<List<String>> templateContent = smsRequestTemplate.getTemplateContent();
// 先保存结果记录
- SmsResult smsResult = saveSendResult(request, templateContent.size());
+ SmsResult smsResult = saveSendResult(null,request, templateContent.size());
List<SmsRecord> smsRecordList = new ArrayList<>();
// 遍历处理
for (List<String> list : templateContent) {
@@ -261,16 +263,21 @@
/**
* 发送记录保存
+ * @param smsResponse 响应消息
* @param request 发送信息
* @param number 号码个数
*/
@Override
- public SmsResult saveSendResult(SMSSendRequest request,Integer number) {
+ public SmsResult saveSendResult(SmsResponseVO smsResponse, SMSSendRequest request, Integer number) {
// 先保存结果表
SmsResult smsResult = new SmsResult();
smsResult.setTemplateId(request.getTemplateId());
smsResult.setContent(request.getMessageContent());
smsResult.setNumber(number);
+ if (null!= smsResponse) {
+ smsResult.setResCode(smsResponse.getCode());
+ smsResult.setResMsg(smsResponse.getMsg());
+ }
//插入记录
boolean save = smsResultService.save(smsResult);
if (save){
@@ -354,7 +361,10 @@
dyns[rowNum++] = cols;
}
ComResult<DynSMSSendDataResult> resultComResult = sendDynSMSSendDataResultComResult(templateId, dyns);
- SmsResult smsResult = getSaveSmsResult(templateId, rows, "");
+ SmsResponseVO smsResponse = new SmsResponseVO();
+ smsResponse.setCode(resultComResult.getCode().toString());
+ smsResponse.setMsg(resultComResult.getMsg());
+ SmsResult smsResult = getSaveSmsResult(smsResponse,templateId, rows, "");
if (null != smsResult) {
List<SmsRecord> smsRecordList = new ArrayList<>();
Pattern compile = Pattern.compile("[^0-9]");
@@ -386,18 +396,19 @@
/**
* 保存短信发送结果
+ * @param smsResponse
* @param templateId
* @param rows
* @param content
* @return
*/
- private SmsResult getSaveSmsResult(String templateId, String[] rows, String content) {
+ private SmsResult getSaveSmsResult(SmsResponseVO smsResponse,String templateId, String[] rows, String content) {
SMSSendRequest request = new SMSSendRequest();
request.setTemplateId(templateId);
request.setMessageContent(content);
request.setUserNumber("");
// 先保存结果记录
- return saveSendResult(request, rows.length);
+ return saveSendResult(smsResponse,request, rows.length);
}
/**
@@ -563,7 +574,10 @@
}
//请求参数
ComResult<DynSMSSendDataResult> resultComResult = sendDynSMSSendDataResultComResult(smsTemplate.getTemplateId(), dyns);
- SmsResult smsResult = getSaveSmsResult(smsTemplate.getTemplateId(), rows, "");
+ SmsResponseVO smsResponse = new SmsResponseVO();
+ smsResponse.setCode(resultComResult.getCode().toString());
+ smsResponse.setMsg(resultComResult.getMsg());
+ SmsResult smsResult = getSaveSmsResult(smsResponse,smsTemplate.getTemplateId(), rows, "");
// 异步记录发送记录
asyncService.batchSaveSendRecord(smsResult,rows,smsTemplate,resultComResult);
// 返回
@@ -572,5 +586,23 @@
return map;
}
-
+ /**
+ * 发送邮件提醒短信
+ * @param list
+ */
+ @Override
+ public void sendEmailMsg(List<String> list, SmsRequest smsRequest) {
+ String templateId = "2431012165299";
+ // 获取水库个数
+ List<String> errPhones = new ArrayList<>();
+ // 去重
+ Set<String> hashSet = new HashSet<>(list);
+ // 查询短信模板
+ SmsTemplate smsTemplate = smsTemplateService.getOne(new QueryWrapper<SmsTemplate>().eq("template_id", templateId));
+ String param = smsRequest.getContent();
+ // 拼接短信标题数组
+ String [] titleArr = getSmsTitleArr(smsTemplate);
+ // 批量发送短信
+ Map<String, Object> batchSendSmsMap = batchSendSms(hashSet, titleArr, param, smsTemplate,errPhones);
+ }
}
--
Gitblit v1.9.3