yumeng 3 dni temu
rodzic
commit
3723490017

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

@@ -274,10 +274,14 @@ public class ConversionSyncService {
 
             if (validTencent) {
                 conversionRecords.add(toConversionRecord(payment, tencentBid, "tencent"));
-                callbackTasks.add(buildTencentCallbackTask(payment, tencentBid));
                 result.matched.incrementAndGet();
                 log.info("[ConversionSync] 匹配到腾讯转化 | qk={} | act={} | deviceId={} | date={} | payment={}",
                         payment.getQk(), payment.getAct(), payment.getDeviceId(), payment.getDate(), payment.getPayment());
+
+                CallbackTask tencentTask = buildTencentCallbackTask(payment, tencentBid);
+                if (tencentTask != null) {
+                    callbackTasks.add(tencentTask);
+                }
                 continue;
             }
 
@@ -305,9 +309,16 @@ public class ConversionSyncService {
             actionType = tagEventResolver.resolveActionType(bid.getTagId(), payment.getAct());
         }
         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(