瀏覽代碼

规范代码层级

yumeng 6 天之前
父節點
當前提交
554f8381d4

+ 13 - 4
src/main/java/com/adx/tencent/baidu/AdxClient.java

@@ -42,10 +42,11 @@ public class AdxClient {
      * 向百度 ADX 发起竞价请求,返回归一化后的 BidResponse。
      * 如果百度返回空响应体(无广告填充),返回 null。
      */
-    public NormalizedBidResponse requestBid(String traceId, Object body) throws IOException, InterruptedException {
+    public NormalizedBidResponse requestBid(String media, String traceId, Object body) throws IOException, InterruptedException {
         if (endpoint == null || endpoint.isBlank()) {
             throw new IllegalStateException("Baidu ADX endpoint is required");
         }
+        String mediaLabel = mediaLabel(media);
 
         byte[] payload = objectMapper.writeValueAsBytes(body);
         HttpRequest request = HttpRequest.newBuilder()
@@ -63,7 +64,7 @@ public class AdxClient {
         // 百度 ADX 无广告填充时可能返回空 body
         byte[] respBody = response.body();
         if (respBody == null || respBody.length == 0) {
-            log.info("[百度ADX][原始响应] traceId={} status={} body=<empty>", traceId, response.statusCode());
+            log.info("[百度ADX][{}][原始响应] traceId={} status={} body=<empty>", mediaLabel, traceId, response.statusCode());
             return null;
         }
 
@@ -72,15 +73,23 @@ public class AdxClient {
             BidResponse bidResponse = objectMapper.readValue(respBody, BidResponse.class);
             NormalizedBidResponse normalized = NormalizedBidResponse.from(bidResponse);
             if (normalized == null || normalized.getBid() == null) {
-                log.info("[百度ADX][原始响应] traceId={} status={} body={}", traceId, response.statusCode(), rawBody);
+                log.info("[百度ADX][{}][原始响应] traceId={} status={} body={}", mediaLabel, traceId, response.statusCode(), rawBody);
             }
             return normalized;
         } catch (IOException e) {
-            log.warn("[百度ADX][原始响应] traceId={} status={} body={}", traceId, response.statusCode(), rawBody);
+            log.warn("[百度ADX][{}][原始响应] traceId={} status={} body={}", mediaLabel, traceId, response.statusCode(), rawBody);
             throw e;
         }
     }
 
+    private static String mediaLabel(String media) {
+        return switch (media) {
+            case "honor" -> "荣耀";
+            case "tencent" -> "腾讯";
+            default -> media == null || media.isBlank() ? "未知" : media;
+        };
+    }
+
     /**
      * 曝光上报:将 ${AUCTION_PRICE} 宏替换为编码后的价格,依次 GET 所有 showURLs。
      */

+ 2 - 2
src/main/java/com/adx/tencent/honor/controller/HonorTrackingController.java

@@ -84,7 +84,7 @@ public class HonorTrackingController {
         }
         log.info("[荣耀][曝光][入参] traceId={} ip={} params={}", traceId, clientIp(request), params);
 
-        NormalizedBidResponse response = adxClient.requestBid(traceId, buildBidRequest(request, traceId, params));
+        NormalizedBidResponse response = adxClient.requestBid("honor", traceId, buildBidRequest(request, traceId, params));
 
         if (response == null) {
             log.warn("[荣耀][曝光][百度结果] traceId={} empty=true", traceId);
@@ -123,7 +123,7 @@ public class HonorTrackingController {
 
         HonorBidRecord record = hotStore.findBidByMediaTrace(traceId);
         if (record == null) {
-            NormalizedBidResponse bidResponse = adxClient.requestBid(traceId, buildBidRequest(request, traceId, params));
+            NormalizedBidResponse bidResponse = adxClient.requestBid("honor", traceId, buildBidRequest(request, traceId, params));
             if (bidResponse == null) {
                 log.warn("[荣耀][点击][百度结果] traceId={} empty=true", traceId);
                 throw new ResponseStatusException(HttpStatus.BAD_GATEWAY, "empty baidu ADX response");

+ 2 - 2
src/main/java/com/adx/tencent/httpapi/TrackingController.java

@@ -89,7 +89,7 @@ public class TrackingController {
         log.info("[腾讯][曝光][入参] traceId={} ip={} params={}", traceId, clientIp(request), params);
 
         Map<String, Object> bidRequest = mediaBidRequest(request, "tencent", traceId, params, tencentPlacement);
-        NormalizedBidResponse response = adxClient.requestBid(traceId, bidRequest);
+        NormalizedBidResponse response = adxClient.requestBid("tencent", traceId, bidRequest);
         if (response == null) {
             log.warn("[腾讯][曝光][百度结果] traceId={} empty=true", traceId);
             throw new ResponseStatusException(HttpStatus.BAD_GATEWAY, "empty baidu ADX response");
@@ -154,7 +154,7 @@ public class TrackingController {
         if (record == null) {
             // 未找到,临时发起竞价请求
             Map<String, Object> bidRequest = mediaBidRequest(request, "tencent", traceId, params, tencentPlacement);
-            NormalizedBidResponse resp = adxClient.requestBid(traceId, bidRequest);
+            NormalizedBidResponse resp = adxClient.requestBid("tencent", traceId, bidRequest);
             if (resp == null) {
                 log.warn("[腾讯][点击][百度结果] traceId={} empty=true", traceId);
                 throw new ResponseStatusException(HttpStatus.BAD_GATEWAY, "empty baidu ADX response");