소스 검색

feat:8点前出广告

zhaohaipeng 7 달 전
부모
커밋
451562cbdd

+ 4 - 8
ad-engine-commons/src/main/java/com/tzld/piaoquan/ad/engine/commons/redis/RedisTemplateConfig.java

@@ -44,13 +44,14 @@ public class RedisTemplateConfig {
         return new RedisStandaloneConfiguration();
     }
 
+    @Primary
     @Bean("algorithmRedisFactory")
-    public LettuceConnectionFactory algorithmRedisFactory(GenericObjectPoolConfig<LettucePoolingClientConfiguration> config, RedisStandaloneConfiguration algorithmRedisConfig) {
+    public LettuceConnectionFactory algorithmRedisFactory(GenericObjectPoolConfig<LettucePoolingClientConfiguration> config,@Qualifier("algorithmRedisConfig") RedisStandaloneConfiguration algorithmRedisConfig) {
         LettuceClientConfiguration lettuceClientConfiguration = LettucePoolingClientConfiguration.builder().poolConfig(config).build();
         return new LettuceConnectionFactory(algorithmRedisConfig, lettuceClientConfiguration);
     }
 
-    @Bean(name = "adRedisFactory")
+    @Bean(name = "adRedisTemplate")
     public RedisTemplate<String, String> adRedisTemplate(@Qualifier("adRedisFactory") RedisConnectionFactory adRedisFactory) {
         return buildRedisTemplateByString(adRedisFactory);
     }
@@ -62,16 +63,11 @@ public class RedisTemplateConfig {
     }
 
     @Bean("adRedisFactory")
-    public LettuceConnectionFactory adRedisFactory(GenericObjectPoolConfig<LettucePoolingClientConfiguration> config, RedisStandaloneConfiguration adRedisConfig) {
+    public LettuceConnectionFactory adRedisFactory(GenericObjectPoolConfig<LettucePoolingClientConfiguration> config,@Qualifier("adRedisConfig") RedisStandaloneConfiguration adRedisConfig) {
         LettuceClientConfiguration lettuceClientConfiguration = LettucePoolingClientConfiguration.builder().poolConfig(config).build();
         return new LettuceConnectionFactory(adRedisConfig, lettuceClientConfiguration);
     }
 
-    @Bean(name = "adRedisTemplate")
-    public RedisTemplate<String, String> getAdRedisTemplate(@Qualifier("adRedisFactory") RedisConnectionFactory algorithmRedisFactory) {
-        return buildRedisTemplateByString(algorithmRedisFactory);
-    }
-
     /**
      * 构建redisTemplate 使用string序列化
      *

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

@@ -72,6 +72,12 @@ public class PredictModelServiceImpl implements PredictModelService {
     @Value("${user.source.layer.ad.rate.exp.ids:673,676}")
     private String userSourceLayerAdRateExpIds;
 
+    @Value("${advance.show.ad.global.flag:false}")
+    private boolean advanceShowAdGlobalFlag;
+
+    @Value("${advance.show.ad.switch:true}")
+    private boolean advanceShowAdSwitch;
+
     @Autowired
     private AdRedisHelper adRedisHelper;
 
@@ -125,18 +131,14 @@ public class PredictModelServiceImpl implements PredictModelService {
                 result.put("ad_predict", 1);
                 result.put("no_ad_strategy", "no_ad_time_with_time_plan");
                 return result;
+            } else if (isAdvanceShowAd()) {
+                log.info("提前出广告");
             } else if (
-                    (!condition1 || !condition2) && 0 <= hourOfDay && hourOfDay < 8) {
-
-                String day = DateTimeFormatter.ofPattern("yyyyMMdd").format(LocalDateTime.now());
-                String redisKey = String.format(RedisPrefixEnum.ADVANCE_SHOW_AD_FLAG.getPrefix(), day);
-                String flag = adRedisHelper.get(redisKey);
-                if (StringUtils.equals("0", flag)) {
-                    // 0点到8点 && (未开启555 || 555配置不包含abcode)
-                    result.put("ad_predict", 1);
-                    result.put("no_ad_strategy", "no_ad_time_with_fixed_time");
-                    return result;
-                }
+                    (!condition1 || !condition2) && 0 <= hourOfDay && hourOfDay < 20) {
+                // 0点到8点 && (未开启555 || 555配置不包含abcode)
+                result.put("ad_predict", 1);
+                result.put("no_ad_strategy", "no_ad_time_with_fixed_time");
+                return result;
             }
             String abtestId = null;
             String abTestConfigTag = null;
@@ -372,4 +374,18 @@ public class PredictModelServiceImpl implements PredictModelService {
         }
         return false;
     }
+
+    private boolean isAdvanceShowAd() {
+        if (advanceShowAdGlobalFlag) {
+            return true;
+        }
+
+        if (!advanceShowAdSwitch) {
+            return false;
+        }
+        String day = DateTimeFormatter.ofPattern("yyyyMMdd").format(LocalDateTime.now());
+        String redisKey = String.format(RedisPrefixEnum.ADVANCE_SHOW_AD_FLAG.getPrefix(), day);
+        String flag = adRedisHelper.get(redisKey);
+        return StringUtils.equals("1", flag);
+    }
 }