zhongrj
2023-06-05 29358cfe9b8da07f852c69a57f5d8fedcbbf116e
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java
@@ -56,7 +56,7 @@
            ComResult<SMSSendDataResult> result = SmsUtils.sendMsg(request);
            if(null != smsResult) {
               // 保存记录
               saveSendRecord(request, result.getCode(), result.getMsg(), smsResult.getId());
               saveSendRecord(request, result.getCode().toString(), result.getMsg(), smsResult.getId());
            }
            list.add(result);
         }
@@ -115,7 +115,7 @@
            // 设置内容
            request.setMessageContent(format);
            // 保存记录
            smsRecord = saveSendRecord(request, resultComResult.getCode(), resultComResult.getMsg(), smsResult.getId());
            smsRecord = saveSendRecord(request, resultComResult.getCode().toString(), resultComResult.getMsg(), smsResult.getId());
            if (null != smsRecord){
               alarmRecordDetail.setAlarmContent(format);
               alarmRecordDetail.setSendRecordId(smsRecord.getId());
@@ -133,6 +133,65 @@
      return map;
   }
   /**
    * 保存站内信记录信息
    * @param smsRequestTemplate
    * @return
    */
   @Override
   public Map<String, Object> saveInStationInfo(SmsRequestTemplate smsRequestTemplate) {
      // 取出数据
      SMSSendRequest request = new SMSSendRequest();
      SmsTemplate smsTemplate = smsRequestTemplate.getSmsTemplate();
      request.setTemplateId(smsTemplate.getTemplateId());
      List<List<String>> templateContent = smsRequestTemplate.getTemplateContent();
      // 先保存结果记录
      SmsResult smsResult = saveSendResult(request, templateContent.size());
      List<SmsRecord> smsRecordList = new ArrayList<>();
      // 遍历处理
      for (List<String> list : templateContent) {
         AlarmRecordDetail alarmRecordDetail = new AlarmRecordDetail();
         alarmRecordDetail.setReservoirNumber(list.get(0));
         alarmRecordDetail.setAlarmRecordId(Long.parseLong(list.get(list.size() - 1)));
         alarmRecordDetail.setAlarmMode("站内信");
         // 未读
         alarmRecordDetail.setStatus(1);
         // 删除 最后一个 告警记录id
         list.remove(list.size() - 1);
         // 删除 0 水库编码
         list.remove(0);
         SmsRecord smsRecord = new SmsRecord();
         if (null != smsResult){
            alarmRecordDetail.setPhone(list.get(0));
            // 设置手机号
            request.setUserNumber(list.get(0));
            // 内容处理
            String s = smsTemplate.getContent().replaceAll("\\{.+?\\}", "%s");
            // 需要删除最前面的手机号
            list.remove(0);
            // 格式转换
            String format = String.format(s, list.toArray());
            // 设置内容
            request.setMessageContent(format);
            // 保存记录
            smsRecord = saveSendRecord(request, "", "", smsResult.getId());
            if (null != smsRecord){
               alarmRecordDetail.setAlarmContent(format);
               alarmRecordDetail.setSendRecordId(smsRecord.getId());
               alarmRecordDetail.setCreateTime(new Date());
               // 保存告警记录详情信息
               boolean save = alarmRecordDetailService.save(alarmRecordDetail);
            }
         }
         smsRecordList.add(smsRecord);
      }
      Map<String, Object> map = new HashMap<>(2);
      map.put("smsRecord",smsRecordList);
      map.put("smsResult",smsResult);
      // 返回
      return map;
   }
   /**
    * 发送 具名 变量模板短信--批量一次发送
@@ -160,7 +219,7 @@
      SmsRecord smsRecord = new SmsRecord();
      if (null != smsResult){
         // 保存记录
         smsRecord = saveSendRecord(request, resultComResult.getCode(), resultComResult.getMsg(), smsResult.getId());
         smsRecord = saveSendRecord(request, resultComResult.getCode().toString(), resultComResult.getMsg(), smsResult.getId());
      }
      Map<String, Object> map = new HashMap<>(2);
      map.put("smsRecord",smsRecord);
@@ -200,18 +259,20 @@
    * @param resultId
    */
   @Override
   public SmsRecord saveSendRecord(SMSSendRequest request, Integer code, String sendMsg, Long resultId) {
   public SmsRecord saveSendRecord(SMSSendRequest request, String code, String sendMsg, Long resultId) {
      // 在保存明细
      SmsRecord smsRecord = new SmsRecord();
      smsRecord.setTel(request.getUserNumber());
      smsRecord.setContent(request.getMessageContent());
      smsRecord.setTemplateId(request.getTemplateId());
      smsRecord.setResultId(resultId);
      smsRecord.setResponseStatus(code.toString());
      smsRecord.setResponseStatus(code);
      smsRecord.setResponseMsg(sendMsg);
      //插入记录
      smsRecordService.save(smsRecord);
      // 返回
      return smsRecord;
   }
}