|
@@ -3,6 +3,7 @@ package com.tzld.piaoquan.ad.engine.service.predict.impl;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.alibaba.fastjson.TypeReference;
|
|
import com.alibaba.fastjson.TypeReference;
|
|
|
|
|
+import com.ctrip.framework.apollo.spring.annotation.ApolloJsonValue;
|
|
|
import com.tzld.piaoquan.ad.engine.commons.enums.AppTypeEnum;
|
|
import com.tzld.piaoquan.ad.engine.commons.enums.AppTypeEnum;
|
|
|
import com.tzld.piaoquan.ad.engine.commons.enums.RedisPrefixEnum;
|
|
import com.tzld.piaoquan.ad.engine.commons.enums.RedisPrefixEnum;
|
|
|
import com.tzld.piaoquan.ad.engine.commons.redis.AdRedisHelper;
|
|
import com.tzld.piaoquan.ad.engine.commons.redis.AdRedisHelper;
|
|
@@ -77,6 +78,8 @@ public class PredictModelServiceImpl implements PredictModelService {
|
|
|
private PredictStrategyBy819 predictStrategyBy819;
|
|
private PredictStrategyBy819 predictStrategyBy819;
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private PredictStrategyBy820 predictStrategyBy820;
|
|
private PredictStrategyBy820 predictStrategyBy820;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private PredictStrategyBy823 predictStrategyBy823;
|
|
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private UserService userService;
|
|
private UserService userService;
|
|
@@ -163,15 +166,15 @@ public class PredictModelServiceImpl implements PredictModelService {
|
|
|
boolean execute817 = false;
|
|
boolean execute817 = false;
|
|
|
// 不出广告时间判定
|
|
// 不出广告时间判定
|
|
|
int hourOfDay = DateUtils.getCurrentHour();
|
|
int hourOfDay = DateUtils.getCurrentHour();
|
|
|
- if ( 0 <= hourOfDay && hourOfDay < 8 && !isAdvanceShowAd() ) {
|
|
|
|
|
|
|
+ if (0 <= hourOfDay && hourOfDay < 8 && !isAdvanceShowAd()) {
|
|
|
// 0点到8点 && 不是节日
|
|
// 0点到8点 && 不是节日
|
|
|
boolean isIn817Time = false;
|
|
boolean isIn817Time = false;
|
|
|
- try{
|
|
|
|
|
|
|
+ try {
|
|
|
String[] split = experiment817WithAdHour.split(",");
|
|
String[] split = experiment817WithAdHour.split(",");
|
|
|
- if ( Integer.parseInt(split[0]) <= hourOfDay && hourOfDay < Integer.parseInt(split[1]) ) {
|
|
|
|
|
|
|
+ if (Integer.parseInt(split[0]) <= hourOfDay && hourOfDay < Integer.parseInt(split[1])) {
|
|
|
isIn817Time = true;
|
|
isIn817Time = true;
|
|
|
}
|
|
}
|
|
|
- }catch (Exception e){
|
|
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
log.error("experiment817WithAdHour配置异常", e);
|
|
log.error("experiment817WithAdHour配置异常", e);
|
|
|
}
|
|
}
|
|
|
// 在 817实验时间范围 && 817实验开启
|
|
// 在 817实验时间范围 && 817实验开启
|
|
@@ -186,7 +189,7 @@ public class PredictModelServiceImpl implements PredictModelService {
|
|
|
|
|
|
|
|
// 新老实验和填充requestParam参数(老实验可能直接返回结果)
|
|
// 新老实验和填充requestParam参数(老实验可能直接返回结果)
|
|
|
Map<String, Object> result1 = getParamAndFill(requestParam, result);
|
|
Map<String, Object> result1 = getParamAndFill(requestParam, result);
|
|
|
- if (result1 != null){
|
|
|
|
|
|
|
+ if (result1 != null) {
|
|
|
result1.put("ad_predict", 1);
|
|
result1.put("ad_predict", 1);
|
|
|
return result1;
|
|
return result1;
|
|
|
}
|
|
}
|
|
@@ -198,6 +201,13 @@ public class PredictModelServiceImpl implements PredictModelService {
|
|
|
return predictStrategyBy817.predict(predictContext);
|
|
return predictStrategyBy817.predict(predictContext);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // 823熔断
|
|
|
|
|
+ if (predictStrategyBy823.in823Ab(requestParam, expCodes, hourOfDay)) {
|
|
|
|
|
+ Map<String, Object> resultMap = predictStrategyBy823.predict(predictContext);
|
|
|
|
|
+ predictStrategyBy823.addConfigExt(requestParam, resultMap);
|
|
|
|
|
+ return resultMap;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// 819只做参数填充
|
|
// 819只做参数填充
|
|
|
Map<String, Object> predictExtInfo = null;
|
|
Map<String, Object> predictExtInfo = null;
|
|
|
if (expCodes.contains("819")) {
|
|
if (expCodes.contains("819")) {
|
|
@@ -225,8 +235,6 @@ public class PredictModelServiceImpl implements PredictModelService {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
if (expCodes.contains("673")) {
|
|
if (expCodes.contains("673")) {
|
|
|
Map<String, Object> predictResult = predictStrategyBy673.predict(predictContext);
|
|
Map<String, Object> predictResult = predictStrategyBy673.predict(predictContext);
|
|
|
if (Objects.nonNull(predictResult)) {
|
|
if (Objects.nonNull(predictResult)) {
|
|
@@ -239,11 +247,11 @@ public class PredictModelServiceImpl implements PredictModelService {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
Map<String, Object> predictResult;
|
|
Map<String, Object> predictResult;
|
|
|
- if (expCodes.contains("599")){
|
|
|
|
|
|
|
+ if (expCodes.contains("599")) {
|
|
|
predictResult = predictStrategyBy599.predict(predictContext);
|
|
predictResult = predictStrategyBy599.predict(predictContext);
|
|
|
- }else if (expCodes.contains("667")){
|
|
|
|
|
|
|
+ } else if (expCodes.contains("667")) {
|
|
|
predictResult = predictStrategyBy667.predict(predictContext);
|
|
predictResult = predictStrategyBy667.predict(predictContext);
|
|
|
- }else {
|
|
|
|
|
|
|
+ } else {
|
|
|
predictResult = predictStrategyBy599.predict(predictContext);
|
|
predictResult = predictStrategyBy599.predict(predictContext);
|
|
|
}
|
|
}
|
|
|
// 填充 819 参数
|
|
// 填充 819 参数
|
|
@@ -251,7 +259,7 @@ public class PredictModelServiceImpl implements PredictModelService {
|
|
|
predictResult.putAll(predictExtInfo);
|
|
predictResult.putAll(predictExtInfo);
|
|
|
}
|
|
}
|
|
|
return predictResult;
|
|
return predictResult;
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
log.error("svc=adPredict appType={} group={} newGroup={} pqtId={}"
|
|
log.error("svc=adPredict appType={} group={} newGroup={} pqtId={}"
|
|
|
, requestParam.getAppType(), requestParam.getAbTestCode(), requestParam.getNewExpGroup(), requestParam.getPqtId(), e);
|
|
, requestParam.getAppType(), requestParam.getAbTestCode(), requestParam.getNewExpGroup(), requestParam.getPqtId(), e);
|
|
@@ -526,11 +534,11 @@ public class PredictModelServiceImpl implements PredictModelService {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if (expCodes.contains("599")){
|
|
|
|
|
|
|
+ if (expCodes.contains("599")) {
|
|
|
return predictStrategyBy599.predict(ConvertUtil.predictParam2Context(requestParam));
|
|
return predictStrategyBy599.predict(ConvertUtil.predictParam2Context(requestParam));
|
|
|
- }else if (expCodes.contains("667")){
|
|
|
|
|
|
|
+ } else if (expCodes.contains("667")) {
|
|
|
return predictStrategyBy667.predict(ConvertUtil.predictParam2Context(requestParam));
|
|
return predictStrategyBy667.predict(ConvertUtil.predictParam2Context(requestParam));
|
|
|
- }else {
|
|
|
|
|
|
|
+ } else {
|
|
|
return predictStrategyBy599.predict(ConvertUtil.predictParam2Context(requestParam));
|
|
return predictStrategyBy599.predict(ConvertUtil.predictParam2Context(requestParam));
|
|
|
}
|
|
}
|
|
|
|
|
|