ArticlePipeline.java
1.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package com.canrd.webmagic.processor.pipeline;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.canrd.webmagic.domain.dto.ArticleDO;
import com.canrd.webmagic.service.ArticleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import us.codecraft.webmagic.ResultItems;
import us.codecraft.webmagic.Task;
import us.codecraft.webmagic.pipeline.Pipeline;
import java.util.List;
import java.util.Objects;
@Component
public class ArticlePipeline implements Pipeline {
private ArticleService articleService;
@Autowired
public void setNatureArticleService(ArticleService articleService) {
this.articleService = articleService;
}
@Override
public void process(ResultItems resultItems, Task task) {
ArticleDO articleDO = resultItems.get("article");
if (Objects.nonNull(articleDO)) {
List<ArticleDO> natureArticleDO = articleService.list(new LambdaQueryWrapper<ArticleDO>().eq(ArticleDO::getArticleCode, articleDO.getArticleCode()));
if (CollectionUtils.isNotEmpty(natureArticleDO)) {
return;
}
articleService.save(articleDO);
}
}
}