yujian
2019-12-19 626d711cb15896055c13fe344eb7fcc824589715
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeOrderApiUtil.java
@@ -31,7 +31,6 @@
   public static int TK_STATUS_SUCCESS = 14;
   public static int TK_STATUS_INVALID = 13;
   private static TaoBaoPunishOrder parsePunishOrder(JSONObject data) {
      TaoBaoPunishOrder order = new TaoBaoPunishOrder();
      order.setPunishStatus(data.optString("punish_status"));
@@ -202,16 +201,15 @@
   private static TaoBaoOrderResultDTO parseTaoBaoOrderNew(String response) {
      TaoBaoOrderResultDTO dto=new TaoBaoOrderResultDTO(false, false, null, new ArrayList<>());
      TaoBaoOrderResultDTO dto = new TaoBaoOrderResultDTO(false, false, null, new ArrayList<>());
      List<TaoBaoOrder> orderList = new ArrayList<>();
      JSONArray array = null;
      JSONObject data = JSONObject.fromObject(response);
      try {
         JSONObject rootData=data.optJSONObject("tbk_order_details_get_response").optJSONObject("data");
         array =rootData .optJSONObject("results")
               .optJSONArray("publisher_order_dto");
         dto.setHasPre(   rootData.optBoolean("has_pre"));
         JSONObject rootData = data.optJSONObject("tbk_order_details_get_response").optJSONObject("data");
         array = rootData.optJSONObject("results").optJSONArray("publisher_order_dto");
         dto.setHasPre(rootData.optBoolean("has_pre"));
         dto.setPositionIndex(rootData.optString("position_index"));
         dto.setHasNext(rootData.optBoolean("has_next"));
      } catch (Exception e) {
@@ -260,11 +258,14 @@
                  taoBaoOrder.setPayment(new BigDecimal(item.optString("alipay_total_price")));
               else
                  taoBaoOrder.setPayment(new BigDecimal(0));
               taoBaoOrder.setPrice(new BigDecimal(item.optString("item_price")));
               if (StringUtil.isNullOrEmpty(item.optString("item_price")))
                  taoBaoOrder.setPrice(new BigDecimal(0));
               else
                  taoBaoOrder.setPrice(new BigDecimal(item.optString("item_price")));
               if (!StringUtil.isNullOrEmpty(item.optString("pay_price")))
                  taoBaoOrder.setSettlement(new BigDecimal(item.optString("pay_price")));
               else
                  taoBaoOrder.setSettlement(new BigDecimal(0));
                  taoBaoOrder.setSettlement(taoBaoOrder.getPayment());
               taoBaoOrder.setSettlementTime(item.optString("tk_earning_time"));
               taoBaoOrder.setShop(item.optString("seller_shop_title"));
               taoBaoOrder.setSourceMediaId(item.optString("site_id"));
@@ -396,7 +397,7 @@
      return finalResult;
   }
   /**
    * 新版本淘宝订单
    */
@@ -412,21 +413,28 @@
      return getTaoBaoOrderList(startTime, endTime, queryType, 3);
   }
   /**
    * 淘宝渠道订单
    *
    * @param startTime
    * @param endTime
    * @param queryType
    * @return
    */
   public static List<TaoBaoOrder> getTaoBaoRelationOrderList(long startTime, long endTime, int queryType) {
      return getTaoBaoOrderList(startTime, endTime, queryType, 2);
   }
   public static List<TaoBaoOrder> getTaoBaoCommonOrderList(long startTime, long endTime, int queryType) {
      return getTaoBaoOrderList(startTime, endTime, queryType, 1);
   }
   public static List<TaoBaoOrder> getTaoBaoOrderList(long startTime, long endTime, int queryType,int orderScene) {
   public static List<TaoBaoOrder> getTaoBaoOrderList(long startTime, long endTime, int queryType, int orderScene) {
      List<TaoBaoOrder> orderList = new ArrayList<>();
      // 跨度20分钟
      long span=(1000 * 60 * 20L);
      long span = (1000 * 60 * 20L);
      long jianGe = endTime - startTime;
      long page = jianGe %span==0?jianGe/span:jianGe /span+1 ;
      long page = jianGe % span == 0 ? jianGe / span : jianGe / span + 1;
      if (page == 0)
         page = 1;
      for (int i = 1; i <= page; i++) {
@@ -435,22 +443,33 @@
         if (end > endTime)
            end = endTime;
         TaoBaoOrderResultDTO dto = queryNewOrder(TimeUtil.getGernalTime(start, "yyyy-MM-dd HH:mm:ss"),
               TimeUtil.getGernalTime(end, "yyyy-MM-dd HH:mm:ss"),null, queryType, orderScene);
               TimeUtil.getGernalTime(end, "yyyy-MM-dd HH:mm:ss"), null, queryType, orderScene);
         if (dto != null)
            orderList.addAll(dto.getOrderList());
         while(dto.isHasNext())
         {
            dto=queryNewOrder(TimeUtil.getGernalTime(start, "yyyy-MM-dd HH:mm:ss"),
                  TimeUtil.getGernalTime(end, "yyyy-MM-dd HH:mm:ss"),dto.getPositionIndex(), queryType, orderScene);
         while (dto.isHasNext()) {
            dto = queryNewOrder(TimeUtil.getGernalTime(start, "yyyy-MM-dd HH:mm:ss"),
                  TimeUtil.getGernalTime(end, "yyyy-MM-dd HH:mm:ss"), dto.getPositionIndex(), queryType,
                  orderScene);
            if (dto != null)
               orderList.addAll(dto.getOrderList());
         }
      }
      return orderList;
   }
   private static TaoBaoOrderResultDTO queryNewOrder(String startTime, String endTime,String positionIndex, int queryType, int orderScene) {
   /**
    * 淘宝订单查询
    *
    * @param startTime
    * @param endTime
    * @param positionIndex
    * @param queryType
    *            1:按照订单淘客创建时间查询,2:按照订单淘客付款时间查询,3:按照订单淘客结算时间查询
    * @param orderScene
    * @return
    */
   private static TaoBaoOrderResultDTO queryNewOrder(String startTime, String endTime, String positionIndex,
         int queryType, int orderScene) {
      Map<String, String> params = new HashMap<>();
      params.put("query_type", queryType + "");
      params.put("page_size", "100");
@@ -458,7 +477,7 @@
      params.put("end_time", endTime);
      params.put("page_no", "1");
      params.put("order_scene", orderScene + "");
      if(!StringUtil.isNullOrEmpty(positionIndex))
      if (!StringUtil.isNullOrEmpty(positionIndex))
         params.put("position_index", positionIndex + "");
      params.put("method", "taobao.tbk.order.details.get");
      TaoKeAppInfo app = new TaoKeAppInfo();