STKTask.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. package com.uas.eis.task;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.uas.eis.dto.stksto.QueryTravellingMerchantDto;
  4. import com.uas.eis.sdk.dto.CustvendDTO;
  5. import com.uas.eis.service.RequestSTKService;
  6. import com.uas.eis.service.STKService;
  7. import com.uas.eis.vo.stkVo.TravellingMerchantVo;
  8. import lombok.extern.slf4j.Slf4j;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.beans.factory.annotation.Value;
  11. import org.springframework.scheduling.annotation.Scheduled;
  12. import org.springframework.stereotype.Component;
  13. import java.util.Date;
  14. import java.util.List;
  15. import java.util.Set;
  16. @Slf4j
  17. @Component
  18. public class STKTask {
  19. /**
  20. * 复杂查询接口请求地址
  21. * */
  22. @Value("${STK.complexity_query_url}")
  23. private String COMPLEXITY_QUERY_URL;
  24. /**
  25. * 获取客商信息接口编码
  26. * */
  27. @Value("${STK.get_travelling_merchant}")
  28. private String GET_TRAVELLING_MERCHANT;
  29. /**
  30. * 获取客商状态反馈信息
  31. * */
  32. @Value("${STK.get_travelling_merchant_status}")
  33. private String GET_TRAVELLING_MERCHANT_STATUS;
  34. @Autowired
  35. RequestSTKService requestSTKService;
  36. @Autowired
  37. private STKService stkService;
  38. /*@Scheduled(cron = "0 55 22 * * ?")
  39. public void getSellerOrders(){
  40. log.info("开始获取深投控客商状态信息=========start=============");
  41. Date date = new Date();
  42. QueryTravellingMerchantDto dto = new QueryTravellingMerchantDto();
  43. dto.setCode(GET_TRAVELLING_MERCHANT);
  44. dto.setPage(1);
  45. dto.setSize(500);
  46. TravellingMerchantVo travellingMerchantVo = new TravellingMerchantVo();
  47. Boolean exception = false;
  48. try{
  49. travellingMerchantVo = requestSTKService.selectTravellingMerchantList(dto,COMPLEXITY_QUERY_URL);
  50. }catch (Exception e){
  51. log.info("获取客商信息数据异常:{}",e.getMessage());
  52. exception = true;
  53. }
  54. log.info("定时任务获取深投控客商信息数据结果:{}", JSONObject.toJSONString(travellingMerchantVo));
  55. //第一次删除STK_CUSTVEND的数据
  56. stkService.getCustvend(travellingMerchantVo, true);
  57. if (travellingMerchantVo.getData().getHasNextPage()){
  58. Boolean isBreak = true;
  59. while(isBreak) {
  60. if(!exception){
  61. dto.setPage(travellingMerchantVo.getData().getNextPage());
  62. }
  63. log.info("while循环获取客商数据,查询参数:{}",JSONObject.toJSONString(dto));
  64. try{
  65. travellingMerchantVo = requestSTKService.selectTravellingMerchantList(dto, COMPLEXITY_QUERY_URL);
  66. }catch (Exception e){
  67. log.info("获取客商信息数据异常:{}",e.getMessage());
  68. exception = true;
  69. }
  70. stkService.getCustvend(travellingMerchantVo, false);
  71. if (!travellingMerchantVo.getData().getHasNextPage() || dto.getSize() > travellingMerchantVo.getData().getEndRow()){
  72. isBreak = false;
  73. }
  74. }
  75. }
  76. log.info("定时任务获取深投控客商信息数据结果2:{}", JSONObject.toJSONString(travellingMerchantVo));
  77. log.info("开始获取深投控客商状态信息,结束:"+((System.currentTimeMillis()-date.getTime())/1000));
  78. }*/
  79. @Scheduled(cron = "0 30 23 * * ?")
  80. public void getSellerOrders(){
  81. log.info("开始获取深投控客商状态信息=========start=============");
  82. Date date = new Date();
  83. QueryTravellingMerchantDto dto = new QueryTravellingMerchantDto();
  84. dto.setCode(GET_TRAVELLING_MERCHANT);
  85. dto.setPage(1);
  86. dto.setSize(500);
  87. //第一次删除STK_CUSTVEND的数据
  88. stkService.delete();
  89. //是否跳出循环
  90. Boolean isBreak = true;
  91. //是否发生异常
  92. Boolean exception = false;
  93. //异常跳过次数
  94. Integer num = 0;
  95. while(isBreak) {
  96. log.info("while循环获取客商数据,查询参数:{}",JSONObject.toJSONString(dto));
  97. TravellingMerchantVo travellingMerchantVo = new TravellingMerchantVo();
  98. try{
  99. travellingMerchantVo = requestSTKService.selectTravellingMerchantList(dto, COMPLEXITY_QUERY_URL);
  100. //获取到客商数据,数据入库
  101. stkService.getCustvend(travellingMerchantVo, false);
  102. }catch (Exception e){
  103. log.info("获取客商信息数据异常:{}",e.getMessage());
  104. exception = true;
  105. num = num +1;
  106. }
  107. if(num >=5){
  108. break;
  109. }
  110. //判断没发生异常,且是最后一页条件判断==》没有下页编码,或者返回的数据量小于每次查询的每页数量
  111. if (!exception && null != travellingMerchantVo && null != travellingMerchantVo.getData() && dto.getSize() > travellingMerchantVo.getData().getEndRow()){
  112. isBreak = false;
  113. }
  114. if(!exception){
  115. dto.setPage(travellingMerchantVo.getData().getNextPage());
  116. }
  117. log.info("定时任务获取深投控客商信息数据结果2:{}", JSONObject.toJSONString(travellingMerchantVo));
  118. }
  119. log.info("开始获取深投控客商状态信息,结束:"+((System.currentTimeMillis()-date.getTime())/1000));
  120. }
  121. }