yumeng 4 дней назад
Родитель
Сommit
3723490017
1 измененных файлов с 15 добавлено и 4 удалено
  1. 15 4
      src/main/java/com/adx/tencent/conversionsync/ConversionSyncService.java

+ 15 - 4
src/main/java/com/adx/tencent/conversionsync/ConversionSyncService.java

@@ -274,10 +274,14 @@ public class ConversionSyncService {
 
 
             if (validTencent) {
             if (validTencent) {
                 conversionRecords.add(toConversionRecord(payment, tencentBid, "tencent"));
                 conversionRecords.add(toConversionRecord(payment, tencentBid, "tencent"));
-                callbackTasks.add(buildTencentCallbackTask(payment, tencentBid));
                 result.matched.incrementAndGet();
                 result.matched.incrementAndGet();
                 log.info("[ConversionSync] 匹配到腾讯转化 | qk={} | act={} | deviceId={} | date={} | payment={}",
                 log.info("[ConversionSync] 匹配到腾讯转化 | qk={} | act={} | deviceId={} | date={} | payment={}",
                         payment.getQk(), payment.getAct(), payment.getDeviceId(), payment.getDate(), payment.getPayment());
                         payment.getQk(), payment.getAct(), payment.getDeviceId(), payment.getDate(), payment.getPayment());
+
+                CallbackTask tencentTask = buildTencentCallbackTask(payment, tencentBid);
+                if (tencentTask != null) {
+                    callbackTasks.add(tencentTask);
+                }
                 continue;
                 continue;
             }
             }
 
 
@@ -305,9 +309,16 @@ public class ConversionSyncService {
             actionType = tagEventResolver.resolveActionType(bid.getTagId(), payment.getAct());
             actionType = tagEventResolver.resolveActionType(bid.getTagId(), payment.getAct());
         }
         }
         if (actionType == null || actionType.isBlank()) {
         if (actionType == null || actionType.isBlank()) {
-            actionType = tencentClient.conversionActionType(payment.getAct());
-            log.warn("[ConversionSync] 广告位回传方式未配置, 回退act-map | qk={} | tagId={} | act={} | actionType={}",
-                    payment.getQk(), bid.getTagId(), payment.getAct(), actionType);
+            try {
+                actionType = tencentClient.conversionActionType(payment.getAct());
+                log.warn("[ConversionSync] 广告位回传方式未配置, 回退act-map | qk={} | tagId={} | act={} | actionType={}",
+                        payment.getQk(), bid.getTagId(), payment.getAct(), actionType);
+            } catch (IllegalArgumentException e) {
+                // act 既没配广告位回传方式,也没配 act-map:只落库不回传,避免整个任务中断
+                log.warn("[ConversionSync] 腾讯回传方式未配置, 跳过回传 | qk={} | tagId={} | act={} | date={} | error={}",
+                        payment.getQk(), bid.getTagId(), payment.getAct(), payment.getDate(), e.getMessage());
+                return null;
+            }
         }
         }
 
 
         return CallbackTask.tencent(
         return CallbackTask.tencent(