Browse Source

Merge branch 'master' into feature_gufengshou_20240117_fix530bug

# Conflicts:
#	ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/predict/container/AbTestConfigContainer.java
gufengshou1 1 năm trước cách đây
mục cha
commit
4066576390

+ 7 - 2
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/predict/container/AbTestConfigContainer.java

@@ -19,7 +19,7 @@ public class AbTestConfigContainer {
     @Value("${ad.abtest.time.plan.code:555}")
     String adTestCode;
 
-//List<Tuple<Integer>>
+    //List<Tuple<Integer>>
     Map<String,List<JSONObject>> adTimePlanMap=new HashMap<>();
     @PostConstruct
     public void initContainer(){
@@ -72,7 +72,12 @@ public class AbTestConfigContainer {
     }
 
     public Boolean inAdTimeTest(JSONObject abExpInfo){
-
+        List<Map<String,Object>> mapList=(List)abExpInfo.get("ab_test002");
+        for(Map<String,Object> map:mapList){
+            if(adTestCode.equals(map.getOrDefault("abExpCode",""))){
+                return true;
+            }
+        }
         return false;
     }
 

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

@@ -13,6 +13,7 @@ import com.tzld.piaoquan.ad.engine.service.predict.container.AbTestConfigContain
 import com.tzld.piaoquan.ad.engine.service.predict.container.ThresholdModelContainer;
 import com.tzld.piaoquan.ad.engine.service.predict.container.TopOneVideoContainer;
 import com.tzld.piaoquan.ad.engine.service.predict.param.RoiThresholdPredictModelParam;
+import com.tzld.piaoquan.ad.engine.service.predict.param.RuleParamHelper;
 import com.tzld.piaoquan.ad.engine.service.predict.param.ThresholdPredictModelParam;
 import com.tzld.piaoquan.ad.engine.service.predict.param.request.RoiPredictModelRequestParam;
 import com.tzld.piaoquan.ad.engine.service.predict.param.request.ThresholdPredictModelRequestParam;
@@ -50,13 +51,17 @@ public class PredictModelServiceImpl implements PredictModelService {
         //先判断是否开启实验 和是否不出广告时间 而后判断默认0-8
         Map<String,Object> result=new HashMap<>();
         int hourOfDay= DateUtils.getCurrentHour();
-        if(abTestConfigContainer.containsCode(requestParam.getAbTestCode())
+        Boolean condition1=abTestConfigContainer.inAdTimeTest(requestParam.getAbExpInfo());
+        Boolean condition2=abTestConfigContainer.containsCode(requestParam.getAbTestCode());
+        if(condition1
+                &&
+                condition2
                 &&
                 abTestConfigContainer.inWithoutAdTime(requestParam.getAbTestCode(),hourOfDay)){
             result.put("ad_predict", 1);
             result.put("no_ad_strategy","no_ad_time");
             return result;
-        }else  if(!abTestConfigContainer.containsCode(requestParam.getAbTestCode())&&(hourOfDay<8&&hourOfDay>=0)){
+        }else  if((!condition1||(condition1&&!condition2))&&(hourOfDay<8&&hourOfDay>=0)){
             result.put("ad_predict", 1);
             result.put("no_ad_strategy","no_ad_time");
             return result;