admin
2019-03-08 f5ad4a8171b20ab75eaac90c9717fe7fd801d6cd
fanli/src/main/java/com/yeshi/fanli/job/UpdateRelationAndSpecialOrderJob.java
@@ -1,6 +1,8 @@
package com.yeshi.fanli.job;
import java.util.Calendar;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -20,6 +22,7 @@
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import com.yeshi.fanli.util.taobao.TaoKeOrderApiUtil;
/**
 * 淘宝渠道订单更新
@@ -36,6 +39,9 @@
   @Resource
   private RedisManager redisManager;
   @Resource
   private UpdateOrderJob updateOrderJob;
   /**
    * 更新渠道订单(最多20分钟)
    * 
@@ -43,7 +49,7 @@
    */
   private void updateRelationOrder(long startTime) {
      String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd HH:mm:ss");
      List<TaoBaoOrder> orderList = TaoKeApiUtil.getTaoBaoRelationOrder(startTimeStr, 1, Constant.TAOBAO_AUTH_APPKEY,
      List<TaoBaoOrder> orderList = TaoKeOrderApiUtil.getTaoBaoRelationOrder(startTimeStr, 1, Constant.TAOBAO_AUTH_APPKEY,
            Constant.TAOBAO_AUTH_APPSECRET);
      addRelationAndSpecialOrder(orderList);
   }
@@ -60,10 +66,46 @@
      // 最近90天的订单
      String startTimeStr = TimeUtil.getGernalTime(System.currentTimeMillis() - 1000 * 60 * 60 * 24 * 90L,
            "yyyy-MM-dd HH:mm:ss");
      Comparator<TaoBaoOrder> cm = new Comparator<TaoBaoOrder>() {
         @Override
         public int compare(TaoBaoOrder o1, TaoBaoOrder o2) {
            long span = TimeUtil.convertToTimeTemp(o2.getCreateTime(), "yyyy-MM-dd HH:mm:ss")
                  - TimeUtil.convertToTimeTemp(o1.getCreateTime(), "yyyy-MM-dd HH:mm:ss");
            if (span > 0)
               return 1;
            else if (span == 0)
               return 0;
            else
               return -1;
         }
      };
      for (int p = fromPage; p < toPage; p++) {
         List<TaoBaoOrder> orderList = TaoKeApiUtil.getTaoBaoRelationOrder(startTimeStr, p,
         // 爬取2方订单
         List<TaoBaoOrder> orderList = TaoKeOrderApiUtil.getTaoBaoRelationOrder(startTimeStr, p,
               Constant.TAOBAO_AUTH_APPKEY, Constant.TAOBAO_AUTH_APPSECRET);
         addRelationAndSpecialOrder(orderList);
         Collections.sort(orderList, cm);
         List<TaoBaoOrder> commonOrderList = UpdateOrderJob.getCommonOrder(
               TimeUtil.convertToTimeTemp(orderList.get(orderList.size() - 1).getCreateTime(),
                     "yyyy-MM-dd HH:mm:ss"),
               TimeUtil.convertToTimeTemp(orderList.get(0).getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
         List<TaoBaoOrder> list = UpdateOrderJob.mixTaoBaoOrder(commonOrderList, orderList);
         Collections.sort(list, cm);
         addRelationAndSpecialOrder(list);
         orderList = TaoKeOrderApiUtil.getTaoBaoRelationThirdOrder(startTimeStr, p, Constant.TAOBAO_AUTH_APPKEY,
               Constant.TAOBAO_AUTH_APPSECRET);
         Collections.sort(orderList, cm);
         // 爬取三方订单
         commonOrderList = UpdateOrderJob.getThirdCommonOrder(
               TimeUtil.convertToTimeTemp(orderList.get(orderList.size() - 1).getCreateTime(),
                     "yyyy-MM-dd HH:mm:ss"),
               TimeUtil.convertToTimeTemp(orderList.get(0).getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
         list = UpdateOrderJob.mixTaoBaoOrder(commonOrderList, orderList);
         Collections.sort(list, cm);
         addRelationAndSpecialOrder(list);
      }
   }
@@ -86,7 +128,11 @@
    */
   private void updateSpecialOrder(long startTime) {
      String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd HH:mm:ss");
      List<TaoBaoOrder> orderList = TaoKeApiUtil.getTaoBaoSpecialOrder(startTimeStr, 1, Constant.TAOBAO_AUTH_APPKEY,
      List<TaoBaoOrder> orderList = TaoKeOrderApiUtil.getTaoBaoSpecialOrder(startTimeStr, 1, Constant.TAOBAO_AUTH_APPKEY,
            Constant.TAOBAO_AUTH_APPSECRET);
      addRelationAndSpecialOrder(orderList);
      orderList = TaoKeOrderApiUtil.getTaoBaoSpecialThirdOrder(startTimeStr, 1, Constant.TAOBAO_AUTH_APPKEY,
            Constant.TAOBAO_AUTH_APPSECRET);
      addRelationAndSpecialOrder(orderList);
   }
@@ -98,12 +144,51 @@
    * @param toPage-结束页码(每页20条数据)
    */
   private void updateSpecialOrder(int fromPage, int toPage) {
      // 最近90天的订单
      String startTimeStr = TimeUtil.getGernalTime(System.currentTimeMillis() - 1000 * 60 * 60 * 24 * 90L,
            "yyyy-MM-dd HH:mm:ss");
      Comparator<TaoBaoOrder> cm = new Comparator<TaoBaoOrder>() {
         @Override
         public int compare(TaoBaoOrder o1, TaoBaoOrder o2) {
            long span = TimeUtil.convertToTimeTemp(o2.getCreateTime(), "yyyy-MM-dd HH:mm:ss")
                  - TimeUtil.convertToTimeTemp(o1.getCreateTime(), "yyyy-MM-dd HH:mm:ss");
            if (span > 0)
               return 1;
            else if (span == 0)
               return 0;
            else
               return -1;
         }
      };
      for (int p = fromPage; p < toPage; p++) {
         List<TaoBaoOrder> orderList = TaoKeApiUtil.getTaoBaoSpecialOrder(startTimeStr, p,
         // 爬取2方订单
         List<TaoBaoOrder> orderList = TaoKeOrderApiUtil.getTaoBaoSpecialOrder(startTimeStr, p,
               Constant.TAOBAO_AUTH_APPKEY, Constant.TAOBAO_AUTH_APPSECRET);
         addRelationAndSpecialOrder(orderList);
         Collections.sort(orderList, cm);
         List<TaoBaoOrder> commonOrderList = UpdateOrderJob.getCommonOrder(
               TimeUtil.convertToTimeTemp(orderList.get(orderList.size() - 1).getCreateTime(),
                     "yyyy-MM-dd HH:mm:ss"),
               TimeUtil.convertToTimeTemp(orderList.get(0).getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
         List<TaoBaoOrder> list = UpdateOrderJob.mixTaoBaoOrder(commonOrderList, orderList);
         Collections.sort(list, cm);
         addRelationAndSpecialOrder(list);
         // 爬取三方订单
         orderList = TaoKeOrderApiUtil.getTaoBaoSpecialThirdOrder(startTimeStr, p, Constant.TAOBAO_AUTH_APPKEY,
               Constant.TAOBAO_AUTH_APPSECRET);
         Collections.sort(orderList, cm);
         commonOrderList = UpdateOrderJob.getThirdCommonOrder(
               TimeUtil.convertToTimeTemp(orderList.get(orderList.size() - 1).getCreateTime(),
                     "yyyy-MM-dd HH:mm:ss"),
               TimeUtil.convertToTimeTemp(orderList.get(0).getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
         list = UpdateOrderJob.mixTaoBaoOrder(commonOrderList, orderList);
         Collections.sort(list, cm);
         addRelationAndSpecialOrder(list);
      }
   }