//package com.trs.project.exchange;
//
//import com.alibaba.fastjson.JSONArray;
//import com.alibaba.fastjson.JSONObject;
//import com.trs.project.entity.*;
//import com.trs.project.service.*;
//import com.trs.project.util.Log;
//import com.trs.project.util.RSAUtils;
//import com.xxl.job.core.context.XxlJobHelper;
//import com.xxl.job.core.handler.annotation.XxlJob;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.http.HttpEntity;
//import org.springframework.http.HttpHeaders;
//import org.springframework.http.MediaType;
//import org.springframework.http.converter.StringHttpMessageConverter;
//import org.springframework.stereotype.Component;
//import org.springframework.util.LinkedMultiValueMap;
//import org.springframework.util.MultiValueMap;
//import org.springframework.util.StringUtils;
//import org.springframework.web.client.RestTemplate;
//
//import java.io.IOException;
//import java.nio.charset.StandardCharsets;
//import java.text.ParseException;
//import java.text.SimpleDateFormat;
//import java.util.Date;
//import java.util.List;
//
///**
// * XxlJob开发示例（Bean模式）
// *
// * 开发步骤：
// *      1、任务开发：在Spring Bean实例中，开发Job方法；
// *      2、注解配置：为Job方法添加注解 "@XxlJob(value="自定义jobhandler名称", init = "JobHandler初始化方法", destroy = "JobHandler销毁方法")"，注解value值对应的是调度中心新建任务的JobHandler属性的值。
// *      3、执行日志：需要通过 "XxlJobHelper.log" 打印执行日志；
// *      4、任务结果：默认任务结果为 "成功" 状态，不需要主动设置；如有诉求，比如设置任务结果为失败，可以通过 "XxlJobHelper.handleFail/handleSuccess" 自主设置任务结果；
// *
// * @author xuxueli 2019-12-11 21:52:51
// */
//@Component
//public class SampleXxlJob2 {
//    private static Logger logger = LoggerFactory.getLogger(SampleXxlJob2.class);
//
//    @Autowired
//    private RestTemplate restTemplate;
//    @Autowired
//    private GcNoticeandfileService gcNoticeandfileService;//1、工程-招标公告与资格预审公告【GC_NOTICEANDFILE】
//    @Autowired
//    private GcBidopenrecordService gcBidopenrecordService;//3、工程-开标记录【GC_BIDOPENRECORD】
//    @Autowired
//    private GcBidcandidatePostService gcBidcandidatePostService;//4、工程-中标候选人公示【GC_BIDCANDIDATE_POST】
//    @Autowired
//    private GcBidpublicityService gcBidpublicityService;//5、工程-中标结果公示【GC_BIDPUBLICITY】
//    @Autowired
//    private GcProjectService gcProjectService;//6、工程-项目【GC_PROJECT】
//    @Autowired
//    private GcTenderprojectService gcTenderprojectService;//7、工程-招标项目【GC_TENDERPROJECT】
//    @Autowired
//    private GcTenderbidfileService gcTenderbidfileService;//8、工程-招标文件/招标文件澄清与修改【Tenderbidfile
//    @Autowired
//    private GcPubContractService gcPubContractService;//9、工程-合同签订【GC_PUB_CONTRACT】
//    @Autowired
//    private GcPerformanceService gcPerformanceService;//10、工程-合同履约【GC_PERFORMANCE】
//    @Autowired
//    private GcBidExceptioNoticeService gcBidExceptioNoticeService;//11、工程-招标异常公告【GC_BID_EXCEPTIO_NOTICE】
//    @Autowired
//    private GcAttachmentService gcAttachmentService;//12、工程-附件集结构【GC_ATTACHMENT】
//
//    /**
//     * 1、工程-招标公告与资格预审公告【GC_NOTICEANDFILE】
//     */
//    @XxlJob("task_GC_NOTICEANDFILE")
//    public void GC_NOTICEANDFILE() throws Exception {
//        detailMethod();
//    }
//
//    /**
//     * 2、工程-招标异常公告【GC_BID_EXCEPTIO_NOTICE】
//     */
///*    @XxlJob("task_GC_BID_EXCEPTIO_NOTICE")
//    public void GC_BID_EXCEPTIO_NOTICE() throws Exception {
//        detailMethod();
//    }*/
//
//    /**
//     * 3、工程-开标记录【GC_BIDOPENRECORD】
//     */
//    @XxlJob("task_GC_BIDOPENRECORD")
//    public void GC_BIDOPENRECORD() throws Exception {
//        detailMethod();
//    }
//
//    /**
//     * 4、工程-中标候选人公示【GC_BIDCANDIDATE_POST】
//     */
//    @XxlJob("task_GC_BIDCANDIDATE_POST")
//    public void GC_BIDCANDIDATE_POST() throws Exception {
//        detailMethod();
//    }
//
//    /**
//     * 5、工程-中标结果公示【GC_BIDPUBLICITY】
//     */
//    @XxlJob("task_GC_BIDPUBLICITY")
//    public void GC_BIDPUBLICITY() throws Exception {
//        detailMethod();
//    }
//
//    /**
//     * 6、工程-项目【GC_PROJECT】
//     */
//    @XxlJob("task_GC_PROJECT")
//    public void GC_PROJECT() throws Exception {
//        detailMethod();
//    }
//
//    /**
//     * 7、工程-招标项目【GC_TENDERPROJECT】
//     */
//    @XxlJob("task_GC_TENDERPROJECT")
//    public void GC_TENDERPROJECT() throws Exception {
//        detailMethod();
//    }
//
//    /**
//     * 8、工程-招标文件/招标文件澄清与修改【GC_TENDERBIDFILE】
//     */
//    @XxlJob("task_GC_TENDERBIDFILE")
//    public void GC_TENDERBIDFILE() throws Exception {
//        detailMethod();
//    }
//
//    /**
//     * 9、工程-合同签订【GC_PUB_CONTRACT】
//     */
//    @XxlJob("task_GC_PUB_CONTRACT")
//    public void GC_PUB_CONTRACT() throws Exception {
//        detailMethod();
//    }
//
//    /**
//     * 10、工程-合同履约【GC_PERFORMANCE】
//     */
//    @XxlJob("task_GC_PERFORMANCE")
//    public void GC_PERFORMANCE() throws Exception {
//        detailMethod();
//    }
//
//    /**
//     * 11、工程-招标异常公告【GC_BID_EXCEPTIO_NOTICE】
//     */
//    @XxlJob("task_GC_BID_EXCEPTIO_NOTICE")
//    public void GC_BID_EXCEPTIO_NOTICE() throws Exception {
//        detailMethod();
//    }
//
//    /**
//     * 12、工程-附件集结构【GC_ATTACHMENT】
//     */
//    @XxlJob("task_GC_ATTACHMENT")
//    public void GC_ATTACHMENT() throws Exception {
//        detailMethod();
//    }
//
//    private void detailMethod(){
//        System.out.println("进来了==================");
//        String param = XxlJobHelper.getJobParam();
//        XxlJobHelper.log("XXL-JOB, start="+param);
//        if (param==null || param.trim().length()==0) {
//            XxlJobHelper.log("param["+ param +"] invalid.");
//            XxlJobHelper.handleFail();
//            return;
//        }
//        String setDateStr = "";
//        if(param.contains(";")){
//            setDateStr = param.substring(param.lastIndexOf(";")+1);
//        }
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 设置日期格式
//        long startDate = 0;
//        try {
//            if(!StringUtils.isEmpty(setDateStr)){
//                startDate = sdf.parse(setDateStr).getTime();
//            }else{
//                String startDateStr = Log.getTxtData("time.txt");
//                startDate = sdf.parse(startDateStr).getTime();
//
//                Date afterDate = new Date(startDate + 30*60*1000);//30分钟后的时间
//                Log.Logger("time.txt",sdf.format(afterDate));
//            }
//            System.out.println(startDate);
//        } catch (IOException | ParseException e) {
//            throw new RuntimeException(e);
//        }
//
//        Integer total = 0;
//        try{
//            MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
//            params.add("tableName", "cityNews");
//            params.add("appId", 15);
//            params.add("appHost", "59.196.106.28");
//            params.add("push", 0);
//            params.add("distribution", 0);
//            params.add("access_token", token);
//            JSONObject jsonObject1 = httpGetMethod("http://10.8.3.137:7401/adminNmg/api/down.do?platform_code=e64975be&table_name="+param+"&page=1&page_size=1&startTime='"+startDate+"' ");//&startTime=1676540529
//            total = jsonObject1.getInteger("total");
//
//        }catch (Exception e){
//            e.printStackTrace();
//        }
//        //Integer pages = total/20+1;
//        int pages = (int) Math.ceil((double) total / 20);
//        for(int i = pages; i <= pages ; i++){
//            if(i<=0)i=1;
//            try{
//                JSONObject jsonObject = httpGetMethod("http://10.8.3.137:7401/adminNmg/api/down.do?platform_code=e64975be&table_name="+param+"&page="+i+"&page_size=20&startTime='"+startDate+"' ");//&startTime=1676600701
//                String data = RSAUtils.decrypt(jsonObject.getString("data"));
//                JSONArray jsonArray = JSONArray.parseArray(data);
//                //数据入库
//                updateDatas(param,jsonArray);
//            }catch (Exception e){
//                e.printStackTrace();
//            }
//        }
//    }
//
//
//    //http方法
//    public JSONObject httpGetMethod(String uri, MultiValueMap<String, Object> params){
//        restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
//        //JSONObject response = restTemplate.getForObject(uri,JSONObject.class);
//
//        HttpHeaders headers = new HttpHeaders();
//        // 以表单的方式提交
//        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
//        //将请求头部和参数合成一个请求
//        HttpEntity<MultiValueMap<String, String>> entity = new HttpEntity(params, headers);
//
//        ResponseEntity<String> response = restTemplate.exchange(uri, HttpMethod.POST, entity, String.class);
//        JSONObject response = restTemplate.
//        return response;
//    }
//
//    private void updateDatas(String param , JSONArray jsonArray ) {
//        switch (param)
//        {
//            case "GC_NOTICEANDFILE"://1、工程-招标公告与资格预审公告【GC_NOTICEANDFILE】
//                List<GcNoticeandfile> listGcNoticeandfile = JSONObject.parseArray(jsonArray.toJSONString(), GcNoticeandfile.class);
//                logger.info(param+"：数据入库="+20);
//                XxlJobHelper.log(param+"：数据入库="+20);
//                gcNoticeandfileService.saveOrUpdateBatch(listGcNoticeandfile);
////                for (GcNoticeandfile gcNoticeandfile : listGcNoticeandfile) {
////                    if(gcNoticeandfile.getNoticeName()!=null&&!gcNoticeandfile.getNoticeName().equals("")){
////                        logger.info(param+"：数据入库="+20);
////                        XxlJobHelper.log(param+"：数据入库="+20);
////                        gcNoticeandfileService.saveOrUpdateBatch(listGcNoticeandfile);
////                    }
////                }
//                break;
//            case "GC_BIDOPENRECORD"://3、工程-开标记录【GC_BIDOPENRECORD】
//                List<GcBidopenrecord> listGcBidopenrecord = JSONObject.parseArray(jsonArray.toJSONString(), GcBidopenrecord.class);
//                logger.info(param+"：数据入库="+20);
//                System.out.println("=============公共资源："+listGcBidopenrecord.get(0).getNoticeName());
//                XxlJobHelper.log(param+"：数据入库="+20);
//                gcBidopenrecordService.saveOrUpdateBatch(listGcBidopenrecord);
//                break;
//            case "GC_BIDCANDIDATE_POST"://4、工程-中标候选人公示【GC_BIDCANDIDATE_POST】
//                List<GcBidcandidatePost> listGcBidcandidatePost = JSONObject.parseArray(jsonArray.toJSONString(), GcBidcandidatePost.class);
//                logger.info(param+"：数据入库="+20);
//                XxlJobHelper.log(param+"：数据入库="+20);
//                gcBidcandidatePostService.saveOrUpdateBatch(listGcBidcandidatePost);
//                break;
//            case "GC_BIDPUBLICITY"://5、工程-中标结果公示【GC_BIDPUBLICITY】
//                List<GcBidpublicity> listGcBidpublicity = JSONObject.parseArray(jsonArray.toJSONString(), GcBidpublicity.class);
//                logger.info(param+"：数据入库="+20);
//                XxlJobHelper.log(param+"：数据入库="+20);
//                gcBidpublicityService.saveOrUpdateBatch(listGcBidpublicity);
//                break;
//            case "GC_PROJECT"://6、工程-项目【GC_PROJECT】
//                List<GcProject> listGcProject = JSONObject.parseArray(jsonArray.toJSONString(), GcProject.class);
//                logger.info(param+"：数据入库="+20);
//                XxlJobHelper.log(param+"：数据入库="+20);
//                gcProjectService.saveOrUpdateBatch(listGcProject);
//                break;
//            case "GC_TENDERPROJECT"://7、工程-招标项目【GC_TENDERPROJECT】
//                List<GcTenderproject> listGcTenderproject = JSONObject.parseArray(jsonArray.toJSONString(), GcTenderproject.class);
//                logger.info(param+"：数据入库="+20);
//                XxlJobHelper.log(param+"：数据入库="+20);
//                gcTenderprojectService.saveOrUpdateBatch(listGcTenderproject);
//                break;
//            case "GC_TENDERBIDFILE":////8、工程-招标文件/招标文件澄清与修改【GC_TENDERPROJECT】
//                List<GcTenderbidfile> listGcTenderbidfile = JSONObject.parseArray(jsonArray.toJSONString(), GcTenderbidfile.class);
//                logger.info(param+"：数据入库="+20);
//                XxlJobHelper.log(param+"：数据入库="+20);
//                gcTenderbidfileService.saveOrUpdateBatch(listGcTenderbidfile);
//                break;
//            case "GC_PUB_CONTRACT"://9、工程-合同签订【GC_PUB_CONTRACT】
//                List<GcPubContract> listGcPubContract = JSONObject.parseArray(jsonArray.toJSONString(), GcPubContract.class);
//                logger.info(param+"：数据入库="+20);
//                XxlJobHelper.log(param+"：数据入库="+20);
//                gcPubContractService.saveOrUpdateBatch(listGcPubContract);
//                break;
//            case "GC_PERFORMANCE"://10、工程-合同履约【GC_PERFORMANCE】
//                List<GcPerformance> listGcPerformance = JSONObject.parseArray(jsonArray.toJSONString(), GcPerformance.class);
//                logger.info(param+"：数据入库="+20);
//                XxlJobHelper.log(param+"：数据入库="+20);
//                gcPerformanceService.saveOrUpdateBatch(listGcPerformance);
//                break;
//            case "GC_BID_EXCEPTIO_NOTICE"://11、工程-招标异常公告【GC_BID_EXCEPTIO_NOTICE】
//                List<GcBidExceptioNotice> listGcBidExceptioNotice = JSONObject.parseArray(jsonArray.toJSONString(), GcBidExceptioNotice.class);
//                logger.info(param+"：数据入库="+20);
//                XxlJobHelper.log(param+"：数据入库="+20);
//                gcBidExceptioNoticeService.saveOrUpdateBatch(listGcBidExceptioNotice);
//                break;
//            case "GC_ATTACHMENT"://12、工程-附件集结构【GC_ATTACHMENT】
//                List<GcAttachment> listGcAttachment = JSONObject.parseArray(jsonArray.toJSONString(), GcAttachment.class);
//                logger.info(param+"：数据入库="+20);
//                XxlJobHelper.log(param+"：数据入库="+20);
//                gcAttachmentService.saveOrUpdateBatch(listGcAttachment);
//                break;
//            default:
//        }
//    }
//
//}
