admin
2019-03-13 69bee82b81626b82b7f39f0e459e4f56b1699b51
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;
@@ -19,7 +21,7 @@
import com.yeshi.fanli.util.StringUtil;
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;
/**
 * 淘宝渠道订单更新
@@ -37,18 +39,6 @@
   private RedisManager redisManager;
   /**
    * 更新渠道订单(最多20分钟)
    *
    * @param startTime
    */
   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,
            Constant.TAOBAO_AUTH_APPSECRET);
      addRelationAndSpecialOrder(orderList);
   }
   /**
    * 更新渠道订单
    * 
    * @param fromPage
@@ -56,75 +46,18 @@
    * @param toPage
    *            结束页码(每页100条数据)
    */
   private void updateRelationOrder(int fromPage, int toPage) {
      // 最近90天的订单
      String startTimeStr = TimeUtil.getGernalTime(System.currentTimeMillis() - 1000 * 60 * 60 * 24 * 90L,
            "yyyy-MM-dd HH:mm:ss");
      for (int p = fromPage; p < toPage; p++) {
         List<TaoBaoOrder> orderList = TaoKeApiUtil.getTaoBaoRelationOrder(startTimeStr, p,
               Constant.TAOBAO_AUTH_APPKEY, Constant.TAOBAO_AUTH_APPSECRET);
         addRelationAndSpecialOrder(orderList);
         orderList = TaoKeApiUtil.getTaoBaoRelationThirdOrder(startTimeStr, p, Constant.TAOBAO_AUTH_APPKEY,
               Constant.TAOBAO_AUTH_APPSECRET);
         addRelationAndSpecialOrder(orderList);
      }
   }
   /**
    * 按天更新
    *
    * @param day
    */
   private void updateRelationOrderByDay(String day) {
      long timestamp = TimeUtil.convertToTimeTemp(day, "yyyy-MM-dd");
      for (int i = 0; i < 72; i++) {
         updateRelationOrder(timestamp + 1000 * 60 * 20L * i);
      }
   }
   /**
    * 更新会员订单(最多20分钟)
    *
    * @param startTime
    */
   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,
            Constant.TAOBAO_AUTH_APPSECRET);
      addRelationAndSpecialOrder(orderList);
      orderList = TaoKeApiUtil.getTaoBaoSpecialThirdOrder(startTimeStr, 1, Constant.TAOBAO_AUTH_APPKEY,
            Constant.TAOBAO_AUTH_APPSECRET);
      addRelationAndSpecialOrder(orderList);
   }
   /**
    * 更新会员订单()
    *
    * @param fromPage-开始页码
    * @param toPage-结束页码(每页20条数据)
    */
   private void updateSpecialOrder(int fromPage, int toPage) {
      String startTimeStr = TimeUtil.getGernalTime(System.currentTimeMillis() - 1000 * 60 * 60 * 24 * 90L,
            "yyyy-MM-dd HH:mm:ss");
      for (int p = fromPage; p < toPage; p++) {
         List<TaoBaoOrder> orderList = TaoKeApiUtil.getTaoBaoSpecialOrder(startTimeStr, p,
               Constant.TAOBAO_AUTH_APPKEY, Constant.TAOBAO_AUTH_APPSECRET);
         addRelationAndSpecialOrder(orderList);
      }
   }
   /**
    * 按天更新
    *
    * @param day
    */
   private void updateSpecialOrderByDay(String day) {
      long timestamp = TimeUtil.convertToTimeTemp(day, "yyyy-MM-dd");
      for (int i = 0; i < 72; i++) {
         updateSpecialOrder(timestamp + 1000 * 60 * 20L * i);
      }
   private void updateRelationAndSpecialOrder(long startTime, long endTime) {
      List<TaoBaoOrder> list = TaoKeOrderApiUtil.getSpecialOrder(startTime, endTime);
      List<TaoBaoOrder> list1 = TaoKeOrderApiUtil.getThirdSpecialOrder(startTime, endTime);
      List<TaoBaoOrder> list2 = TaoKeOrderApiUtil.getRelationOrder(startTime, endTime);
      List<TaoBaoOrder> list3 = TaoKeOrderApiUtil.getThirdRelationOrder(startTime, endTime);
      if (list1 != null && list1.size() > 0)
         list.addAll(list1);
      if (list2 != null && list2.size() > 0)
         list.addAll(list2);
      if (list3 != null && list3.size() > 0)
         list.addAll(list3);
      addRelationAndSpecialOrder(list);
   }
   private void addRelationAndSpecialOrder(List<TaoBaoOrder> orderList) {
@@ -180,34 +113,32 @@
   public void doJob1() {
      if (!Constant.IS_TASK)
         return;
      // 爬取最近3页数据
      updateRelationOrder(1, 3);
      updateSpecialOrder(1, 3);
      // 爬取近20分钟的数据
      long endTime = System.currentTimeMillis();
      updateRelationAndSpecialOrder(endTime - 1000 * 60 * 20L, endTime);
   }
   // 每5分钟更新(3-10页数据)
   // 每5分钟更新(近1天数据)
   @Scheduled(cron = "0 0/5 * * * ? ")
   public void doJob2() {
      if (!Constant.IS_TASK)
         return;
      updateRelationOrder(3, 11);
      updateSpecialOrder(3, 11);
      long endTime = System.currentTimeMillis();
      updateRelationAndSpecialOrder(endTime - 1000 * 60 * 60 * 24L, endTime);
   }
   // 每个小时更新10-1000页数据
   // 每个小时更新
   @Scheduled(cron = "0 0 0/1 * * ? ")
   public void doJob3() {
      if (!Constant.IS_TASK)
         return;
      Calendar calendar = Calendar.getInstance();
      int h = calendar.get(Calendar.HOUR_OF_DAY);
      // 每个小时更新100页数据
      int fromPage = h * 100;
      if (fromPage <= 0)
         fromPage = 11;
      int toPage = h * 100 + 100;
      updateRelationOrder(fromPage, toPage);
      updateSpecialOrder(fromPage, toPage);
//      Calendar calendar = Calendar.getInstance();
//      int h = calendar.get(Calendar.HOUR_OF_DAY);
//      // 每个小时更新100页数据
//      int fromPage = h * 100;
//      if (fromPage <= 0)
//         fromPage = 11;
//      int toPage = h * 100 + 100;
   }
}