//package com.trs.project.exchange;
//
//import cn.hutool.crypto.digest.DigestUtil;
//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.JSONArray;
//import com.alibaba.fastjson.JSONObject;
//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
//import com.trs.project.entity.DataRecord;
//import com.trs.project.entity.DataRecordGwyxx;
//import com.trs.project.entity.DataRecordTt;
//import com.trs.project.entity.GovDocVo;
//import com.trs.project.service.DataRecordGwyxxService;
//import com.trs.project.service.DataRecordService;
//import com.trs.project.service.DataRecordTtService;
//import com.trs.project.util.hycloud.Dispatch;
//import com.trs.project.util.hycloud.WCMServiceCaller;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.scheduling.annotation.Scheduled;
//import org.springframework.stereotype.Component;
//import org.springframework.web.client.RestTemplate;
//
//import java.text.ParseException;
//import java.text.SimpleDateFormat;
//import java.util.Date;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
//@Component
//@Slf4j
//public class CrawlingTask2 {
//
//
//    @Autowired
//    private DataRecordService dataRecordService;
//    @Autowired
//    private DataRecordTtService dataRecordTtService;
//    @Autowired
//    private DataRecordGwyxxService dataRecordGwyxxService;
//    @Autowired
//    private RestTemplate restTemplate;
//
//    @Scheduled(cron = "0 0/1 * * * ? ")
//    public void task() {
//        log.info("***********************开始增量爬取任务***********************");
//        // 发送HTTP请求并获取HTML文档
//        String url = "http://10.8.3.137:7409/crawl-qg"; //爬取地址
//        JSONObject response  = restTemplate.getForObject(url, JSONObject.class);
//        JSONArray jsonArray = response.getJSONArray("data");
//        List<GovDocVo> listItems = JSONObject.parseArray(jsonArray.toJSONString(), GovDocVo.class);
//        // 倒叙循环
//        for (int i=0; i<listItems.size(); i++) {
//            LambdaQueryWrapper<DataRecord> wrapper = new LambdaQueryWrapper<>();
//            String md5Hex = DigestUtil.md5Hex(listItems.get(i).getDOCPUBURL());
//            wrapper.eq(DataRecord::getUrl, md5Hex);
//            DataRecord selectOne = dataRecordService.getOne(wrapper);
//            if (selectOne != null) {
//                log.info("当前稿件已爬取，跳过：{}",listItems.get(i).getDOCTITLE());
//                continue;
//            }
//
//            Map<String, Object> oPostData = new HashMap<>();
//            //标题
//            oPostData.put("DocTitle", listItems.get(i).getDOCTITLE());
//            //来源
//            //oPostData.put("DOCSOURCENAME", extractedText);
//            oPostData.put("DOCSOURCENAME", "中国政府网");
//            //撰写时间
//            oPostData.put("DOCRELTIME", listItems.get(i).getDOCRELTIME());
//            //必要参数   标准文档类型数据
//            oPostData.put("DocType", 30);
//            oPostData.put("DocLink", listItems.get(i).getDOCPUBURL());
//
//            String sServiceId = "gov_webdocument";// 必填，固定参数
//            String sMethodName = "saveDocumentInWeb";// 必填，固定参数
//            oPostData.put("CurrUserName", "dev");// 必填，固定参数
//            oPostData.put("ObjectId", "0");// 必填，固定参数
//            oPostData.put("ChannelId", "3375");  //目标栏目
//            oPostData.put("serviceid", sServiceId);
//            oPostData.put("methodname", sMethodName);
//            try {
//                Dispatch result = WCMServiceCaller.Call(sServiceId, sMethodName, oPostData, true);
//                JSONObject rObject = JSON.parseObject(result.getResponseText());
//                if (rObject.get("ISSUCCESS").toString().equals("true")) {
//                    //把文章链接保存到数据库
//                    DataRecord record = new DataRecord();
//                    record.setUrl(DigestUtil.md5Hex(listItems.get(i).getDOCPUBURL()));
//                    dataRecordService.saveOrUpdate(record);
//                    /*if (true){
//                        log.info("开始自动发布");
//                        // 新增成功后 发布
//                        //处理
//                        JSONObject data = rObject.getJSONObject("DATA");
//                        String recid = data.getString("RECID");
//                        if (StrUtil.isEmpty(recid)) {
//                            log.error("推送成功，自动发布失败，请手动发布！");
//                            return;
//                        }
//                        //发布文档
//                        Map<String, Object> param = new HashMap<>();
//                        param.put("serviceid", "gov_webdocument");
//                        param.put("methodname", "normalPublish");
//                        param.put("CurrUserName", "dev");
//                        param.put("RecIDs", recid);
//                    }*/
//
//                }else {
//                    log.error("推送文档失败：{}",result.getResponseText());
//                }
//
//            } catch (Exception e) {
//                e.printStackTrace();
//            }
//        }
//
//        log.info("***********************爬取任务结束***********************");
//    }
//
//    @Scheduled(cron = "0 0/1 * * * ? ")
//    public void task_tt() {
//        log.info("***********************开始增量爬取任务***********************");
//        // 发送HTTP请求并获取HTML文档
//        String url = "http://10.8.3.137:7409/crawl-tt"; //爬取地址
//        JSONObject response  = restTemplate.getForObject(url, JSONObject.class);
//        GovDocVo govDocVo = response.getObject("data", GovDocVo.class);
//        LambdaQueryWrapper<DataRecordTt> wrapper = new LambdaQueryWrapper<>();
//        String md5Hex = DigestUtil.md5Hex(govDocVo.getDOCPUBURL());
//        wrapper.eq(DataRecordTt::getUrl, md5Hex);
//        DataRecordTt selectOne = dataRecordTtService.getOne(wrapper);
//        if (selectOne != null) {
//            log.info("当前稿件已爬取，跳过：{}",govDocVo.getDOCTITLE());
//            return;
//        }
//
//        Map<String, Object> oPostData = new HashMap<>();
//        //标题
//        oPostData.put("DocTitle", govDocVo.getDOCTITLE());
//        //来源
//        oPostData.put("DOCSOURCENAME", "中国政府网");
//        //撰写时间
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//
//        oPostData.put("DOCRELTIME", sdf.format(new Date()));
//        //必要参数   标准文档类型数据
//        oPostData.put("DocType", 30);
//        oPostData.put("DocLink", govDocVo.getDOCPUBURL());
//
//        String sServiceId = "gov_webdocument";// 必填，固定参数
//        String sMethodName = "saveDocumentInWeb";// 必填，固定参数
//        oPostData.put("CurrUserName", "dev");// 必填，固定参数
//        oPostData.put("ObjectId", "0");// 必填，固定参数
//        oPostData.put("ChannelId", "3370");  //目标栏目
//        oPostData.put("serviceid", sServiceId);
//        oPostData.put("methodname", sMethodName);
//        try {
//            Dispatch result = WCMServiceCaller.Call(sServiceId, sMethodName, oPostData, true);
//            JSONObject rObject = JSON.parseObject(result.getResponseText());
//            if (rObject.get("ISSUCCESS").toString().equals("true")) {
//                //把文章链接保存到数据库
//                DataRecordTt record = new DataRecordTt();
//                record.setUrl(DigestUtil.md5Hex(govDocVo.getDOCPUBURL()));
//                dataRecordTtService.saveOrUpdate(record);
//            }else {
//                log.error("推送文档失败：{}",result.getResponseText());
//            }
//
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        log.info("***********************爬取任务结束***********************");
//    }
//
//
//    @Scheduled(cron = "0 0/1 * * * ? ")
//    public void task_gwyxx() throws ParseException {
//        log.info("***********************开始增量爬取任务***********************");
//        // 发送HTTP请求并获取HTML文档
//        String url = "http://10.8.3.137:7409/crawl-gwyxx"; //爬取地址
//        JSONObject response  = restTemplate.getForObject(url, JSONObject.class);
//        JSONArray jsonArray = response.getJSONArray("data");
//        List<GovDocVo> listItems = JSONObject.parseArray(jsonArray.toJSONString(), GovDocVo.class);
//        // 倒叙循环
//        for (int i=0; i<listItems.size(); i++) {
//            LambdaQueryWrapper<DataRecordGwyxx> wrapper = new LambdaQueryWrapper<>();
//            String md5Hex = DigestUtil.md5Hex(listItems.get(i).getDOCPUBURL());
//            wrapper.eq(DataRecordGwyxx::getUrl, md5Hex);
//            DataRecordGwyxx selectOne = dataRecordGwyxxService.getOne(wrapper);
//            if (selectOne != null) {
//                log.info("当前稿件已爬取，跳过：{}",listItems.get(i).getDOCTITLE());
//                continue;
//            }
//
//            Map<String, Object> oPostData = new HashMap<>();
//            //标题
//            oPostData.put("DocTitle", listItems.get(i).getDOCTITLE());
//            //来源
//            //oPostData.put("DOCSOURCENAME", extractedText);
//            oPostData.put("DOCSOURCENAME", "中国政府网");
//            //撰写时间
//            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//            SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
//            oPostData.put("DOCRELTIME",  sdf.format(sdf2.parse(listItems.get(i).getDOCRELTIME())) );
//            //必要参数   标准文档类型数据
//            oPostData.put("DocType", 30);
//            oPostData.put("DocLink", listItems.get(i).getDOCPUBURL());
//
//            String sServiceId = "gov_webdocument";// 必填，固定参数
//            String sMethodName = "saveDocumentInWeb";// 必填，固定参数
//            oPostData.put("CurrUserName", "dev");// 必填，固定参数
//            oPostData.put("ObjectId", "0");// 必填，固定参数
//            oPostData.put("ChannelId", "3373");  //目标栏目
//            oPostData.put("serviceid", sServiceId);
//            oPostData.put("methodname", sMethodName);
//            try {
//                Dispatch result = WCMServiceCaller.Call(sServiceId, sMethodName, oPostData, true);
//                JSONObject rObject = JSON.parseObject(result.getResponseText());
//                if (rObject.get("ISSUCCESS").toString().equals("true")) {
//                    //把文章链接保存到数据库
//                    DataRecordGwyxx record = new DataRecordGwyxx();
//                    record.setUrl(DigestUtil.md5Hex(listItems.get(i).getDOCPUBURL()));
//                    dataRecordGwyxxService.saveOrUpdate(record);
//                }else {
//                    log.error("推送文档失败：{}",result.getResponseText());
//                }
//
//            } catch (Exception e) {
//                e.printStackTrace();
//            }
//        }
//
//        log.info("***********************爬取任务结束***********************");
//    }
//
//    @Scheduled(cron = "0 0/1 * * * ? ")
//    public void task_zzqyw() throws ParseException {
//        log.info("***********************开始增量爬取任务***********************");
//        // 发送HTTP请求并获取HTML文档
//        String url = "http://10.8.3.137:7409/crawl-zzqyw"; //爬取地址
//        JSONObject response  = restTemplate.getForObject(url, JSONObject.class);
//        JSONArray jsonArray = response.getJSONArray("data");
//        List<GovDocVo> listItems = JSONObject.parseArray(jsonArray.toJSONString(), GovDocVo.class);
//        for (int i=0; i<listItems.size(); i++) {
//            LambdaQueryWrapper<DataRecord> wrapper = new LambdaQueryWrapper<>();
//            String md5Hex = DigestUtil.md5Hex(listItems.get(i).getDOCPUBURL());
//            wrapper.eq(DataRecord::getUrl, md5Hex);
//            DataRecord selectOne = dataRecordService.getOne(wrapper);
//            if (selectOne != null) {
//                log.info("当前稿件已爬取，跳过：{}",listItems.get(i).getDOCTITLE());
//                continue;
//            }
//
//            Map<String, Object> oPostData = new HashMap<>();
//            //标题
//            oPostData.put("DocTitle", listItems.get(i).getDOCTITLE());
//            //来源
//            oPostData.put("DOCSOURCENAME", "内蒙古自治区人民政府");
//            //撰写时间
//            SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//            oPostData.put("DOCRELTIME", sdf2.format( sdf.parse(listItems.get(i).getDOCRELTIME()) ));
//            //必要参数   标准文档类型数据
//            oPostData.put("DocType", 30);
//            oPostData.put("DocLink", listItems.get(i).getDOCPUBURL());
//
//            String sServiceId = "gov_webdocument";// 必填，固定参数
//            String sMethodName = "saveDocumentInWeb";// 必填，固定参数
//            oPostData.put("CurrUserName", "dev");// 必填，固定参数
//            oPostData.put("ObjectId", "0");// 必填，固定参数
//            oPostData.put("ChannelId", "3374");  //目标栏目
//            oPostData.put("serviceid", sServiceId);
//            oPostData.put("methodname", sMethodName);
//            try {
//                Dispatch result = WCMServiceCaller.Call(sServiceId, sMethodName, oPostData, true);
//                JSONObject rObject = JSON.parseObject(result.getResponseText());
//                if (rObject.get("ISSUCCESS").toString().equals("true")) {
//                    //把文章链接保存到数据库
//                    DataRecord record = new DataRecord();
//                    record.setUrl(DigestUtil.md5Hex(listItems.get(i).getDOCPUBURL()));
//                    dataRecordService.saveOrUpdate(record);
//                }else {
//                    log.error("推送文档失败：{}",result.getResponseText());
//                }
//
//            } catch (Exception e) {
//                e.printStackTrace();
//            }
//        }
//        log.info("***********************爬取任务结束***********************");
//    }
//
//
//}
