|
@@ -2,9 +2,12 @@ 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;
|
|
@@ -23,10 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import java.util.Date;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
|
|
|
@Service
|
|
|
public class PredictModelServiceImpl implements PredictModelService {
|
|
@@ -51,9 +51,34 @@ public class PredictModelServiceImpl implements PredictModelService {
|
|
|
|
|
|
@Value("${ad.predict.break.switch:false}")
|
|
|
private boolean adPredictBreakSwitch;
|
|
|
+ @Value("${ad.predict.break.exp.code}")
|
|
|
+ private String adPredictBreakExpCode;
|
|
|
|
|
|
public Map<String, Object> adPredict(ThresholdPredictModelRequestParam requestParam) {
|
|
|
- if (adPredictBreakSwitch) {
|
|
|
+
|
|
|
+ boolean isHit = false;
|
|
|
+
|
|
|
+ try {
|
|
|
+ JSONObject object = requestParam.getAbExpInfo();
|
|
|
+ if (object != null) {
|
|
|
+ JSONArray array = object.getJSONArray("ab_test002");
|
|
|
+ if (array != null) {
|
|
|
+ List<Map<String, String>> abExps = JSONUtils.fromJson(array.toJSONString(),
|
|
|
+ new TypeToken<List<Map<String, String>>>() {
|
|
|
+ }, Collections.emptyList());
|
|
|
+ for (Map<String, String> abExpMap : abExps) {
|
|
|
+ if (StringUtils.equals(abExpMap.get("abExpCode"), adPredictBreakExpCode)) {
|
|
|
+ isHit = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("adPredict hit error", e);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (adPredictBreakSwitch || isHit) {
|
|
|
return adPredictNew(requestParam);
|
|
|
} else {
|
|
|
return adPredictOld(requestParam);
|