Browse Source

Merge branch 'feature_20240621_zhaohaipeng_fm' of algorithm/ad-engine into master

zhaohaipeng 10 months ago
parent
commit
ead46f5a2c

+ 1 - 0
ad-engine-commons/src/main/java/com/tzld/piaoquan/ad/engine/commons/util/NumUtil.java

@@ -9,6 +9,7 @@ public class NumUtil {
         return d1 / d2;
     }
 
+    @SafeVarargs
     public static <T extends Comparable<T>> T min(T... values) {
         if (values == null || values.length == 0) {
             throw new IllegalArgumentException("Values cannot be null or empty");

+ 35 - 8
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/RankService680.java

@@ -118,18 +118,45 @@ public class RankService680 {
             item.setScore(item.getLrScore() * item.getCpa());
             item.getScoreMap().put("cpa", item.getCpa());
             item.getFeatureMap().putAll(userFeatureMap);
-            if (MapUtils.isNotEmpty(videoFeature)) {
-                item.getMetaFeatureMap().putAll(videoFeature);
+
+            for (Map.Entry<String, Map<String, String>> entry : videoFeature.entrySet()) {
+                if (MapUtils.isNotEmpty(entry.getValue())) {
+                    item.getMetaFeatureMap().put(entry.getKey(), entry.getValue());
+                }
             }
-            if (MapUtils.isNotEmpty(userFeature)) {
-                item.getMetaFeatureMap().putAll(userFeature);
+
+            for (Map.Entry<String, Map<String, String>> entry : userFeature.entrySet()) {
+                if (MapUtils.isNotEmpty(entry.getValue())) {
+                    item.getMetaFeatureMap().put(entry.getKey(), entry.getValue());
+                }
             }
-            if (allAdVerFeature.containsKey(item.getAdVerId())) {
-                item.getMetaFeatureMap().putAll(allAdVerFeature.get(item.getAdVerId()));
+
+            Map<String, Map<String, String>> adVerFeature = allAdVerFeature.getOrDefault(item.getAdVerId(), new HashMap<>());
+            for (Map.Entry<String, Map<String, String>> entry : adVerFeature.entrySet()) {
+                if (MapUtils.isNotEmpty(entry.getValue())) {
+                    item.getMetaFeatureMap().put(entry.getKey(), entry.getValue());
+                }
             }
-            if (allCidFeature.containsKey(String.valueOf(item.getAdId()))) {
-                item.getMetaFeatureMap().putAll(allCidFeature.get(String.valueOf(item.getAdId())));
+
+            Map<String, Map<String, String>> cidFeature = allCidFeature.getOrDefault(String.valueOf(item.getAdId()), new HashMap<>());
+            for (Map.Entry<String, Map<String, String>> entry : cidFeature.entrySet()) {
+                if (MapUtils.isNotEmpty(entry.getValue())) {
+                    item.getMetaFeatureMap().put(entry.getKey(), entry.getValue());
+                }
             }
+
+            // if (MapUtils.isNotEmpty(videoFeature)) {
+            //     item.getMetaFeatureMap().putAll(videoFeature);
+            // }
+            // if (MapUtils.isNotEmpty(userFeature)) {
+            //     item.getMetaFeatureMap().putAll(userFeature);
+            // }
+            // if (allAdVerFeature.containsKey(item.getAdVerId())) {
+            //     item.getMetaFeatureMap().putAll(allAdVerFeature.get(item.getAdVerId()));
+            // }
+            // if (allCidFeature.containsKey(String.valueOf(item.getAdId()))) {
+            //     item.getMetaFeatureMap().putAll(allCidFeature.get(String.valueOf(item.getAdId())));
+            // }
         }
 
         Collections.sort(result);