skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java
@@ -17,9 +17,12 @@
import cn.gistack.alerts.sms.service.SmsService;
import cn.gistack.alerts.sms.util.SmsUtils;
import cn.gistack.alerts.sms.vo.SmsRequestTemplate;
import cn.gistack.common.cache.CacheNames;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import org.springblade.core.redis.cache.BladeRedis;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -46,6 +49,9 @@
   @Autowired
   private ISmsTemplateService smsTemplateService;
   @Autowired
   private BladeRedis bladeRedis;
   /**
    * 发送 xx 变量模板短信
@@ -341,10 +347,21 @@
      List<Map<String, Object>> list = smsTemplateService.getNotConnectPatrolPersonList(taskId);
      SmsTemplate smsTemplate = smsTemplateService.getOne(new QueryWrapper<SmsTemplate>().eq("template_id", templateId));
      if (list.size()>0) {
         List<Map<String, Object>> newList = new ArrayList<>();
         // 比对
         for (Map<String, Object> map : list) {
            // 获取验证码
            String redisByTaskId = bladeRedis.get(MinConstant.is_send_prefix + map.get("userPhone").toString() + ":" + map.get("waterCode").toString());
            // 如果为null,并且不能匹配,加入发送短信集合
            if (redisByTaskId == null || !StringUtil.equalsIgnoreCase(redisByTaskId, taskId)) {
               newList.add(map);
            }
         }
         if (newList.size() > 0) {
         // 组装短信数据
         StringBuilder builder = new StringBuilder();
         // 遍历
         for (Map<String, Object> map : list) {
            for (Map<String, Object> map : newList) {
            builder.append(map.get("userPhone") + ",")
                  .append(time + ",")
                  .append(MinConstant.fillWaterInfoUrl + ",")
@@ -376,8 +393,12 @@
         SmsResult smsResult = saveSendResult(request, rows.length);
         if (null != smsResult) {
            List<SmsRecord> smsRecordList = new ArrayList<>();
               Pattern compile = Pattern.compile("[^0-9]");
               Integer result = Integer.parseInt(compile.matcher(time).replaceAll("").trim());
               // 分钟或小时
               Long validTime = time.contains("分钟") ? 60L * result : 60L * 60 * result;
            // 遍历保存
            for (Map<String, Object> map : list) {
               for (Map<String, Object> map : newList) {
               SmsRecord smsRecord = new SmsRecord();
               smsRecord.setId(IdWorker.getId());
               smsRecord.setTel(map.get("userPhone").toString());
@@ -392,6 +413,9 @@
               smsRecord.setResultId(smsResult.getId());
               smsRecord.setResponseStatus(resultComResult.getCode().toString());
               smsRecord.setResponseMsg(resultComResult.getMsg());
                  // 保存redis
                  bladeRedis.setEx(MinConstant.is_send_prefix + map.get("userPhone").toString() + ":" + map.get("waterCode").toString(), taskId, 2 * 60 * 60L);
                  bladeRedis.setEx(MinConstant.fill_info_prefix + map.get("userPhone").toString(), taskId, validTime);
               // 加入集合
               smsRecordList.add(smsRecord);
            }
@@ -401,6 +425,7 @@
            return count.toString();
         }
      }
      }
      return null;
   }