ArticlePipeline.java 1.29 KB
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);
        }
    }
}