package com.uas.eis.task; import com.alibaba.fastjson.JSONObject; import com.uas.eis.dto.stksto.QueryTravellingMerchantDto; import com.uas.eis.sdk.dto.CustvendDTO; import com.uas.eis.service.RequestSTKService; import com.uas.eis.service.STKService; import com.uas.eis.vo.stkVo.TravellingMerchantVo; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.Date; import java.util.List; import java.util.Set; @Slf4j @Component public class STKTask { /** * 复杂查询接口请求地址 * */ @Value("${STK.complexity_query_url}") private String COMPLEXITY_QUERY_URL; /** * 获取客商信息接口编码 * */ @Value("${STK.get_travelling_merchant}") private String GET_TRAVELLING_MERCHANT; /** * 获取客商状态反馈信息 * */ @Value("${STK.get_travelling_merchant_status}") private String GET_TRAVELLING_MERCHANT_STATUS; @Autowired RequestSTKService requestSTKService; @Autowired private STKService stkService; @Scheduled(cron = "0 30 22 * * ?") public void getSellerOrders(){ log.info("开始获取深投控客商状态信息=========start============="); Date date = new Date(); QueryTravellingMerchantDto dto = new QueryTravellingMerchantDto(); dto.setCode(GET_TRAVELLING_MERCHANT); dto.setPage(1); dto.setSize(500); TravellingMerchantVo travellingMerchantVo = requestSTKService.selectTravellingMerchantList(dto,COMPLEXITY_QUERY_URL); log.info("定时任务获取深投控客商信息数据结果:{}", JSONObject.toJSONString(travellingMerchantVo)); //第一次删除STK_CUSTVEND的数据 stkService.getCustvend(travellingMerchantVo, true); if (travellingMerchantVo.getData().getHasNextPage()){ Boolean isBreak = true; while(isBreak) { dto.setPage(travellingMerchantVo.getData().getNextPage()); log.info("while循环获取客商数据,查询参数:{}",JSONObject.toJSONString(dto)); travellingMerchantVo = requestSTKService.selectTravellingMerchantList(dto, COMPLEXITY_QUERY_URL); stkService.getCustvend(travellingMerchantVo, false); if (!travellingMerchantVo.getData().getHasNextPage() || dto.getSize() > travellingMerchantVo.getData().getEndRow()){ isBreak = false; } } } log.info("定时任务获取深投控客商信息数据结果2:{}", JSONObject.toJSONString(travellingMerchantVo)); log.info("开始获取深投控客商状态信息,结束:"+((System.currentTimeMillis()-date.getTime())/1000)); } }