|
@@ -2,20 +2,18 @@ package com.tzld.piaoquan.ad.engine.service.predict.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
-import com.aliyun.opensearch.sdk.dependencies.org.apache.commons.lang.StringUtils;
|
|
|
-import com.google.common.reflect.TypeToken;
|
|
|
import com.tzld.piaoquan.ad.engine.commons.enums.AppTypeEnum;
|
|
|
import com.tzld.piaoquan.ad.engine.commons.redis.AlgorithmRedisHelper;
|
|
|
import com.tzld.piaoquan.ad.engine.commons.util.DateUtils;
|
|
|
-import com.tzld.piaoquan.ad.engine.commons.util.JSONUtils;
|
|
|
-import com.tzld.piaoquan.ad.engine.service.predict.PredictModelService;
|
|
|
-import com.tzld.piaoquan.ad.engine.service.predict.config.AbConfig;
|
|
|
import com.tzld.piaoquan.ad.engine.service.predict.config.RoiModelConfig;
|
|
|
import com.tzld.piaoquan.ad.engine.service.predict.constant.RuleRedisKeyConst;
|
|
|
+import com.tzld.piaoquan.ad.engine.service.predict.PredictModelService;
|
|
|
+import com.tzld.piaoquan.ad.engine.service.predict.config.AbConfig;
|
|
|
import com.tzld.piaoquan.ad.engine.service.predict.container.AbTestConfigContainer;
|
|
|
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;
|
|
@@ -86,17 +84,28 @@ public class PredictModelServiceImpl implements PredictModelService {
|
|
|
}
|
|
|
|
|
|
public Map<String, Object> adPredictNew(ThresholdPredictModelRequestParam requestParam) {
|
|
|
- JSONObject object = requestParam.getAbExpInfo();
|
|
|
+ JSONObject object=requestParam.getAbExpInfo();
|
|
|
+ //临时解决方案
|
|
|
+ List<Map<String,Object>> mapList=(List)requestParam.getAbExpInfo().get("ab_test002");
|
|
|
+ Map<String,List<JSONObject>> configMap=new HashMap<>();
|
|
|
+ for(Map<String,Object> map:mapList){
|
|
|
+ if("555".equals(map.getOrDefault("abExpCode",""))){
|
|
|
+ configMap=JSONObject.parseObject(map.get("configValue").toString(),Map.class);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
//先判断是否开启实验 和是否不出广告时间 而后判断默认0-8
|
|
|
- Map<String, Object> result = new HashMap<>();
|
|
|
- int hourOfDay = DateUtils.getCurrentHour();
|
|
|
- Boolean condition1 = abTestConfigContainer.inAdTimeTest(requestParam.getAbExpInfo());
|
|
|
- Boolean condition2 = abTestConfigContainer.containsCode(requestParam.getAbTestCode());
|
|
|
- if (condition1
|
|
|
+ Map<String,Object> result=new HashMap<>();
|
|
|
+ int hourOfDay= DateUtils.getCurrentHour();
|
|
|
+ Boolean condition1=abTestConfigContainer.inAdTimeTest(requestParam.getAbExpInfo());
|
|
|
+ Boolean condition2=abTestConfigContainer.containsCode(configMap,requestParam.getAbTestCode());
|
|
|
+
|
|
|
+
|
|
|
+ if(condition1
|
|
|
&&
|
|
|
condition2
|
|
|
&&
|
|
|
- abTestConfigContainer.inWithoutAdTime(requestParam.getAbTestCode(), hourOfDay)) {
|
|
|
+ abTestConfigContainer.inWithoutAdTime(configMap,requestParam.getAbTestCode(),hourOfDay)){
|
|
|
result.put("ad_predict", 1);
|
|
|
result.put("no_ad_strategy", "no_ad_time_with_time_plan");
|
|
|
return result;
|
|
@@ -186,17 +195,28 @@ public class PredictModelServiceImpl implements PredictModelService {
|
|
|
|
|
|
public Map<String, Object> adPredictOld(ThresholdPredictModelRequestParam requestParam) {
|
|
|
|
|
|
- JSONObject object = requestParam.getAbExpInfo();
|
|
|
+ JSONObject object=requestParam.getAbExpInfo();
|
|
|
+ //临时解决方案
|
|
|
+ List<Map<String,Object>> mapList=(List)requestParam.getAbExpInfo().get("ab_test002");
|
|
|
+ Map<String,List<JSONObject>> configMap=new HashMap<>();
|
|
|
+ for(Map<String,Object> map:mapList){
|
|
|
+ if("555".equals(map.getOrDefault("abExpCode",""))){
|
|
|
+ configMap=JSONObject.parseObject(map.get("configValue").toString(),Map.class);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
//先判断是否开启实验 和是否不出广告时间 而后判断默认0-8
|
|
|
- Map<String, Object> result = new HashMap<>();
|
|
|
- int hourOfDay = DateUtils.getCurrentHour();
|
|
|
- Boolean condition1 = abTestConfigContainer.inAdTimeTest(requestParam.getAbExpInfo());
|
|
|
- Boolean condition2 = abTestConfigContainer.containsCode(requestParam.getAbTestCode());
|
|
|
- if (condition1
|
|
|
+ Map<String,Object> result=new HashMap<>();
|
|
|
+ int hourOfDay= DateUtils.getCurrentHour();
|
|
|
+ Boolean condition1=abTestConfigContainer.inAdTimeTest(requestParam.getAbExpInfo());
|
|
|
+ Boolean condition2=abTestConfigContainer.containsCode(configMap,requestParam.getAbTestCode());
|
|
|
+
|
|
|
+
|
|
|
+ if(condition1
|
|
|
&&
|
|
|
condition2
|
|
|
&&
|
|
|
- abTestConfigContainer.inWithoutAdTime(requestParam.getAbTestCode(), hourOfDay)) {
|
|
|
+ abTestConfigContainer.inWithoutAdTime(configMap,requestParam.getAbTestCode(),hourOfDay)){
|
|
|
result.put("ad_predict", 1);
|
|
|
result.put("no_ad_strategy", "no_ad_time_with_time_plan");
|
|
|
return result;
|