MOKASZ\lw12420 1 rok temu
rodzic
commit
b51bd24ae2

+ 4 - 0
launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/article/ArticleOutController.java

@@ -33,6 +33,10 @@ public class ArticleOutController {
     private ArticleServiceInterface articleServiceInterface;
     @Autowired
     private AppletServiceInterface appletServiceInterface;
+    @GetMapping("init")
+    public Mono<Boolean> init(){
+       return articleServiceInterface.ArticleData();
+    }
     /**
      * 分类列表查询
      * @return

+ 4 - 0
launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/article/res/ArticleRes.java

@@ -43,6 +43,10 @@ public class ArticleRes {
      * 封面
      */
     String frontCover;
+    /**
+     * 类型
+     */
+    String type;
 
 
 }

+ 2 - 1
launch-admin/src/main/java/com/webflux/launchadmin/mysql/entity/article/ArticleData.java

@@ -3,6 +3,7 @@ package com.webflux.launchadmin.mysql.entity.article;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import org.springframework.data.relational.core.mapping.Table;
 
+import java.time.LocalDate;
 import java.time.ZonedDateTime;
 
 @Table("weixiu_article_data")
@@ -15,7 +16,7 @@ public record ArticleData(String primaryKey,
                           String tagName,
                           Integer status,
                           Integer type,
-                          @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") ZonedDateTime creatTime,
+                          @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDate creatTime,
                           String musicName,
                           String musicUrl,
                           String content,

+ 42 - 4
launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/article/ArticleSercieImp.java

@@ -1,6 +1,8 @@
 package com.webflux.launchadmin.mysql.service.article;
 
 
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.RandomUtil;
 import com.webflux.launchadmin.config.BaseContextHandler;
 import com.webflux.launchadmin.global.BaseException;
@@ -42,10 +44,15 @@ public class ArticleSercieImp implements ArticleServiceInterface {
     private R2dbcEntityTemplate template;
 
 
-    @Override
-    public Mono<Boolean> ArticleData(){
+   // @Scheduled(fixedDelay = 160000)
+    public Mono<Boolean> refresh(){
+        DateTime yesterday = DateUtil.yesterday();
+        String format = DateUtil.format(yesterday, "yyyy-MM-dd");
+        Query query = Query.query(Criteria.where("status").is(1)
+                .and("crawler_collection_time").greaterThan(format+" 00:00:01")
+                .and("crawler_collection_time").lessThan(format+" 23:59:59")
+        );
         int size=50;
-        Query query = Query.query(Criteria.where("status").is(1));
         return template.count(query, ArticleData.class).flatMap(fm -> {
             long page = fm % 50L;
             long page0 = fm / 50L;
@@ -61,6 +68,37 @@ public class ArticleSercieImp implements ArticleServiceInterface {
             return Mono.just(true);
         });
     }
+    @Override
+    public Mono<Boolean> ArticleData(){
+        int size=50;
+        Query query = Query.query(Criteria.where("status").is(1));
+        Mono<Long> count = template.select(Article.class).count();
+        return count.flatMap(aLong ->{
+            if(aLong==0){
+                return template.count(query, ArticleData.class).flatMap(fm -> {
+                    long page = fm % 50L;
+                    long page0 = fm / 50L;
+                    if (page > 0) {
+                        page0++;
+                    }
+                    int i = 0;
+                    while (i < page0) {
+                        // 循环体
+                        refreshInitialization(i, size).subscribe();
+                        try {
+                            Thread.sleep(10000L);
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        i++;
+                    }
+                    return Mono.just(true);
+                });
+            }else {
+                return Mono.just(true);
+            }
+        });
+    }
     public Mono<Boolean> refreshInitialization(Integer page ,Integer size){
         DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         return getArticle(page, size,Criteria.empty())
@@ -98,7 +136,6 @@ public class ArticleSercieImp implements ArticleServiceInterface {
     }
 
     public Mono<List<ArticleData>> getArticle(Integer page ,Integer size, Criteria empty){
-
         return template.select(Query.query(empty.and("status").is(1))
                 .offset((long) (page - 1) * size)
                 .limit(size), ArticleData.class)
@@ -321,6 +358,7 @@ public class ArticleSercieImp implements ArticleServiceInterface {
                     articleRes.setSendFriendsCircle(row.get("send_friends_circle", Integer.class));
                     articleRes.setAd(row.get("ad", Integer.class));
                     articleRes.setFrontCover(row.get("front_cover", String.class));
+                    articleRes.setType(row.get("type", String.class));
                     labelManagements.stream()
                             .filter(labelManagement -> Objects.nonNull(articleRes.getLabels())
                                     && articleRes.getLabels().contains(labelManagement.name())).map(LabelManagement::classificationName).findFirst()