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); } } }