|
@@ -1,6 +1,7 @@
|
|
|
package com.tzld.piaoquan.ad.engine.service.predict.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
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;
|
|
@@ -8,7 +9,8 @@ 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.containner.ThresholdModelContainer;
|
|
|
+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.param.RoiThresholdPredictModelParam;
|
|
|
import com.tzld.piaoquan.ad.engine.service.predict.param.RuleParamHelper;
|
|
|
import com.tzld.piaoquan.ad.engine.service.predict.param.ThresholdPredictModelParam;
|
|
@@ -28,7 +30,7 @@ public class PredictModelServiceImpl implements PredictModelService {
|
|
|
private String adOwnExperimentTier;
|
|
|
|
|
|
@Autowired
|
|
|
- RuleParamHelper paramHelper;
|
|
|
+ private AbTestConfigContainer container;
|
|
|
|
|
|
@Autowired
|
|
|
AlgorithmRedisHelper redisHelper;
|
|
@@ -40,15 +42,25 @@ public class PredictModelServiceImpl implements PredictModelService {
|
|
|
RoiModelConfig roiModelConfig;
|
|
|
|
|
|
public Map<String,Object> adPredict(ThresholdPredictModelRequestParam requestParam){
|
|
|
- //0-8不出广告
|
|
|
+
|
|
|
+ JSONObject object=requestParam.getAbExpInfo();
|
|
|
+ //先判断是否开启实验 和是否不出广告时间 而后判断默认0-8
|
|
|
Map<String,Object> result=new HashMap<>();
|
|
|
int hourOfDay= DateUtils.getCurrentHour();
|
|
|
- if(hourOfDay<8&&hourOfDay>=0){
|
|
|
+ if(container.containsCode(requestParam.getAbTestCode())
|
|
|
+ &&
|
|
|
+ container.inWithoutAdTime(requestParam.getAbTestCode(),hourOfDay)){
|
|
|
+ result.put("ad_predict", 1);
|
|
|
+ result.put("no_ad_strategy","no_ad_time");
|
|
|
+ return result;
|
|
|
+ }else if(hourOfDay<8&&hourOfDay>=0){
|
|
|
result.put("ad_predict", 1);
|
|
|
result.put("no_ad_strategy","no_ad_time");
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
String[] abParamArr=abConfig.getAbParams(requestParam.getAbTestCode(),requestParam.getAbExpInfo());
|
|
|
if(abParamArr==null){
|
|
|
result.put("msg","abConfig_error");
|
|
@@ -76,8 +88,8 @@ public class PredictModelServiceImpl implements PredictModelService {
|
|
|
midGroup = "mean_group";
|
|
|
}
|
|
|
|
|
|
- String[] noAdMidGroupList=new String[0];
|
|
|
- noAdMidGroupList=((JSONArray) abtestParam.get("no_ad_mid_group_list")).toArray(noAdMidGroupList);
|
|
|
+ String[] noAdMidGroupList=(String[]) ((JSONArray) abtestParam.get("no_ad_mid_group_list")).toArray();
|
|
|
+
|
|
|
boolean inNoAdGroup = false;
|
|
|
for (String group : noAdMidGroupList) {
|
|
|
if (group.equals(midGroup)) {
|
|
@@ -94,6 +106,10 @@ public class PredictModelServiceImpl implements PredictModelService {
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ String[] noAdGroupWithVideoMapping=(String[]) ((JSONArray) abtestParam.get("no_ad_mid_group_list")).toArray();
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
//设置信息
|
|
|
ThresholdPredictModelParam modelParam=ThresholdPredictModelParam.builder()
|
|
|
.build();
|
|
@@ -103,7 +119,7 @@ public class PredictModelServiceImpl implements PredictModelService {
|
|
|
modelParam.setAbTestConfigTag(abTestConfigTag);
|
|
|
modelParam.setAbtestParam(abtestParam);
|
|
|
modelParam.setMidGroup(midGroup);
|
|
|
- Object thresholdMixFunc=abtestParam.getOrDefault("threshold_mix_func","default");
|
|
|
+ Object thresholdMixFunc=abtestParam.getOrDefault("threshold_mix_func","basic");
|
|
|
result= ThresholdModelContainer.
|
|
|
getThresholdPredictModel(thresholdMixFunc.toString())
|
|
|
.predict(modelParam);
|
|
@@ -112,7 +128,7 @@ public class PredictModelServiceImpl implements PredictModelService {
|
|
|
}
|
|
|
|
|
|
public Map<String,Object> adRecommendPredictByRoiModel(RoiPredictModelRequestParam requestParam){
|
|
|
- //0-8不出广告
|
|
|
+
|
|
|
Map<String,Object> result=new HashMap<>();
|
|
|
int hourOfDay= DateUtils.getCurrentHour();
|
|
|
if(hourOfDay<8&&hourOfDay>=0){
|