From 08a962d2925baa255207fdf979e6fee794f1773b Mon Sep 17 00:00:00 2001
From: ke <893754509@qq.com>
Date: Fri, 19 Jul 2024 12:25:19 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jtdev' into jtdev
---
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/controller/SmsController.java | 231 +++++++++++++++++++++++++++++++--------------------------
1 files changed, 124 insertions(+), 107 deletions(-)
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 4d0dffe..d2cb092 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
@@ -7,20 +7,33 @@
import cn.com.flaginfo.sdk.cmc.api.sms.send.SMSSendRequest;
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.excel.SendSmsExcel;
+import cn.gistack.alerts.sms.listener.ExcelListener;
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.excel.CallExcel;
import cn.gistack.system.user.entity.User;
import cn.gistack.system.user.feign.IUserClient;
+import com.alibaba.excel.EasyExcel;
+import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.redis.cache.BladeRedis;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
+import java.util.Map;
+import static cn.gistack.alerts.sms.util.SmsUtils.validator;
import static cn.gistack.common.cache.CacheNames.PHONE_KEY;
/**
@@ -45,6 +58,22 @@
saveCodeForRedis("super_admin","123456");
}
+ @GetMapping("/testSms")
+ public ComResult<DynSMSSendDataResult> testSms() {
+ String [][] str = {
+ {"手机号码","日期","小时","分钟","乡镇","水库名称","水库水位值","超过设计洪水位值",
+ "距离或漫过坝顶值及说明","雨量值","姓名联系电话1","姓名联系电话2","姓名联系电话3","姓名联系电话4","姓名联系电话最多6人"},
+ {"18179770967","25","12","50","会昌县","测试水库","10.10","12.12",
+ "距离或漫过坝顶值及说明","10.13","谢斌18179770967","钟日健14212457896","qwe13426007894","asd13685201234","aix18179770967;aix21234567891"},
+ {"15170720695","25","12","50","会昌县","测试水库","10.10","12.12",
+ "距离或漫过坝顶值及说明","10.13","谢斌18179770967","钟日健14212457896","qwe13426007894","asd13685201234","aix18179770967;aix21234567891"},
+ {"15179776420","25","12","50","会昌县","测试水库","10.10","12.12",
+ "距离或漫过坝顶值及说明","10.13","谢斌18179770967","钟日健14212457896","qwe13426007894","asd13685201234","aix18179770967;aix21234567891"}
+ };
+ String tempId = "2431012216677";
+ return smsService.testSend(tempId,str);
+ }
+
/**
* 短信固定内容发送通用方法(仅支持 {xx} 模式的模板)
* request 必须包含手机号,模板id,拼接好的内容
@@ -58,7 +87,7 @@
// 发送操作
ComResult<SMSSendDataResult> resultComResult = SmsUtils.sendMsg(request);
// 记录发送记录操作
- SmsResult smsResult = smsService.saveSendResult(request, 1);
+ SmsResult smsResult = smsService.saveSendResult(null,resultComResult.getCode().toString(),resultComResult.getMsg(),request, 1);
if (null != smsResult){
smsService.saveSendRecord(request, resultComResult.getCode().toString(),resultComResult.getMsg(),smsResult.getId());
}
@@ -67,55 +96,6 @@
}
// 返回发送信息
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 = 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);
}
/**
@@ -137,7 +117,7 @@
// 发送操作
ComResult<SMSSendDataResult> resultComResult = SmsUtils.sendMsg(request);
// 记录发送记录操作
- SmsResult smsResult = smsService.saveSendResult(request, 1);
+ SmsResult smsResult = smsService.saveSendResult(null,resultComResult.getCode().toString(),resultComResult.getMsg(),request, 1);
if (null != smsResult){
smsService.saveSendRecord(request, resultComResult.getCode().toString(),resultComResult.getMsg(),smsResult.getId());
}
@@ -169,24 +149,6 @@
}
/**
- * 校验手机号码
- */
- public static boolean validator(String phone) {
- if (null!=phone && !phone.equals("")) {
- String regex = "^((13[0-9])|(14[5,7,9])|(15([0-3]|[5-9]))|(166)|(17[0,1,3,5,6,7,8])|(18[0-9])|(19[8|9]))\\d{8}$";
- if (phone.length() != 11) {
- return false;
- } else {
- Pattern p = Pattern.compile(regex);
- Matcher m = p.matcher(phone);
- boolean isMatch = m.matches();
- return isMatch;
- }
- }
- return false;
- }
-
- /**
* 保存验证码到 redis
* @param userNumber
* @param randNumber
@@ -196,7 +158,7 @@
}
/**
- * 发送邮件提醒
+ * 发送待办提醒
* @param smsRequest
* @return
*/
@@ -205,40 +167,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);
}
@@ -254,7 +184,7 @@
/**
- * 发送 具名 变量模板短信
+ * 发送 具名 变量模板短信(告警定制)
* @param smsRequest 发送对象
* @return
*/
@@ -262,4 +192,91 @@
public R sendSignMsg(@RequestBody SmsRequestTemplate smsRequest){
return R.data(smsService.sendSignMsg(smsRequest));
}
+
+
+ /**
+ * 发送降雨短信
+ * @param params 发送对象
+ * @return
+ */
+ @PostMapping("/sendSignRainMsg")
+ public R sendSignRainMsg(@RequestBody Map<String,Object> params){
+ return R.data(smsService.sendSignRainMsg(params));
+ }
+
+ /**
+ * 通过手机号获取外呼未接通已发短信通知的人员水库信息
+ * @param callId 呼叫id
+ * @return
+ */
+ @GetMapping("/getCallNotConnectSmsNoticeInfo")
+ public R getCallNotConnectSmsNoticeInfo(String callId){
+ return R.data(smsService.getCallNotConnectSmsNoticeInfo(callId));
+ }
+
+ /**
+ * 导入表格发送降雨短信
+ * @param file excel文件
+ * @param startTime 短信内容填报起始时间
+ * @param endTime 短信内容填报截止时间
+ * @return
+ */
+ @PostMapping("/import-send-rain-sms")
+ public R importSendRainSms(MultipartFile file,String startTime,String endTime){
+ ExcelListener<SendRainSmsExcel> listener = new ExcelListener<>();
+ //headRowNumber(1)从第2行开始读取,使用getDatas()方法取出数据
+ try {
+ EasyExcel.read(file.getInputStream(), SendRainSmsExcel.class, listener).headRowNumber(1).sheet(0).doRead();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ List<SendRainSmsExcel> list = listener.getDatas();
+ // 导入并返回
+ return R.data(smsService.importSendRainSms(list,startTime,endTime));
+ }
+
+ /**
+ * 批量发送短信(集合数据)
+ * @param map (保护参数 1:短信模板id 2:数据集合 list<Map<String,Object>>)
+ * @return
+ */
+ @PostMapping("/batch-send-sms")
+ public R batchSendSms(@RequestBody Map<String,Object> map){
+ // 导入并返回
+ return R.data(smsService.batchSendSms(map));
+ }
+
+
+ /**
+ * 导入表格发送预警短信
+ * @param file excel文件
+ * @param templateId 模板id
+ * @param param 通用参数
+ * @param content 发送内容
+ * @return
+ */
+ @PostMapping("/import-send-sms")
+ public R importSendSms(MultipartFile file,String templateId,String param,String content){
+ ExcelListener<SendSmsExcel> listener = new ExcelListener<>();
+ //headRowNumber(1)从第2行开始读取,使用getDatas()方法取出数据
+ try {
+ EasyExcel.read(file.getInputStream(), SendSmsExcel.class, listener).headRowNumber(1).sheet(0).doRead();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ List<SendSmsExcel> list = listener.getDatas();
+ // 导入并返回
+ return R.data(smsService.importSendSms(list,templateId,param,content));
+ }
+
+
+ /**
+ * 导出模板
+ */
+ @GetMapping("/export-template")
+ @ApiOperation(value = "导出模板")
+ public void exportTemplate(HttpServletResponse response) {
+ List<SendSmsExcel> list = new ArrayList<>();
+ ExcelUtil.export(response, "短信发送数据模板", "短信发送数据表", list, SendSmsExcel.class);
+ }
}
--
Gitblit v1.9.3