丁云鹏 1 year ago
parent
commit
521dfe98b0

+ 21 - 13
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/RecommendService.java

@@ -394,13 +394,23 @@ public class RecommendService {
         // hard code 算法实验配置化之前,复用abcode做AB验证
         // note 避免非实验产品被覆盖
         if (newExpList.contains(param.getAppType())) {
+            recallParam.setAbCode("");
             if (MapUtils.isNotEmpty(param.getExpIdMap()) && param.getExpIdMap().containsKey("recall")) {
-                recallParam.setAbCode(param.getExpIdMap().get("recall"));
-            } else {
-                recallParam.setAbCode("");
+                String expId = param.getExpIdMap().get("recall");
+                if (abExpCodeMap.containsKey(expId)) {
+                    recallParam.setAbCode(abExpCodeMap.get(expId).get("ab_code"));
+                    recallParam.setRuleKey(abExpCodeMap.get(expId).get("rule_key"));
+                    recallParam.setDataKey(abExpCodeMap.get(expId).get("data_key"));
+                    recallParam.setHDataKey(abExpCodeMap.get(expId).get("h_data_key"));
+                    recallParam.setHRuleKey(abExpCodeMap.get(expId).get("h_rule_key"));
+                }
             }
         } else {
             recallParam.setAbCode(param.getAbCode());
+            recallParam.setRuleKey(param.getRuleKey());
+            recallParam.setDataKey(param.getDataKey());
+            recallParam.setHRuleKey(param.getHRuleKey());
+            recallParam.setHDataKey(param.getHDataKey());
         }
         recallParam.setVideoId(param.getVideoId());
         recallParam.setFlowPoolAbtestGroup(param.getFlowPoolAbtestGroup());
@@ -412,13 +422,6 @@ public class RecommendService {
                 ? param.getCityCode()
                 : "";
         recallParam.setRegionCode(cityCodes.contains(cityCode) ? cityCode : provinceCode);
-
-        recallParam.setRuleKey(param.getRuleKey());
-        recallParam.setDataKey(param.getDataKey());
-        recallParam.setHRuleKey(param.getHRuleKey());
-        recallParam.setHDataKey(param.getHDataKey());
-
-
         recallParam.setMid(param.getMid());
         recallParam.setSize(param.getSize());
         recallParam.setUid(param.getUid());
@@ -443,11 +446,16 @@ public class RecommendService {
         // hard code 算法实验配置化之前,复用abcode做AB验证
         // note 避免非实验产品被覆盖
         if (newExpList.contains(param.getAppType())) {
+            rankParam.setAbCode("");
             if (MapUtils.isNotEmpty(param.getExpIdMap())
                     && param.getExpIdMap().containsKey("rank")) {
-                rankParam.setAbCode(param.getExpIdMap().get("rank"));
-            } else {
-                rankParam.setAbCode("");
+                String expId = param.getExpIdMap().get("rank");
+                if (abExpCodeMap.containsKey(expId)) {
+                    rankParam.setAbCode(abExpCodeMap.get(expId).get("ab_code"));
+                    rankParam.setRankKeyPrefix(StringUtils.isNotBlank(abExpCodeMap.get(expId).get("rank_key_prefix"))
+                            ? abExpCodeMap.get(expId).get("rank_key_prefix")
+                            : "rank:score1:");
+                }
             }
         } else {
             rankParam.setAbCode(param.getAbCode());