admin
2019-07-11 3824cbcaec6e6c67418d5280a53e9c2fedeef6f9
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,13 +20,9 @@
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.HongBaoService;
import com.yeshi.fanli.service.inter.hongbao.ThreeSaleGiftService;
import com.yeshi.fanli.service.inter.order.LostOrderService;
import com.yeshi.fanli.service.inter.order.OrderItemServcie;
import com.yeshi.fanli.service.inter.order.OrderProcessService;
import com.yeshi.fanli.service.inter.order.OrderService;
import com.yeshi.fanli.service.inter.order.PidOrderService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoOrderService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoWeiQuanOrderService;
@@ -32,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;
@@ -43,18 +42,6 @@
   public UpdateOrderJob() {
      System.out.println("初始化:UpdateOrderJob");
   }
   @Resource
   private OrderItemServcie orderItemServcie;
   @Resource
   private ThreeSaleGiftService threeSaleGiftService;
   @Resource
   private HongBaoService hongBaoService;
   @Resource
   private PidOrderService pidOrderService;
   @Resource
   private OrderProcessService orderProcessService;
@@ -94,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);
      }
@@ -116,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);
      }
@@ -279,7 +266,7 @@
      return orderList;
   }
   private void addOrder(List<TaoBaoOrder> orderList) {
   public void addOrder(List<TaoBaoOrder> orderList) {
      if (orderList != null)
         for (int i = 0; i < orderList.size(); i++) {
@@ -306,11 +293,8 @@
      try {
         taoBaoOrderService.addTaoBaoOrderList(orderList);
      } catch (Exception e) {
         try {
            LogHelper.errorDetailInfo(e);
         } catch (Exception e1) {
            e1.printStackTrace();
         }
         LogHelper.errorDetailInfo(e);
      }
      try {
@@ -342,11 +326,7 @@
            }
         }
      } catch (Exception e) {
         try {
            LogHelper.errorDetailInfo(e);
         } catch (Exception e1) {
            e1.printStackTrace();
         }
         LogHelper.errorDetailInfo(e);
      }
   }
@@ -413,18 +393,73 @@
      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;
      LogHelper.test("处理丢失订单");
      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 = "addorderqueue-" + lo.getOrderId();
               redisManager.removeCommonString(key);
               addOrder(taoBaoOrderList);
               LogHelper.test("自动处理淘宝订单:" + lo.getOrderId());
            }
         }
   }
   /**
    * 处理淘宝结算订单,30fen执行一次
    */
   @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);
   }
   /**
    * 13分钟更新最近13分钟的结算数据
    */
   @Scheduled(cron = "0 0/13 * * * ? ")
   public void doSettleOrdersToday() {
      if (!Constant.IS_TASK)
         return;
      // 处理3-15天前的订单,每天跑一次
      Calendar ca = Calendar.getInstance();
      long startTime = ca.getTimeInMillis() - 1000 * 60 * 5L - 1000 * 60 * 13L;
      long endTime = startTime + 1000 * 60 * 13L;
      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);
   }
}