From b33010bfb1a4d61f33eb91bf5bee0dd76a289b7c Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Wed, 23 Aug 2023 16:33:21 +0800
Subject: [PATCH] 智能外呼任务创建失败新增短信告警
---
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java | 3 +
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/feign/SmsRecordClient.java | 26 +++++++++++++
skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/feign/ISmsRecordClient.java | 8 ++++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/AsyncCallService.java | 16 ++++++++
skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/feign/ISmsRecordClientFallback.java | 5 ++
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java | 26 ++++++++----
6 files changed, 75 insertions(+), 9 deletions(-)
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/feign/ISmsRecordClient.java b/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/feign/ISmsRecordClient.java
index 4fb47c1..cec0bdd 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/feign/ISmsRecordClient.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/feign/ISmsRecordClient.java
@@ -17,6 +17,7 @@
String API_PREFIX = "/client";
String SAVE_SMS_RECORD = API_PREFIX + "/saveSmsRecord";
String SEND_SMS_BY_OUT_CALL_NOT_CONNECT = API_PREFIX + "/sendSmsByOutCallNotConnect";
+ String CREATE_OUT_CALL_ERROR_SEND_SMS = API_PREFIX + "/createOutCallErrorSendSms";
/**
* 保存短信发送记录
@@ -44,4 +45,11 @@
@GetMapping(SEND_SMS_BY_OUT_CALL_NOT_CONNECT)
String sendSmsByOutCallNotConnect(@RequestParam("taskId")String taskId,
@RequestParam("time")String time);
+
+ /**
+ * 外呼任务创建失败发送短信提醒
+ * @param msg 失败原因
+ */
+ @GetMapping(CREATE_OUT_CALL_ERROR_SEND_SMS)
+ void createOutCallErrorSendSms(@RequestParam("msg") String msg);
}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/feign/ISmsRecordClientFallback.java b/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/feign/ISmsRecordClientFallback.java
index ca65715..1a67bde 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/feign/ISmsRecordClientFallback.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/feign/ISmsRecordClientFallback.java
@@ -22,4 +22,9 @@
public String sendSmsByOutCallNotConnect(String taskId, String time) {
return null;
}
+
+ @Override
+ public void createOutCallErrorSendSms(String msg) {
+
+ }
}
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 d32e83c..775fcb5 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
@@ -10,6 +10,11 @@
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
/**
* 短信发送记录
* @author zhongrj
@@ -62,4 +67,25 @@
public String sendSmsByOutCallNotConnect(String taskId,String time) {
return smsService.sendSmsByOutCallNotConnect(taskId,time);
}
+
+ /**
+ * 外呼任务创建失败发送短信提醒
+ * @param msg 失败原因
+ */
+ @Override
+ @GetMapping(CREATE_OUT_CALL_ERROR_SEND_SMS)
+ public void createOutCallErrorSendSms(String msg) {
+ // 创建map 集合
+ Map<String, Object> map = new HashMap<>(3);
+ // 查询需要告警的人员手机号
+ List<String> list = new ArrayList<>();
+ list.add("15170720695");
+ list.add("15179776420");
+ //封装数据
+ map.put("templateId","2431012254505");
+ map.put("phones",list);
+ map.put("content",msg);
+ // 发送短信
+ smsService.batchSendSms(map);
+ }
}
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 a36b5da..deacf38 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
@@ -694,7 +694,7 @@
}
/**
- * 批量发送动态短信
+ * 批量发送动态短信--该方法只适合除手机号外只有一个动态参数并且是内容一致的情况
* @param phoneList
* @param titleArr 示例: [手机号码,水库名称,水位值]
* @param param 示例: ***水库,15.12
@@ -857,13 +857,21 @@
public Object batchSendSms(Map<String, Object> map) {
// 获取模板id
String templateId = map.get("templateId").toString();
- // 获取集合数据
- List<Map<String,Object>> list = (List<Map<String,Object>>) map.get("list");
- List<String> columnList = (List<String>) map.get("columnList");
- // 遍历
- for (Map<String, Object> param : list) {
- // 放入集合数据
- }
- return null;
+ // 获取手机号集合
+ List<String> list = (List<String>) map.get("phones");
+ // 获取发送的动态内容(msg)
+ String param = (String) map.get("content");
+ // 创建错误手机号集合
+ List<String> errPhones = new ArrayList<>();
+ // 去重
+ Set<String> hashSet = new HashSet<>(list);
+ // 查询短信模板
+ SmsTemplate smsTemplate = smsTemplateService.getOne(new QueryWrapper<SmsTemplate>().eq("template_id", templateId));
+ // 拼接短信标题数组
+ String [] titleArr = getSmsTitleArr(smsTemplate);
+ // 批量发送短信
+ Map<String, Object> batchSendSmsMap = batchSendSms(hashSet, titleArr, param, smsTemplate,errPhones);
+ // 返回
+ return batchSendSmsMap;
}
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/AsyncCallService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/AsyncCallService.java
index 4debcb8..22dc5e1 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/AsyncCallService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/AsyncCallService.java
@@ -1,5 +1,6 @@
package cn.gistack.sm.intelligentCall.service.impl;
+import cn.gistack.alerts.sms.feign.ISmsRecordClient;
import cn.gistack.sm.intelligentCall.entity.DailyCallTask;
import cn.gistack.sm.intelligentCall.service.IDailyCallTaskService;
import org.springblade.core.secure.utils.AuthUtil;
@@ -14,6 +15,9 @@
@Autowired
private IDailyCallTaskService dailyCallTaskService;
+
+ @Autowired
+ private ISmsRecordClient smsRecordClient;
/**
@@ -31,4 +35,16 @@
// 新增
dailyCallTaskService.save(dailyCallTask);
}
+
+ /**
+ * 外呼任务创建失败发送短信提醒
+ * @param code 错误码
+ * @param msg 失败原因
+ */
+ @Async
+ public void createOutCallErrorSendSms(String code,String msg) {
+ String data = msg;
+ // 新增
+ smsRecordClient.createOutCallErrorSendSms(data);
+ }
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java
index 64f3236..6d511b0 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java
@@ -144,6 +144,9 @@
if (success){
//通过任务名称查询taskId
taskId = callTaskMapper.getTaskIdByTaskName(taskName);
+ }else {
+ // 任务创建失败,发送短信告知
+ asyncCallService.createOutCallErrorSendSms(jsonObject.getString("code"),jsonObject.getString("message"));
}
List<String> list = new ArrayList<>();
list.add(response.getBody());
--
Gitblit v1.9.3