wangyunpeng 4 月之前
父节点
当前提交
3b3ac9a514

+ 10 - 8
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/recommend/ArticleVideoAuditService.java

@@ -126,22 +126,21 @@ public class ArticleVideoAuditService {
         Page<ArticleVideoAuditListVO> result = new Page<>();
         // 根据配置判断当日是否审核完成 并 选择内容池返回
         ArticleVideoAuditListVO item = null;
-        String poolLevel = getAuditPoolLevel();
+        List<String> excludePoolLevel = new ArrayList<>();
+        String poolLevel = getAuditPoolLevel(excludePoolLevel);
         if (Objects.isNull(poolLevel)) {
             item = articleAuditMapper.articleVideoAuditNext(param.getContentId(),
                     param.getStatus(), param.getTitle(), param.getAuditAccount(), param.getSourceProducePlan(), poolLevel);
         } else {
-            for (String poolLevelStr : dailyAuditPoolCount.keySet()) {
-                if (!Objects.equals(poolLevelStr, poolLevel)) {
-                    continue;
-                }
+            do {
                 item = articleAuditMapper.articleVideoAuditNext(param.getContentId(),
                         param.getStatus(), param.getTitle(), param.getAuditAccount(), param.getSourceProducePlan(), poolLevel);
                 if (Objects.nonNull(item)) {
                     break;
                 }
-                poolLevel = poolLevel + 1;
-            }
+                excludePoolLevel.add(poolLevel);
+                poolLevel = getAuditPoolLevel(excludePoolLevel);
+            } while (Objects.nonNull(poolLevel));
         }
         if (Objects.isNull(item)) {
             return result;
@@ -152,13 +151,16 @@ public class ArticleVideoAuditService {
         return result;
     }
 
-    private String getAuditPoolLevel() {
+    private String getAuditPoolLevel(List<String> excludePoolLevel) {
         if (MapUtils.isEmpty(dailyAuditPoolCount)) {
             return null;
         }
         String dateStr = DateUtils.getCurrentDateStr("yyyyMMdd");
         for (Map.Entry<String, Integer> entry : dailyAuditPoolCount.entrySet()) {
             String poolLevel = entry.getKey();
+            if (excludePoolLevel.contains(poolLevel)) {
+                continue;
+            }
             int target = entry.getValue();
             String key = "article_audit_count_" + dateStr + "_" + poolLevel;
             int totalCount = Integer.parseInt(Optional.ofNullable(redisTemplate.opsForValue().get(key)).orElse("0"));

+ 10 - 9
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/recommend/VideoPoolAuditService.java

@@ -100,23 +100,21 @@ public class VideoPoolAuditService {
         Page<VideoPoolAuditListVO> result = new Page<>();
         // 根据配置判断当日是否审核完成 并 选择内容池返回
         PublishSingleVideoSource obj = null;
-        Integer poolLevel = getAuditPoolLevel();
+        List<String> excludePoolLevel = new ArrayList<>();
+        Integer poolLevel = getAuditPoolLevel(excludePoolLevel);
         if (Objects.isNull(poolLevel)) {
             obj = videoPoolAuditMapper.articleVideoAuditNext(param.getContentId(),
                     param.getStatus(), param.getTitle(), param.getAuditAccount(), poolLevel);
         } else {
-            for (String poolLevelStr : dailyAuditPoolCount.keySet()) {
-                ContentPoolEnum poolEnum = ContentPoolEnum.from(poolLevelStr);
-                if (!Objects.equals(poolEnum.getValue(), poolLevel)) {
-                    continue;
-                }
+            do {
                 obj = videoPoolAuditMapper.articleVideoAuditNext(param.getContentId(),
                         param.getStatus(), param.getTitle(), param.getAuditAccount(), poolLevel);
                 if (Objects.nonNull(obj)) {
                     break;
                 }
-                poolLevel = poolLevel + 1;
-            }
+                excludePoolLevel.add(ContentPoolEnum.from(poolLevel).getContentPool());
+                poolLevel = getAuditPoolLevel(excludePoolLevel);
+            } while (Objects.nonNull(poolLevel));
         }
         if (Objects.isNull(obj)) {
             return result;
@@ -126,13 +124,16 @@ public class VideoPoolAuditService {
         return result;
     }
 
-    private Integer getAuditPoolLevel() {
+    private Integer getAuditPoolLevel(List<String> excludePoolLevel) {
         if (MapUtils.isEmpty(dailyAuditPoolCount)) {
             return null;
         }
         String dateStr = DateUtils.getCurrentDateStr("yyyyMMdd");
         for (Map.Entry<String, Integer> entry : dailyAuditPoolCount.entrySet()) {
             String poolLevel = entry.getKey();
+            if (excludePoolLevel.contains(poolLevel)) {
+                continue;
+            }
             int target = entry.getValue();
             String key = "video_audit_count_" + dateStr + "_" + poolLevel;
             int totalCount = Integer.parseInt(Optional.ofNullable(redisTemplate.opsForValue().get(key)).orElse("0"));