admin
2019-07-11 3824cbcaec6e6c67418d5280a53e9c2fedeef6f9
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeOrderApiUtil.java
@@ -10,6 +10,7 @@
import com.yeshi.fanli.dto.order.OrderQuery;
import com.yeshi.fanli.dto.taobao.WeiQuanOrderResult;
import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
import com.yeshi.fanli.entity.taobao.TaoBaoPunishOrder;
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
import com.yeshi.fanli.exception.taobao.TaoKeApiException;
@@ -171,43 +172,72 @@
      return queryTaoBaoOrder(orderQuery, appKey, appSecret);
   }
   public static void punish() {
      Map<String, String> map = new HashMap<>();
      map.put("method", "taobao.tbk.dg.punish.order.get");
//      map.put("start_time", "2019-01-01 00:00:00");
      map.put("span", "1800");
      map.put("page_no", "1");
      map.put("page_size", "20");
//      map.put("violation_type", "1");
//      map.put("relation_id", "550913878");
//      map.put("start_time", "2019-01-01 00:00:00");
//      map.put("tb_trade_parent_id", "370829441412331676");
   private static TaoBaoPunishOrder parsePunishOrder(JSONObject data) {
      TaoBaoPunishOrder order = new TaoBaoPunishOrder();
      order.setPunishStatus(data.optString("punish_status"));
      order.setRelationId(data.optString("relation_id"));
      order.setSettleMonth(data.optString("settle_month"));
      order.setSpecialId(data.optString("special_id"));
      order.setTbTradeId(data.optString("tb_trade_id"));
      order.setTbTradeParentId(data.optString("tb_trade_parent_id"));
      order.setTkAdzoneId(data.optString("tk_adzone_id"));
      order.setTkPubId(data.optString("tk_pub_id"));
      order.setTkSiteId(data.optString("tk_site_id"));
      order.setTkTradeCreateTime(data.optString("tk_trade_create_time"));
      order.setViolationType(data.optString("violation_type"));
      return order;
   }
      // map.put("start_time", "2019-01-01 00:00:00");
   public static List<TaoBaoPunishOrder> getPunishOrderList(Long startTime, Long endTime) {
      List<TaoBaoPunishOrder> resultList = new ArrayList<>();
      TaoKeAppInfo app = new TaoKeAppInfo();
      app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
      app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
      try {
         JSONObject json = TaoKeBaseUtil.baseRequest(map, app);
      } catch (TaoKeApiException e) {
         e.printStackTrace();
      Map<String, String> map = new HashMap<>();
      map.put("method", "taobao.tbk.dg.punish.order.get");
      JSONObject data = new JSONObject();
      data.put("page_no", 1);
      data.put("page_size", 100);
      int sub = (int) ((endTime - startTime) / 1000);
      int span = 1800;
      int count = sub % span == 0 ? sub / span : sub / span + 1;
      for (int i = 0; i < count; i++) {
         int totalSpanOrderCount = 0;
         List<TaoBaoPunishOrder> spanOrderList = new ArrayList<>();
         long startT = startTime + i * span*1000;
         data.put("start_time", TimeUtil.getGernalTime(startT, "yyyy-MM-dd HH:mm:ss"));
         data.put("span", 1800 + "");
         map.put("af_order_option", data.toString());
         try {
            JSONObject json = TaoKeBaseUtil.baseRequest(map, app);
            JSONObject dataJson = json.optJSONObject("tbk_dg_punish_order_get_response").optJSONObject("result").optJSONObject("data");
            JSONArray array = dataJson.optJSONObject("results").optJSONArray("result");
            if (array != null)
               for (int n = 0; n < array.size(); n++) {
                  spanOrderList.add(parsePunishOrder(array.optJSONObject(n)));
               }
            totalSpanOrderCount = dataJson.optInt("total_count");
            int page = 2;
            while (totalSpanOrderCount > spanOrderList.size())// 存在下一页
            {
               data.put("page_no", page++);
               map.put("af_order_option", data.toString());
               json = TaoKeBaseUtil.baseRequest(map, app);
               dataJson = json.optJSONObject("tbk_dg_punish_order_get_response").optJSONObject("data");
               array = dataJson.optJSONArray("results");
               if (array != null)
                  for (int n = 0; n < array.size(); n++) {
                     spanOrderList.add(parsePunishOrder(array.optJSONObject(n)));
                  }
               totalSpanOrderCount = dataJson.optInt("total_count");
            }
            resultList.addAll(spanOrderList);
            System.out.println(json);
         } catch (TaoKeApiException e) {
            e.printStackTrace();
         }
      }
   }
   public static void test(String startTime, String appKey, String appSecret) {
      OrderQuery orderQuery = new OrderQuery();
      orderQuery.startTime = startTime;
      orderQuery.span = 1200;
      orderQuery.tkStatus = 1;
      orderQuery.orderQueryType = "create_time";
      orderQuery.orderScene = 1;
      orderQuery.pageNo = 1;
      orderQuery.pageSize = 100;
      List<TaoBaoOrder> list = queryTaoBaoOrder(orderQuery, appKey, appSecret);
      for (TaoBaoOrder order : list)
         System.out.println(order.getCreateTime() + "--" + order.getSettlementTime());
      return resultList;
   }
   private static List<TaoBaoOrder> queryTaoBaoOrder(OrderQuery orderQuery, String appKey, String appSecret) {