Explorar el Código

优化拨打电话,发送短信流程

hanzhiwei hace 2 años
padre
commit
1ab04bc454

+ 23 - 59
zd-modules/zd-algorithm/src/main/java/com/zd/alg/alarm/controller/AlarmController.java

@@ -18,6 +18,7 @@ import com.zd.model.domain.per.PerFun;
 import com.zd.model.domain.per.PerPrefix;
 import com.zd.model.page.TableDataInfo;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.scheduling.annotation.Async;
@@ -28,6 +29,7 @@ import java.util.stream.Collectors;
 
 @RestController
 @RequestMapping("/alarm")
+@Slf4j
 public class AlarmController extends BaseController {
 
     @Autowired
@@ -59,65 +61,22 @@ public class AlarmController extends BaseController {
     @Async("msgExecutor")
     public ResultData queryOption(@RequestBody AlarmEntrty alarmEntrty) {
         if (alarmEntrty.getTo() == null || alarmEntrty.getTo().length == 0) {
-            logger.info("打电话发短信电话号码为空!");
+            log.info("打电话发短信电话号码为空!");
             return ResultData.fail("打电话发短信电话号码为空!");
         }
         //处理数据 短信拼装
         String sendType = alarmEntrty.getType();
-        if((SendTypes.All.toString()).equals(sendType) || (SendTypes.Call.toString()).equals(sendType)){
-            //打电话
-            alarmEntrty.setType(SendTypes.Call.toString());
-            sendCall(alarmEntrty);
-        }
         if((SendTypes.All.toString()).equals(sendType) || (SendTypes.SMS.toString()).equals(sendType) ){
             //发短信
             alarmEntrty.setType(SendTypes.SMS.toString());
             sendSMS(alarmEntrty);
         }
+        if((SendTypes.All.toString()).equals(sendType) || (SendTypes.Call.toString()).equals(sendType)){
+            //打电话
+            alarmEntrty.setType(SendTypes.Call.toString());
+            sendCall(alarmEntrty);
+        }
         return ResultData.success("拨打电话发送短信完成!");
-//        Map<String, String> map = alarmUtil.sendPost(alarmEntrty);
-//        String data = map.get("Reply");
-//        if((SendTypes.Call + "").equals(alarmEntrty.getType()) || (SendTypes.All + "").equals(alarmEntrty.getType())){
-//            if("OK".equals(data)) {
-//                String[] phones = alarmEntrty.getTo();
-//                for (String phone : phones) {
-//                    AlarmLog alarmLog = new AlarmLog();
-//                    alarmLog.setKeyId(alarmLog.getKeyId());
-//                    alarmLog.setNickName();
-//                    alarmLog.setRoleName();
-//                    alarmLog.setIsBack(1);
-//                    alarmLog.setPhone(phone);
-//                    alarmLog.setNotice(alarmEntrty.getText());
-//                    alarmLog.setMethod("电话");
-//                    alarmLog.setStatus("成功");
-//                    alarmLog.setCreateTime(DateUtils.getNowDate());
-//                    alarmLog.setUpdateTime(DateUtils.getNowDate());
-//
-//                    alarmLogService.insertAlarmLog(alarmLog);
-//                }
-//                return AjaxResult.success();
-//            }else {
-//                String[] phones = alarmEntrty.getTo();
-//                for (String phone : phones) {
-//                    AlarmLog alarmLog = new AlarmLog();
-//                    alarmLog.setIsBack(1);
-//                    alarmLog.setPhone(phone);
-//                    alarmLog.setNotice(alarmEntrty.getText());
-//                    alarmLog.setMethod("电话");
-//                    alarmLog.setStatus("失败");
-//                    alarmLog.setRemark(data);
-//                    alarmLog.setCreateTime(DateUtils.getNowDate());
-//                    alarmLog.setUpdateTime(DateUtils.getNowDate());
-//
-//                    alarmLogService.insertAlarmLog(alarmLog);
-//                }
-//                return AjaxResult.error(data);
-//            }
-//        }else if((SendTypes.SMS + "").equals(alarmEntrty.getType())) {
-//            if ("OK".equals(data)) {
-//                return AjaxResult.success();
-//            }
-//        }
     }
 
     private void sendCall(AlarmEntrty alarmEntrty) {
@@ -142,7 +101,7 @@ public class AlarmController extends BaseController {
                 alarmLog.setKeyId(alarmEntrty.getLogId());
                 alarmLogService.insertAlarmLog(alarmLog);
             }
-            logger.info("电话预警通知用户成功!===>>>{}", JSON.toJSONString(alarmEntrty.getTo()));
+            log.info("电话预警通知用户成功!===>>>{}", JSON.toJSONString(alarmEntrty.getTo()));
         }else {
             String[] phones = alarmEntrty.getTo();
             for (String phone : phones) {
@@ -162,24 +121,29 @@ public class AlarmController extends BaseController {
                 alarmLog.setKeyId(alarmEntrty.getLogId());
                 alarmLogService.insertAlarmLog(alarmLog);
             }
-            logger.info("电话预警通知用户失败!===>>>{}", JSON.toJSONString(alarmEntrty.getTo()));
+            log.info("电话预警通知用户失败!===>>>{}", JSON.toJSONString(alarmEntrty.getTo()));
         }
     }
 
     private void sendSMS(AlarmEntrty alarmEntrty) {
         List<UserPhoneInfo> userPhoneInfoList = alarmEntrty.getUserPhoneInfo();
         LinkedHashMap<String, List<UserPhoneInfo>> userPhoneInfoMap = Optional.ofNullable(userPhoneInfoList).orElseGet(Collections::emptyList).stream().collect(Collectors.groupingBy(UserPhoneInfo::getPhone, LinkedHashMap::new, Collectors.toList()));
-        String text = alarmEntrty.getText() + smsRedirect;
+        StringBuffer textURL = new StringBuffer();
+        textURL.append(alarmEntrty.getText());
         for (String phone : alarmEntrty.getTo()) {
-            ResultData urlScheme = remoteMessageService.getUrlScheme(alarmEntrty.getLogId());
-            if (urlScheme.getCode() != HttpStatus.SUCCESS) {
-                logger.error("获取urlScheme失败!");
+            try {
+                ResultData urlScheme = remoteMessageService.getUrlScheme(alarmEntrty.getLogId());
+                if (urlScheme.getCode() == HttpStatus.SUCCESS) {
+                    textURL.append(smsRedirect).append("?id=").append(alarmEntrty.getLogId()).append("&urlScheme=").append(urlScheme.getData());
+                }else {
+                    log.error("获取urlScheme失败!");
+                }
+            } catch (Exception e) {
+                log.error("获取urlScheme异常!请检查配置(nacos链接配置,小程序参数配置)!");
             }
-            String newTest = "";
-            newTest = text + "?id=" + alarmEntrty.getLogId() + "&urlScheme=" + urlScheme.getData();
-            alarmEntrty.setText(newTest);
+            alarmEntrty.setText(textURL.toString());
             alarmEntrty.setTo(new String[]{phone});
-            logger.info("发送给用户===>>>{},短信内容===>>>{}",phone,newTest);
+            log.info("发送给用户===>>>{},短信内容===>>>{}",phone,textURL);
             //发送短信
             Map map = alarmUtil.sendPost(alarmEntrty);
             String data = (String) map.get("Reply");

+ 6 - 1
zd-modules/zd-base/src/main/java/com/zd/base/message/controller/WechatMsgController.java

@@ -2,6 +2,7 @@ package com.zd.base.message.controller;
 
 import com.zd.base.message.service.IWechatMsgSendService;
 import com.zd.common.core.template.TemplateResult;
+import com.zd.common.core.utils.StringUtils;
 import com.zd.model.domain.R;
 import com.zd.model.domain.ResultData;
 import io.swagger.annotations.Api;
@@ -139,6 +140,10 @@ public class WechatMsgController {
     @ApiOperation(value = "获取UrlScheme")
     @ApiImplicitParam(name = "id",value = "传入id",required = false)
     public ResultData getUrlScheme(@RequestParam(value = "id",required = false)  Long id) {
-        return ResultData.success(sendService.getUrlScheme(id));
+        String urlScheme = sendService.getUrlScheme(id);
+        if(StringUtils.isNotBlank(urlScheme)){
+            return ResultData.success(urlScheme);
+        }
+        return ResultData.fail();
     }
 }

+ 20 - 13
zd-modules/zd-base/src/main/java/com/zd/base/message/service/impl/WechatMsgSendServiceImpl.java

@@ -288,25 +288,32 @@ public class WechatMsgSendServiceImpl implements IWechatMsgSendService {
      **/
     public String getUrlScheme(Long id) {
         String accessToken = getAccessToken();
-        log.info("获取的token = {}",accessToken);
-        String url = weChatProperties.getUrlScheme()+accessToken;
+        if (StringUtils.isBlank(accessToken)) {
+            log.error("获取token失败!accessToken = {}", accessToken);
+            return "";
+        }
+        String url = weChatProperties.getUrlScheme() + accessToken;
         JSONObject body = new JSONObject();
         JSONObject jumpWxa = new JSONObject();
-        jumpWxa.put("path","/pages/earlyWarningManage/earlyWarningDetail");
-        jumpWxa.put("query","id="+id);
+        jumpWxa.put("path", "/pages/earlyWarningManage/earlyWarningDetail");
+        jumpWxa.put("query", "id=" + id);
         body.put("jump_wxa", jumpWxa);
         body.put("expire_type", "1");
         body.put("expire_interval", "30");
-        log.info("获取UrlScheme url===>>>{}",url);
-        log.info("请求参数===>>>{}",JSON.toJSONString(body));
-        String respData = HttpUtil.post(url,JSON.toJSONString(body));
-        log.info("UrlScheme 返回参数===>>>{}", respData);
-        JSONObject json = JSON.parseObject(respData);
-        if (json.getInteger("errcode") == 0) {
-            String openlink = json.getString("openlink");
-            return openlink;
+        log.info("获取UrlScheme url===>>>{}", url);
+        log.info("请求参数===>>>{}", JSON.toJSONString(body));
+        try {
+            String respData = HttpUtil.post(url, JSON.toJSONString(body));
+            log.info("UrlScheme 返回参数===>>>{}", respData);
+            JSONObject json = JSON.parseObject(respData);
+            if (json.getInteger("errcode") == 0) {
+                String openlink = json.getString("openlink");
+                return openlink;
+            }
+        } catch (Exception e) {
+            log.error("获取UrlScheme异常!==>>{}",e);
+            return "";
         }
-        log.info("生成openlink失败!");
         return "";
     }
 }

+ 0 - 4
zd-modules/zd-chemical/src/main/java/com/zd/chemical/service/impl/HxpStockServiceImpl.java

@@ -921,10 +921,6 @@ public class HxpStockServiceImpl implements IHxpStockService {
                 logger.info("即将过期保存日志成功!");
             }
             Long logId = (Long) result.getData();
-            ResultData urlScheme = remoteMessageService.getUrlScheme(Long.valueOf(String.valueOf(result.getData())));
-            if (urlScheme.getCode() != HttpStatus.SUCCESS) {
-                logger.error("获取urlScheme失败!");
-            }
             String text = "【实验室安全系统】" + warningNoticeLogDto.getSubName() + "-" + warningNoticeLogDto.getName() + "即将过期,发生时间:" + LocalDateTimeUtil.format(LocalDateTime.now(), "yyyy-MM-dd HH:mm:ss") + ",请尽快确认。";
             //发送通知
             sendNotice(hxpStock, userIdStr, phones, warningConfigDto.getUnexpired(),text,logId);

+ 1 - 6
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabMessageContentServiceImpl.java

@@ -120,7 +120,7 @@ public class LabMessageContentServiceImpl implements ILabMessageContentService {
 
     private final String smsFormat = "{}: {},发生风险预案,{}";
     private final String smsFormatString = "【实验室安全智能】{}发生{}{}";
-    private final String smsFormatString2 = "【实验室安全系统】{}-{}数值异常,请立即核实处理";
+    private final String smsFormatString2 = "【实验室安全系统】{}-{}数值异常,请立即核实处理";
 
     /**
      * 查询消息发布
@@ -278,11 +278,6 @@ public class LabMessageContentServiceImpl implements ILabMessageContentService {
         }
         warningNoticeLog.setIndoorUser(internalPerson);
         Long logId = warningNoticeLogService.addWarningNoticeLog(warningNoticeLog);
-        ResultData urlScheme = remoteMessageService.getUrlScheme(logId);
-        if (urlScheme.getCode() != HttpStatus.SUCCESS) {
-            logger.error("获取urlScheme失败!");
-        }
-
         String format = StrUtil.format(smsFormatString2, labRiskPlanLevel.getTopName(), labRiskPlanLevel.getRiskName());
         logger.info("new format = {}",format);
         //获取人员电话信息