From 1dd5d8f8a616f5cf3caa7828d46989c7d3dcafc4 Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Thu, 19 Oct 2023 15:01:43 +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 |  215 +++++++++++++++++++++++++++--------------------------
 1 files changed, 108 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..3aa840d 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;
 
 /**
@@ -58,7 +71,7 @@
 			// 发送操作
 			ComResult<SMSSendDataResult> resultComResult = SmsUtils.sendMsg(request);
 			// 记录发送记录操作
-			SmsResult smsResult = smsService.saveSendResult(request, 1);
+			SmsResult smsResult = smsService.saveSendResult(resultComResult.getCode().toString(),resultComResult.getMsg(),request, 1);
 			if (null != smsResult){
 				smsService.saveSendRecord(request, resultComResult.getCode().toString(),resultComResult.getMsg(),smsResult.getId());
 			}
@@ -67,55 +80,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 +101,7 @@
 			// 发送操作
 			ComResult<SMSSendDataResult> resultComResult = SmsUtils.sendMsg(request);
 			// 记录发送记录操作
-			SmsResult smsResult = smsService.saveSendResult(request, 1);
+			SmsResult smsResult = smsService.saveSendResult(resultComResult.getCode().toString(),resultComResult.getMsg(),request, 1);
 			if (null != smsResult){
 				smsService.saveSendRecord(request, resultComResult.getCode().toString(),resultComResult.getMsg(),smsResult.getId());
 			}
@@ -169,24 +133,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 +142,7 @@
 	}
 
 	/**
-	 * 发送邮件提醒
+	 * 发送待办提醒
 	 * @param smsRequest
 	 * @return
 	 */
@@ -205,40 +151,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 +168,7 @@
 
 
 	/**
-	 * 发送 具名 变量模板短信
+	 * 发送 具名 变量模板短信(告警定制)
 	 * @param smsRequest 发送对象
 	 * @return
 	 */
@@ -262,4 +176,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