|
|
@@ -1,10 +1,13 @@
|
|
|
package com.tzld.piaoquan.ad.engine.service.score.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.ctrip.framework.apollo.spring.annotation.ApolloJsonValue;
|
|
|
import com.tzld.piaoquan.ad.engine.commons.dto.AdPlatformCreativeDTO;
|
|
|
import com.tzld.piaoquan.ad.engine.commons.param.RankRecommendRequestParam;
|
|
|
import com.tzld.piaoquan.ad.engine.commons.score.ScoreParam;
|
|
|
import com.tzld.piaoquan.ad.engine.commons.score.ScorerUtils;
|
|
|
+import com.tzld.piaoquan.ad.engine.commons.util.RootSessionIdUtil;
|
|
|
+import com.tzld.piaoquan.ad.engine.service.entity.RootSessionIdExpConfig;
|
|
|
import com.tzld.piaoquan.ad.engine.service.log.LogHubService;
|
|
|
import com.tzld.piaoquan.ad.engine.service.predict.helper.NewExpInfoHelper;
|
|
|
import com.tzld.piaoquan.ad.engine.service.predict.param.ThresholdPredictModelParam;
|
|
|
@@ -53,6 +56,8 @@ public class RankServiceImpl implements RankService {
|
|
|
private LogHubService logHubService;
|
|
|
@Autowired
|
|
|
private AdCreativeFeatureContainer adCreativeFeatureContainer;
|
|
|
+ @Autowired
|
|
|
+ private RootSessionIdUtil rootSessionIdUtil;
|
|
|
|
|
|
@Autowired
|
|
|
private RankStrategyBy680 rankStrategyBy680;
|
|
|
@@ -83,6 +88,9 @@ public class RankServiceImpl implements RankService {
|
|
|
@Value("${tactics.fm.mode.score.exp.code:679}")
|
|
|
private String tacticsAndFmModelScoreExpCode;
|
|
|
|
|
|
+ @ApolloJsonValue("${rank.root.session.id.tail.config:[]}")
|
|
|
+ private List<RootSessionIdExpConfig> rankRootSessionIdConfig;
|
|
|
+
|
|
|
public AdRankItem adItemRank(RankRecommendRequestParam request) {
|
|
|
ScoreParam scoreParam = RequestConvert.requestConvert(request);
|
|
|
RankStrategy rankStrategy = getRankStrategy(scoreParam);
|
|
|
@@ -98,7 +106,8 @@ public class RankServiceImpl implements RankService {
|
|
|
}
|
|
|
|
|
|
public RankStrategy getRankStrategy(ScoreParam scoreParam) {
|
|
|
- switch (scoreParam.getExpCode()) {
|
|
|
+ String rankStrategyCode = getRankStrategyCode(scoreParam);
|
|
|
+ switch (rankStrategyCode) {
|
|
|
case "687":
|
|
|
return ServiceBeanFactory.getBean(RankStrategyBy687.class);
|
|
|
case "679":
|
|
|
@@ -128,6 +137,28 @@ public class RankServiceImpl implements RankService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private String getRankStrategyCode(ScoreParam scoreParam) {
|
|
|
+ if (CollectionUtils.isNotEmpty(rankRootSessionIdConfig)) {
|
|
|
+ Long appType = scoreParam.getAppType();
|
|
|
+ String rootSessionId = scoreParam.getRootSessionId();
|
|
|
+ if (null != appType && null != rootSessionId) {
|
|
|
+ String tail = rootSessionIdUtil.getTail(rootSessionId);
|
|
|
+ if (null != tail) {
|
|
|
+ for (RootSessionIdExpConfig item : rankRootSessionIdConfig) {
|
|
|
+ if (null != item.getAppType() && null != item.getTail()) {
|
|
|
+ if (item.getAppType().contains(appType) && item.getTail().contains(tail)) {
|
|
|
+ if (null != item.getConfig() && item.getConfig().containsKey("rank")) {
|
|
|
+ return item.getConfig().get("rank");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return scoreParam.getExpCode();
|
|
|
+ }
|
|
|
+
|
|
|
private AdRankItem rankBy687(RankRecommendRequestParam request) {
|
|
|
ScoreParam scoreParam = RequestConvert.requestConvert(request);
|
|
|
List<AdRankItem> adRankItems = rankStrategyBy687.adItemRank(request, scoreParam);
|