Преглед изворни кода

迁移优化发短信校验逻辑

yjwang пре 2 дана
родитељ
комит
4aec1d8743
1 измењених фајлова са 13 додато и 16 уклоњено
  1. 13 16
      fs-ipad-task/src/main/java/com/fs/app/task/SendSmsMsg.java

+ 13 - 16
fs-ipad-task/src/main/java/com/fs/app/task/SendSmsMsg.java

@@ -262,8 +262,11 @@ public class SendSmsMsg {
             QwSopLogs qwSopLogs = sopLogsMap.get(logRecord.getSopLogId());
             QwSopCourseFinishTempSetting setting = JSON.parseObject(qwSopLogs.getContentJson(), QwSopCourseFinishTempSetting.class);
             // 判断消息状态是否满足发送条件
-            if (!isSendLogs(qwSopLogs, setting)) {
+            SendResultDetailDTO checkDto= isSendLogs(qwSopLogs, setting,logRecord);
+            if (!checkDto.isSuccess()) {
                 log.info("销售:{}, 消息发送条件未满足:{}", qwSopLogs.getQwUserKey(), qwSopLogs.getId());
+                failReasonsList.add(checkDto);
+                failedIds.add(logRecord.getId());
                 continue;
             }
 
@@ -465,11 +468,11 @@ public class SendSmsMsg {
 
 
 
-    public boolean isSendLogs(QwSopLogs qwSopLogs, QwSopCourseFinishTempSetting setting) {
+    public SendResultDetailDTO isSendLogs(QwSopLogs qwSopLogs, QwSopCourseFinishTempSetting setting,QwSopSmsLogs logRecord) {
         Long qwUserId = qwSopLogs.getQwUserKey();
         if(qwSopLogs.getSendStatus() != 3){
             log.info("状态异常不发送:{}, LOGID: {}", qwSopLogs.getQwUserKey(), qwSopLogs.getId());
-            return false;
+            return new SendResultDetailDTO(false, "状态异常不发送", logRecord.getSopLogId());
         }
 
         boolean noSop = qwSopLogs.getSendType() != 3 && qwSopLogs.getSendType() != 7;
@@ -477,8 +480,7 @@ public class SendSmsMsg {
         if (qwSopLogs.getExpiryTime() == null && noSop) {
             // 作废消息
             log.info("SOP_LOG_ID:{}, SOP任务被删除", qwSopLogs.getId());
-            qwSopLogsService.updateQwSopLogsByWatchLogType(qwSopLogs.getId(), "SOP任务被删除");
-            return false;
+            return new SendResultDetailDTO(false, "SOP任务被删除", logRecord.getSopLogId());
         }
 
         LocalDateTime sendTime = DateUtil.stringToLocalDateTime(qwSopLogs.getSendTime());
@@ -494,22 +496,19 @@ public class SendSmsMsg {
         if (LocalDateTime.now().isAfter(expiryDateTime)  ) {
             // 作废消息
             log.info("SOP_LOG_ID:{}, 已过期,不发送", qwSopLogs.getId());
-            qwSopLogsService.updateQwSopLogsByWatchLogType(qwSopLogs.getId(), "已过期,不发送");
-            return false;
+            return new SendResultDetailDTO(false, "已过期,不发送", logRecord.getSopLogId());
         }
 
         if (setting.getCourseType() == null && noSop && setting.getType() == 2) {
             log.info("SOP_LOG_ID:{}, 模板未选消息类型,不发送", qwSopLogs.getId());
-            qwSopLogsService.updateQwSopLogsByWatchLogType(qwSopLogs.getId(), "模板未选消息类型,不发送");
-            return false;
+            return new SendResultDetailDTO(false, "模板未选消息类型,不发送", logRecord.getSopLogId());
         }
         Integer cacheValue = redisCache.getCacheObject("sopCourse:video:isPause:" + setting.getVideoId());
         int isPause = (cacheValue != null) ? cacheValue : 0;
         log.info("SOP_LOG_ID:{},判断课程({})当前状态:{}", qwSopLogs.getId(), setting.getVideoId(), isPause);
         if (isPause == 1){
             log.info("SOP_LOG_ID:{}, 课程暂停,不发送", qwSopLogs.getId());
-            qwSopLogsService.updateQwSopLogsByWatchLogType(qwSopLogs.getId(), "课程暂停,AI不发送");
-            return false;
+            return new SendResultDetailDTO(false, "课程暂停,AI不发送", logRecord.getSopLogId());
         }
 
         if (qwSopLogs.getSendType() != 12 && noSop) {
@@ -529,17 +528,15 @@ public class SendSmsMsg {
                     if (!QwSopLogsServiceImpl.isCourseTypeValid(courseType, watchLog.getLogType())) {
                         // 作废消息
                         log.info("SOP_LOG_ID:{}, 看课状态未满足,不发送", qwSopLogs.getId());
-                        qwSopLogsService.updateQwSopLogsByWatchLogType(logId, "看课状态未满足,不发送");
-                        return false;
+                        return new SendResultDetailDTO(false, "看课状态未满足,不发送", logRecord.getSopLogId());
                     }
                 } else {
                     log.info("SOP_LOG_ID:{}, 无观看记录,不发送", qwSopLogs.getId());
-                    qwSopLogsService.updateQwSopLogsByWatchLogType(logId, "无观看记录,不发送");
-                    return false;
+                    return new SendResultDetailDTO(false, "无观看记录,不发送", logRecord.getSopLogId());
                 }
             }
         }
-        return true;
+        return new SendResultDetailDTO(true, "检测通过", logRecord.getSopLogId());
     }
 
 }