|
|
@@ -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()
|