|  | @@ -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.flowpool.FlowPoolConstants;
 | 
											
												
													
														|  |  import com.tzld.piaoquan.recommend.server.service.recall.strategy.*;
 |  |  import com.tzld.piaoquan.recommend.server.service.recall.strategy.*;
 | 
											
												
													
														|  |  import lombok.extern.slf4j.Slf4j;
 |  |  import lombok.extern.slf4j.Slf4j;
 | 
											
												
													
														|  | 
 |  | +import org.apache.commons.collections.CollectionUtils;
 | 
											
												
													
														|  |  import org.apache.commons.lang3.StringUtils;
 |  |  import org.apache.commons.lang3.StringUtils;
 | 
											
												
													
														|  |  import org.springframework.beans.BeansException;
 |  |  import org.springframework.beans.BeansException;
 | 
											
												
													
														|  |  import org.springframework.context.ApplicationContext;
 |  |  import org.springframework.context.ApplicationContext;
 | 
											
										
											
												
													
														|  | @@ -36,6 +37,12 @@ public class RecallService implements ApplicationContextAware {
 | 
											
												
													
														|  |      @Resource
 |  |      @Resource
 | 
											
												
													
														|  |      private BlacklistContainer blacklistContainer;
 |  |      private BlacklistContainer blacklistContainer;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 在流量池场景下,哪些appType不用判断黑名单
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    @ApolloJsonValue("${content.security.recommendflowpool.whitelist.apptype.config:[]}")
 | 
											
												
													
														|  | 
 |  | +    private Set<Integer> contentSecurityWhitelistAppTypeSet;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |      @PostConstruct
 |  |      @PostConstruct
 | 
											
												
													
														|  |      public void init() {
 |  |      public void init() {
 | 
											
												
													
														|  |          Map<String, RecallStrategy> type = applicationContext.getBeansOfType(RecallStrategy.class);
 |  |          Map<String, RecallStrategy> type = applicationContext.getBeansOfType(RecallStrategy.class);
 | 
											
										
											
												
													
														|  | @@ -83,9 +90,14 @@ public class RecallService implements ApplicationContextAware {
 | 
											
												
													
														|  |              strategies.add(strategyMap.get(SpecialRecallStrategy.class.getSimpleName()));
 |  |              strategies.add(strategyMap.get(SpecialRecallStrategy.class.getSimpleName()));
 | 
											
												
													
														|  |              return strategies;
 |  |              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);
 |  | 
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        // 白名单里的appType不判断黑名单
 | 
											
												
													
														|  | 
 |  | +        boolean hitUserBlacklist = false;
 | 
											
												
													
														|  | 
 |  | +        if (CollectionUtils.isEmpty(contentSecurityWhitelistAppTypeSet) || !contentSecurityWhitelistAppTypeSet.contains(param.getAppType())) {
 | 
											
												
													
														|  | 
 |  | +            String matchUserBlacklistTypeEnum = blacklistContainer.matchUserBlacklistTypeEnum(param.getUid(), param.getHotSceneType(), param.getCityCode(),
 | 
											
												
													
														|  | 
 |  | +                    param.getClientIp(), param.getMid(), "recommend-flow-pool", param.getAppType());
 | 
											
												
													
														|  | 
 |  | +            hitUserBlacklist = StringUtils.isNotBlank(matchUserBlacklistTypeEnum);
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          String abCode = param.getAbCode();
 |  |          String abCode = param.getAbCode();
 | 
											
												
													
														|  |          //1:通过“产品”控制“召回子策略”
 |  |          //1:通过“产品”控制“召回子策略”
 |