yujian
2019-04-22 b6c37e4bc38db88a360d0f2c6099183f9bb75bdc
fanli/src/main/java/com/yeshi/fanli/job/UpdateOrderJob.java
@@ -1,6 +1,7 @@
package com.yeshi.fanli.job;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
@@ -11,6 +12,7 @@
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import com.yeshi.fanli.entity.bus.user.LostOrder;
import com.yeshi.fanli.entity.bus.user.Order;
import com.yeshi.fanli.entity.taobao.PidUser;
import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
@@ -18,7 +20,6 @@
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.common.DataMonitorService;
import com.yeshi.fanli.service.inter.hongbao.ThreeSaleGiftService;
import com.yeshi.fanli.service.inter.order.LostOrderService;
import com.yeshi.fanli.service.inter.order.OrderProcessService;
import com.yeshi.fanli.service.inter.order.OrderService;
@@ -29,6 +30,7 @@
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TaoBaoConstant;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil;
import com.yeshi.fanli.util.taobao.TaoKeOrderApiUtil;
@@ -40,10 +42,6 @@
   public UpdateOrderJob() {
      System.out.println("初始化:UpdateOrderJob");
   }
   @Resource
   private ThreeSaleGiftService threeSaleGiftService;
   @Resource
   private OrderProcessService orderProcessService;
@@ -83,11 +81,11 @@
      int page = 1;
      String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd HH:mm:ss");
      List<TaoBaoOrder> orderList = TaoKeOrderApiUtil.getTaoBaoAllOrder(startTimeStr, span, page,
            Constant.TAOBAO_AUTH_APPKEY, Constant.TAOBAO_AUTH_APPSECRET);
            TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
      while (orderList.size() == 100 * page) {
         page++;
         List<TaoBaoOrder> tempOrderList = TaoKeOrderApiUtil.getTaoBaoAllOrder(startTimeStr, span, page,
               Constant.TAOBAO_AUTH_APPKEY, Constant.TAOBAO_AUTH_APPSECRET);
               TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
         if (tempOrderList != null && tempOrderList.size() > 0)
            orderList.addAll(tempOrderList);
      }
@@ -105,11 +103,11 @@
      int page = 1;
      String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd HH:mm:ss");
      List<TaoBaoOrder> orderList = TaoKeOrderApiUtil.getTaoBaoThirdAllOrder(startTimeStr, span, page,
            Constant.TAOBAO_AUTH_APPKEY, Constant.TAOBAO_AUTH_APPSECRET);
            TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
      while (orderList.size() == 100 * page) {
         page++;
         List<TaoBaoOrder> tempOrderList = TaoKeOrderApiUtil.getTaoBaoThirdAllOrder(startTimeStr, span, page,
               Constant.TAOBAO_AUTH_APPKEY, Constant.TAOBAO_AUTH_APPSECRET);
               TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
         if (tempOrderList != null && tempOrderList.size() > 0)
            orderList.addAll(tempOrderList);
      }
@@ -402,18 +400,53 @@
      orderProcessService.weiQuanOrder(orderList);
   }
   // 处理分享商品所产生的订单(后续版本废除)
   // @Scheduled(cron = "0 0/2 * * * ? ")
   // public void doPidOrder() {
   // if (!Constant.IS_TASK)
   // return;
   // pidOrderService.doPidOrder();
   // }
   // 每6个小时执行一次
   @Scheduled(cron = "0 0 0/6 * * ? ")
   public void doLostOrder() {
      if (!Constant.IS_TASK)
         return;
      lostOrderService.processFail();
   }
   // 每2分钟执行一次
   @Scheduled(cron = "0 0/2 * * * ? ")
   public void addLostOrder() {
      if (!Constant.IS_TASK)
         return;
      List<LostOrder> list = lostOrderService.listByStateAndResultCode(LostOrder.STATE_PASS,
            LostOrder.RESULT_CODE_VERFING, 1, 50);
      if (list != null)
         for (LostOrder lo : list) {
            List<TaoBaoOrder> taoBaoOrderList = taoBaoOrderService.getTaoBaoOrderByOrderId(lo.getOrderId());
            // 清除频率限制
            if (taoBaoOrderList != null && taoBaoOrderList.size() > 0) {
               String key = "addorder-" + lo.getOrderId();
               redisManager.removeCommonString(key);
               addOrder(taoBaoOrderList);
            }
         }
   }
   /**
    * 处理淘宝结算订单,每小时执行一次
    */
   @Scheduled(cron = "30 0 0/1 * * ? ")
   public void doSettleOrders() {
      if (!Constant.IS_TASK)
         return;
      // 处理3-15天前的订单,每天跑一次
      Calendar ca = Calendar.getInstance();
      int hour = ca.get(Calendar.HOUR_OF_DAY);
      long startTime = TimeUtil.convertToTimeTemp(
            TimeUtil.getGernalTime(ca.getTimeInMillis() - 1000 * 60 * 60 * 24 * 3L, "yyyy-MM-dd"), "yyyy-MM-dd")
            - hour * (1000 * 60 * 60 * 12L);
      long endTime = startTime + 1000 * 60 * 60 * 12L;
      List<TaoBaoOrder> orderList = TaoKeOrderApiUtil.getTaoBaoSettleOrders(startTime, endTime, false);
      List<TaoBaoOrder> tempOrderList = TaoKeOrderApiUtil.getTaoBaoSettleOrders(startTime, endTime, true);
      if (tempOrderList != null && tempOrderList.size() > 0)
         orderList.addAll(tempOrderList);
      addOrder(orderList);
   }
}