瀏覽代碼

getNearDaysRootSourceIds

wangyunpeng 1 月之前
父節點
當前提交
b9fae1826a

+ 2 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/mapper/crawler/CrawlerBaseMapper.java

@@ -50,4 +50,6 @@ public interface CrawlerBaseMapper {
     List<Article> getByGhIdInAndPublishTimestampLessThanAndTypeEquals(List<String> ghIds, Long publishTimestamp, String type);
 
     List<String> getNeedResetUserGroupGhIds();
+
+    List<String> getNearDaysRootSourceIds(String rootSourceIdPrefix, Long beforeDateStart);
 }

+ 12 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/recommend/ArticleService.java

@@ -1,5 +1,6 @@
 package com.tzld.longarticle.recommend.server.service.recommend;
 
+import com.alibaba.fastjson.JSONObject;
 import com.google.common.util.concurrent.ThreadFactoryBuilder;
 import com.tzld.longarticle.recommend.server.common.CommonThreadPoolExecutor;
 import com.tzld.longarticle.recommend.server.common.enums.StatusEnum;
@@ -379,4 +380,15 @@ public class ArticleService {
     public String getCooperateArticleIdByRootSourceId(String rootSourceId) {
         return longArticleBaseMapper.getCooperateArticleIdByRootSourceId(rootSourceId);
     }
+
+    public List<String> getNearDaysRootSourceIds(String rootSourceIdPrefix, Integer days) {
+        Long beforeDateStart = DateUtils.getBeforeDayStart(days);
+        List<String> rootSourceIdLists = crawlerBaseMapper.getNearDaysRootSourceIds(rootSourceIdPrefix, beforeDateStart);
+        List<String> result = new ArrayList<>();
+        rootSourceIdLists.forEach(rootSourceIdList -> {
+            List<String> list = JSONObject.parseArray(rootSourceIdList, String.class);
+            result.addAll(list);
+        });
+        return result;
+    }
 }

+ 7 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/web/recommend/ArticleController.java

@@ -8,6 +8,8 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 @RestController
 @RequestMapping("/article")
 @Slf4j
@@ -27,6 +29,11 @@ public class ArticleController {
         return CommonResponse.success(service.getArticleByRootSourceId(rootSourceId));
     }
 
+    @GetMapping("/getNearDaysRootSourceIds")
+    public CommonResponse<List<String>> getNearDaysRootSourceIds(@RequestParam String rootSourceIdPrefix, @RequestParam Integer days) {
+        return CommonResponse.success(service.getNearDaysRootSourceIds(rootSourceIdPrefix, days));
+    }
+
     @GetMapping("/cooperate/getArticleIdByRootSourceId")
     public CommonResponse<String> getCooperateArticleIdByRootSourceId(@RequestParam String rootSourceId) {
         return CommonResponse.success(service.getCooperateArticleIdByRootSourceId(rootSourceId));

+ 7 - 0
long-article-recommend-service/src/main/resources/mapper/crawler/CrawlerBaseMapper.xml

@@ -107,4 +107,11 @@
               GROUP BY gzh_id, user_group_id having count(1) > 10000) t
     </select>
 
+    <select id="getNearDaysRootSourceIds" resultType="java.lang.String">
+        select root_source_id_list
+        from official_articles_v2
+        where publish_timestamp > #{publishTimestamp}
+        and root_source_id_list like CONCAT('%', #{rootSourceIdPrefix}, '%')
+    </select>
+
 </mapper>