Kaynağa Gözat

add 607实验模型

gufengshou1 1 yıl önce
ebeveyn
işleme
230ea59c4b

+ 3 - 0
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/predict/constant/RuleRedisKeyConst.java

@@ -36,4 +36,7 @@ public class RuleRedisKeyConst {
     //广告引擎用户特征  ad:engine:user:features:{mid}
     public static String AD_ENGINE_USER_FUTURE_KEY="ad:engine:user:features:";
 
+    //    用户90分享分组结果存放 redis key 前缀,完整格式:mid:90share:group:{mid}
+    public static String KEY_NAME_PREFIX_90_SHARE_TYPE="mid:90share:group:";
+
 }

+ 13 - 16
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/predict/impl/PredictModelServiceImpl.java

@@ -56,6 +56,9 @@ public class PredictModelServiceImpl implements PredictModelService {
     @Value("${ad.predict.share0.exp.code:000}")
     private String adPredictNoShareUserExpCode;
 
+    @Value("${ad.predict.90d.share0.exp.code:000}")
+    private String adPredict90DNoShareUserExpCode;
+
     @Value("${ad.predict.immersion.exp.code:607}")
     private String adPredictImmersionExpCode;
 
@@ -89,7 +92,6 @@ public class PredictModelServiceImpl implements PredictModelService {
         //该用户所有实验合集
         Set<String> expCodes=new HashSet<>();
         boolean isHit = false;
-//        String randomModelExpCode=null;
         for(Map<String,Object> map:mapList){
             String expCode=map.getOrDefault("abExpCode","").toString();
             expCodes.add(expCode);
@@ -100,9 +102,6 @@ public class PredictModelServiceImpl implements PredictModelService {
             if (StringUtils.equals(expCode, adPredictBreakExpCode)) {
                 isHit = true;
             }
-//            if(ExpCodeEnum.EXP_599.getCode().equals(expCode)||ExpCodeEnum.EXP_600.getCode().equals(expCode)){
-//                randomModelExpCode=expCode;
-//            }
         }
 
         int hourOfDay= DateUtils.getCurrentHour();
@@ -132,12 +131,6 @@ public class PredictModelServiceImpl implements PredictModelService {
         }
         String abtestId = abParamArr[0];
         String abTestConfigTag = abParamArr[1];
-//        if("173".equals(abtestId)&&(requestParam.getAbTestCode().equals("ab3")||requestParam.getAbTestCode().equals("ab4"))){
-//            requestParam.setAbTestCode("ab5");
-//        }
-//        if("243".equals(abtestId)&&(requestParam.getAbTestCode().equals("ab1")||requestParam.getAbTestCode().equals("ab2")||requestParam.getAbTestCode().equals("ab3"))){
-//            requestParam.setAbTestCode("ab5");
-//        }
 
         HashMap<String, Map<String, Object>> abConfigMap = abConfig.getAbConfigMap();
         Map<String, Object> abtestParam = abConfigMap.getOrDefault(abtestId + "-" + abTestConfigTag, null);
@@ -145,21 +138,23 @@ public class PredictModelServiceImpl implements PredictModelService {
             result.put("msg", "abConfig_error");
             return result;
         }
-        //市-中文
-        requestParam.setRegion(requestParam.getRegion().replace("省", ""));
-        requestParam.setCity(requestParam.getCity().replace("市", ""));
 
         // Determine the group to which mid belongs
         String groupClassKey = (String) abtestParam.get("group_class_key");
         String midGroupKeyName = RuleRedisKeyConst.KEY_NAME_PREFIX_MID_GROUP + groupClassKey + ":" + requestParam.getMid();
+        String midGroup=null;
+        if(expCodes.contains(adPredict90DNoShareUserExpCode)){
+            midGroup = redisHelper.getString(RuleRedisKeyConst.KEY_NAME_PREFIX_90_SHARE_TYPE+requestParam.getMid());
+        }else {
+            midGroup = redisHelper.getString(midGroupKeyName);
+        }
+
         //没有时为新用户或者无分享用户
-        String midGroup = redisHelper.getString(midGroupKeyName);
         String shareType =midGroup;
         if (midGroup == null) {
             midGroup = "mean_group";
             shareType="noShare";
         }
-
         String[] noAdMidGroupList = new String[0];
         noAdMidGroupList = ((JSONArray) abtestParam.get("no_ad_mid_group_list")).toArray(noAdMidGroupList);
 
@@ -190,7 +185,9 @@ public class PredictModelServiceImpl implements PredictModelService {
             result.put("no_ad_strategy", "no_ad_mid_group_with_video");
             return result;
         }
-
+        //市-中文
+        requestParam.setRegion(requestParam.getRegion().replace("省", ""));
+        requestParam.setCity(requestParam.getCity().replace("市", ""));
         //设置信息
         ThresholdPredictModelParam modelParam = ThresholdPredictModelParam.builder()
                 .build();