NatureArticlePipeline.java 1.28 KB
package com.canrd.webmagic.processor.pipeline;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.canrd.webmagic.domain.dto.NatureArticleDO;
import com.canrd.webmagic.service.NatureArticleService;
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.Objects;

@Component
public class NatureArticlePipeline implements Pipeline {

    private NatureArticleService natureArticleService;

    @Autowired
    public void setNatureArticleService(NatureArticleService natureArticleService) {
        this.natureArticleService = natureArticleService;
    }

    @Override
    public void process(ResultItems resultItems, Task task) {
        NatureArticleDO articleDO = resultItems.get("article");
        if (Objects.nonNull(articleDO)) {
            NatureArticleDO natureArticleDO = natureArticleService.getOne(new LambdaQueryWrapper<NatureArticleDO>().eq(NatureArticleDO::getArticleCode, articleDO.getArticleCode()));
            if (Objects.nonNull(natureArticleDO)) {
                return;
            }
            natureArticleService.save(articleDO);
        }
    }
}