|
@@ -7,6 +7,7 @@ import com.tzld.piaoquan.recommend.server.service.filter.strategy.BlacklistConta
|
|
|
import com.tzld.piaoquan.recommend.server.service.flowpool.FlowPoolConstants;
|
|
|
import com.tzld.piaoquan.recommend.server.service.recall.strategy.*;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.BeansException;
|
|
|
import org.springframework.context.ApplicationContext;
|
|
@@ -36,6 +37,12 @@ public class RecallService implements ApplicationContextAware {
|
|
|
@Resource
|
|
|
private BlacklistContainer blacklistContainer;
|
|
|
|
|
|
+
|
|
|
+ * 在流量池场景下,哪些appType用判断黑名单
|
|
|
+ */
|
|
|
+ @ApolloJsonValue("${content.security.recommendflowpool.blacklist.apptype.config:[]}")
|
|
|
+ private Set<Integer> blacklistAppTypeSet;
|
|
|
+
|
|
|
@PostConstruct
|
|
|
public void init() {
|
|
|
Map<String, RecallStrategy> type = applicationContext.getBeansOfType(RecallStrategy.class);
|
|
@@ -83,9 +90,11 @@ public class RecallService implements ApplicationContextAware {
|
|
|
strategies.add(strategyMap.get(SpecialRecallStrategy.class.getSimpleName()));
|
|
|
return strategies;
|
|
|
}
|
|
|
- String matchUserBlacklistTypeEnum = blacklistContainer.matchUserBlacklistTypeEnum(param.getUid(), param.getHotSceneType(), param.getCityCode(),
|
|
|
- param.getClientIp(), param.getMid(), "recommend-flow-pool", param.getAppType());
|
|
|
- boolean hitUserBlacklist = StringUtils.isNotBlank(matchUserBlacklistTypeEnum);
|
|
|
+
|
|
|
+ String matchUserBlacklistTypeEnum = blacklistContainer.matchUserBlacklistTypeEnum(param.getUid(), param.getHotSceneType(), param.getCityCode(),
|
|
|
+ param.getClientIp(), param.getMid(), "recommend-flow-pool", param.getAppType());
|
|
|
+ boolean hitUserBlacklist = StringUtils.isNotBlank(matchUserBlacklistTypeEnum);
|
|
|
+ boolean isInBlacklist = CollectionUtils.isNotEmpty(blacklistAppTypeSet) && blacklistAppTypeSet.contains(param.getAppType());
|
|
|
|
|
|
String abCode = param.getAbCode();
|
|
|
|
|
@@ -163,7 +172,7 @@ public class RecallService implements ApplicationContextAware {
|
|
|
strategies.addAll(getRegionRecallStrategy(param));
|
|
|
}
|
|
|
|
|
|
- if (!hitUserBlacklist) {
|
|
|
+ if (!hitUserBlacklist || !isInBlacklist) {
|
|
|
|
|
|
if ("60116".equals(abCode)) {
|
|
|
int lastDigit = param.getLastDigit();
|
|
@@ -277,7 +286,7 @@ public class RecallService implements ApplicationContextAware {
|
|
|
case "60115":
|
|
|
case "60117":
|
|
|
case "60118":
|
|
|
- if (!hitUserBlacklist) {
|
|
|
+ if (!hitUserBlacklist || !isInBlacklist) {
|
|
|
strategies.add(strategyMap.get(FlowPoolLastDayTopRecallStrategy.class.getSimpleName()));
|
|
|
}
|
|
|
strategies.add(strategyMap.get(SimHotVideoRecallStrategy.class.getSimpleName()));
|
|
@@ -289,7 +298,7 @@ public class RecallService implements ApplicationContextAware {
|
|
|
break;
|
|
|
case "60110":
|
|
|
strategies.add(strategyMap.get(TopGoodPerformanceVideoRecallStrategy.class.getSimpleName()));
|
|
|
- if (!hitUserBlacklist) {
|
|
|
+ if (!hitUserBlacklist || !isInBlacklist) {
|
|
|
strategies.add(strategyMap.get(FlowPoolLastDayTopRecallStrategy.class.getSimpleName()));
|
|
|
}
|
|
|
strategies.add(strategyMap.get(SimHotVideoRecallStrategy.class.getSimpleName()));
|