|
|
@@ -14,10 +14,7 @@ import com.tzld.piaoquan.ad.engine.commons.redis.AdRedisHelper;
|
|
|
import com.tzld.piaoquan.ad.engine.commons.redis.AlgorithmRedisHelper;
|
|
|
import com.tzld.piaoquan.ad.engine.commons.score.ScoreParam;
|
|
|
import com.tzld.piaoquan.ad.engine.commons.thread.ThreadPoolFactory;
|
|
|
-import com.tzld.piaoquan.ad.engine.commons.util.DateUtils;
|
|
|
-import com.tzld.piaoquan.ad.engine.commons.util.ObjUtil;
|
|
|
-import com.tzld.piaoquan.ad.engine.commons.util.RootSessionIdExpConfig;
|
|
|
-import com.tzld.piaoquan.ad.engine.commons.util.RootSessionIdTailUtil;
|
|
|
+import com.tzld.piaoquan.ad.engine.commons.util.*;
|
|
|
import com.tzld.piaoquan.ad.engine.service.entity.*;
|
|
|
import com.tzld.piaoquan.ad.engine.service.feature.Feature;
|
|
|
import com.tzld.piaoquan.ad.engine.service.feature.FeatureService;
|
|
|
@@ -62,6 +59,9 @@ public abstract class RankStrategyBasic implements RankStrategy {
|
|
|
@ApolloJsonValue("${h5.score.suppress.customer.white:[]}")
|
|
|
private Set<Long> customerIdWhiteSet;
|
|
|
|
|
|
+ @ApolloJsonValue("${rank.strategy.cxr.zero.customer:{}}")
|
|
|
+ private Map<Long, Double> cxrZeroCustomerParams;
|
|
|
+
|
|
|
@Value("${guarantee.exp:742}")
|
|
|
protected String guaranteeExp;
|
|
|
|
|
|
@@ -1231,6 +1231,22 @@ public abstract class RankStrategyBasic implements RankStrategy {
|
|
|
return 1.0;
|
|
|
}
|
|
|
|
|
|
+ // zero cxr
|
|
|
+ protected double getCustomerZeroCxr(AdRankItem item, double smoothCxr) {
|
|
|
+ try {
|
|
|
+ if (ExtractorUtils.isDoubleEqualToZero(smoothCxr)) {
|
|
|
+ if (!org.springframework.util.CollectionUtils.isEmpty(cxrZeroCustomerParams) && !Objects.isNull(item)) {
|
|
|
+ Long customerId = item.getCustomerId();
|
|
|
+ if (null != customerId && cxrZeroCustomerParams.containsKey(customerId)) {
|
|
|
+ return cxrZeroCustomerParams.get(customerId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("getZeroCxr", e);
|
|
|
+ }
|
|
|
+ return smoothCxr;
|
|
|
+ }
|
|
|
|
|
|
protected boolean landingH5Page(AdRankItem item) {
|
|
|
if (Objects.isNull(item)) {
|