wangyunpeng hai 1 semana
pai
achega
cd8a35bf22

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

@@ -106,7 +106,10 @@ public class PredictModelServiceImpl implements PredictModelService {
     @Value("#{'${show.ad.whitelist.mid:}'.split(',')}")
     private Set<String> showAdWhitelistMidSet;
 
-    @Value("${experiment.817.ad.hour:0,8}")
+    @Value("#{'${show.ad.blacklist.mid:}'.split(',')}")
+    private Set<String> showAdBlacklistMidSet;
+
+    @Value("${experiment.817.ad.hour:5,8}")
     private String experiment817WithAdHour;
 
     @Autowired
@@ -128,6 +131,10 @@ public class PredictModelServiceImpl implements PredictModelService {
             result.put("ad_predict", 2);
             result.put("ad_strategy", "show_ad_whitelist");
             return result;
+        } else if (CollectionUtils.isNotEmpty(showAdBlacklistMidSet) && showAdBlacklistMidSet.contains(requestParam.getMid())) {
+            result.put("ad_predict", 1);
+            result.put("ad_strategy", "show_ad_blacklist");
+            return result;
         }
 
         try {
@@ -212,7 +219,7 @@ public class PredictModelServiceImpl implements PredictModelService {
             }else {
                 return predictStrategyBy599.predict(predictContext);
             }
-            
+
         } catch (Exception e) {
             log.error("svc=adPredict appType={} group={} newGroup={} pqtId={}"
                     , requestParam.getAppType(), requestParam.getAbTestCode(), requestParam.getNewExpGroup(), requestParam.getPqtId(), e);

+ 9 - 1
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/predict/v2/ThresholdPredictStrategy.java

@@ -4,14 +4,19 @@ package com.tzld.piaoquan.ad.engine.service.predict.v2;
 import com.alibaba.fastjson.JSONObject;
 import com.tzld.piaoquan.ad.engine.commons.util.JSONUtils;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
 
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 @Slf4j
 public abstract class ThresholdPredictStrategy extends BasicPredict {
 
+    @Value("#{'${show.ad.599.blacklist.mid:}'.split(',')}")
+    private Set<String> showAd599BlacklistMidSet;
+
     abstract Map<String, Double> thresholdConfig(PredictContext ctx);
 
     abstract List<String> genThresholdKeys(PredictContext ctx);
@@ -36,7 +41,10 @@ public abstract class ThresholdPredictStrategy extends BasicPredict {
         }
 
         Map<String, Object> rtnMap = new HashMap<>();
-        if (score < threshold) {
+        if ("599".equals(this.name()) && showAd599BlacklistMidSet.contains(ctx.getMid())) {
+            rtnMap.putAll(rtnNoAdPredict(ctx));
+            rtnMap.put("no_ad_strategy", this.name());
+        }else if (score < threshold) {
             rtnMap.putAll(rtnAdPredict(ctx));
             rtnMap.put("model", this.name());
         } else {