From f71ae35c5b20e51c5fba91284cc436076c9c73df Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 03 十一月 2020 19:28:19 +0800 Subject: [PATCH] 淘宝订单备份 --- fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeOrderApiUtil.java | 929 ++++++++++++++++++++++++++++++++------------------------- 1 files changed, 515 insertions(+), 414 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeOrderApiUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeOrderApiUtil.java index b44b957..b72cc03 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeOrderApiUtil.java +++ b/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeOrderApiUtil.java @@ -1,5 +1,6 @@ package com.yeshi.fanli.util.taobao; +import java.io.Serializable; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; @@ -10,10 +11,7 @@ import com.yeshi.fanli.dto.order.OrderQuery; import com.yeshi.fanli.dto.taobao.TaoBaoOrderResultDTO; import com.yeshi.fanli.dto.taobao.WeiQuanOrderResult; -import com.yeshi.fanli.entity.taobao.TaoBaoOrder; -import com.yeshi.fanli.entity.taobao.TaoBaoOrderGoods; -import com.yeshi.fanli.entity.taobao.TaoBaoPunishOrder; -import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder; +import com.yeshi.fanli.entity.taobao.*; import com.yeshi.common.entity.taobao.TaoKeAppInfo; import com.yeshi.fanli.exception.taobao.TaoKeApiException; import com.yeshi.fanli.log.LogHelper; @@ -28,432 +26,535 @@ //娣樺疂瀹PI鎺ュ彛 public class TaoKeOrderApiUtil { - public static int TK_STATUS_ALL = 1; - public static int TK_STATUS_SETTLEMENT = 3; - public static int TK_STATUS_PAY = 12; - public static int TK_STATUS_SUCCESS = 14; - public static int TK_STATUS_INVALID = 13; + public static int TK_STATUS_ALL = 1; + public static int TK_STATUS_SETTLEMENT = 3; + public static int TK_STATUS_PAY = 12; + 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")); - 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; - } + 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; + } - 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); - 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(); - } - } - return resultList; - } + 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); + 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(); + } + } + return resultList; + } - private static TaoBaoOrderResultDTO parseTaoBaoOrderNew(String response) { + 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")); - dto.setPositionIndex(rootData.optString("position_index")); - dto.setHasNext(rootData.optBoolean("has_next")); - } catch (Exception e) { - return dto; - } + List<Serializable> 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")); + dto.setPositionIndex(rootData.optString("position_index")); + dto.setHasNext(rootData.optBoolean("has_next")); + } catch (Exception e) { + return dto; + } - if (array != null) - for (int i = 0; i < array.size(); i++) { + if (array != null) + for (int i = 0; i < array.size(); i++) { - JSONObject item = array.optJSONObject(i); - try { - TaoBaoOrder taoBaoOrder = new TaoBaoOrder(); - taoBaoOrder.setAdPositionId(item.optString("adzone_id")); - taoBaoOrder.setAdPositionName(item.optString("adzone_name")); - taoBaoOrder.setAuctionId(item.optLong("item_id")); - taoBaoOrder.setClassName(item.optString("item_category_name")); - taoBaoOrder.setClickTime(item.optString("click_time")); - taoBaoOrder.setPayTime(item.optString("tb_paid_time")); - taoBaoOrder.setCount(item.optInt("item_num")); - taoBaoOrder.setCreateTime(item.optString("tk_create_time")); - if (!StringUtil.isNullOrEmpty(item.optString("total_commission_fee"))) - taoBaoOrder.seteIncome(new BigDecimal(item.optString("total_commission_fee"))); - else - taoBaoOrder.seteIncome(new BigDecimal(0)); + JSONObject item = array.optJSONObject(i); + try { + TaoBaoOrder taoBaoOrder = new TaoBaoOrder(); + taoBaoOrder.setAdPositionId(item.optString("adzone_id")); + taoBaoOrder.setAdPositionName(item.optString("adzone_name")); + taoBaoOrder.setAuctionId(item.optLong("item_id")); + taoBaoOrder.setClassName(item.optString("item_category_name")); + taoBaoOrder.setClickTime(item.optString("click_time")); + taoBaoOrder.setPayTime(item.optString("tb_paid_time")); + taoBaoOrder.setCount(item.optInt("item_num")); + taoBaoOrder.setCreateTime(item.optString("tk_create_time")); + if (!StringUtil.isNullOrEmpty(item.optString("total_commission_fee"))) + taoBaoOrder.seteIncome(new BigDecimal(item.optString("total_commission_fee"))); + else + taoBaoOrder.seteIncome(new BigDecimal(0)); - if (!StringUtil.isNullOrEmpty(item.optString("pub_share_pre_fee"))) - taoBaoOrder.setEstimate(new BigDecimal(item.optString("pub_share_pre_fee"))); - else - taoBaoOrder.setEstimate(new BigDecimal(0)); - taoBaoOrder.setiRatio(new BigDecimal(item.optString("income_rate"))); - taoBaoOrder.setLatestUpdateTime(null); - taoBaoOrder.setManagerWangWang(null); - taoBaoOrder.setOrderBy(null); - taoBaoOrder.setOrderId(item.optString("trade_parent_id")); - if (item.optInt("tk_status") == 12) - taoBaoOrder.setOrderState("璁㈠崟浠樻"); - else if (item.optInt("tk_status") == 3) - taoBaoOrder.setOrderState("璁㈠崟缁撶畻"); - else if (item.optInt("tk_status") == 13) - taoBaoOrder.setOrderState("璁㈠崟澶辨晥"); - else if (item.optInt("tk_status") == 14) - taoBaoOrder.setOrderState("璁㈠崟鎴愬姛"); + if (!StringUtil.isNullOrEmpty(item.optString("pub_share_pre_fee"))) + taoBaoOrder.setEstimate(new BigDecimal(item.optString("pub_share_pre_fee"))); + else + taoBaoOrder.setEstimate(new BigDecimal(0)); + taoBaoOrder.setiRatio(new BigDecimal(item.optString("income_rate"))); + taoBaoOrder.setLatestUpdateTime(null); + taoBaoOrder.setManagerWangWang(null); + taoBaoOrder.setOrderBy(null); + taoBaoOrder.setOrderId(item.optString("trade_parent_id")); + if (item.optInt("tk_status") == 12) + taoBaoOrder.setOrderState("璁㈠崟浠樻"); + else if (item.optInt("tk_status") == 3) + taoBaoOrder.setOrderState("璁㈠崟缁撶畻"); + else if (item.optInt("tk_status") == 13) + taoBaoOrder.setOrderState("璁㈠崟澶辨晥"); + else if (item.optInt("tk_status") == 14) + taoBaoOrder.setOrderState("璁㈠崟鎴愬姛"); - taoBaoOrder.setOrderType(item.optString("order_type")); - if (!StringUtil.isNullOrEmpty(item.optString("alipay_total_price"))) - taoBaoOrder.setPayment(new BigDecimal(item.optString("alipay_total_price"))); - else - taoBaoOrder.setPayment(new BigDecimal(0)); - 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(taoBaoOrder.getPayment()); - taoBaoOrder.setSettlementTime(item.optString("tk_earning_time")); - taoBaoOrder.setShop(item.optString("seller_shop_title")); - taoBaoOrder.setSourceMediaId(item.optString("site_id")); - taoBaoOrder.setSourceMediaName(item.optString("site_name")); - taoBaoOrder.setsRatio(null); - if (!StringUtil.isNullOrEmpty(item.optString("subsidy_fee")))// 琛ヨ创閲戦 - taoBaoOrder.setSubsidy(new BigDecimal(item.optString("subsidy_fee"))); - if (!StringUtil.isNullOrEmpty(item.optString("subsidy_rate"))) - taoBaoOrder.setSubsidyRatio(new BigDecimal(item.optString("subsidy_rate"))); - taoBaoOrder.setSubsidyType(item.optString("subsidy_type")); - taoBaoOrder.setTechnologySupportPercent(null); - taoBaoOrder.setThirdService(null); - taoBaoOrder.setTitle(item.optString("item_title")); - if (!StringUtil.isNullOrEmpty(item.optString("total_commission_fee"))) - taoBaoOrder.setTkMoney(new BigDecimal(item.optString("total_commission_fee"))); - else - taoBaoOrder.setTkMoney(new BigDecimal(0)); - if (!StringUtil.isNullOrEmpty(item.optString("commission_rate"))) - taoBaoOrder.setTkRate(new BigDecimal(item.optString("commission_rate"))); - else if (!StringUtil.isNullOrEmpty(item.optString("total_commission_rate"))) - taoBaoOrder.setTkRate(new BigDecimal(item.optString("total_commission_rate"))); - taoBaoOrder.setTransactionPlatform(item.optString("terminal_type")); - taoBaoOrder.setRelationId(item.optString("relation_id")); - taoBaoOrder.setSpecialId(item.optString("special_id")); - taoBaoOrder.setTradeId(item.optString("trade_id")); - // 瑙f瀽鍟嗗搧淇℃伅 - TaoBaoOrderGoods goods = new TaoBaoOrderGoods(); - goods.setCategoryName(item.optString("item_category_name")); - goods.setCreateTime(new Date()); - goods.setGoodsId(item.optLong("item_id")); - goods.setImg(item.optString("item_img")); - goods.setLink(item.optString("item_link")); - goods.setPrice(item.optString("item_price")); - goods.setTitle(item.optString("item_title")); - goods.setTradeId(item.optString("trade_id")); - if (goods.getImg() != null && !goods.getImg().startsWith("http")) { - goods.setImg("http:" + goods.getImg()); - } + taoBaoOrder.setOrderType(item.optString("order_type")); + if (!StringUtil.isNullOrEmpty(item.optString("alipay_total_price"))) + taoBaoOrder.setPayment(new BigDecimal(item.optString("alipay_total_price"))); + else + taoBaoOrder.setPayment(new BigDecimal(0)); + 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(taoBaoOrder.getPayment()); + taoBaoOrder.setSettlementTime(item.optString("tk_earning_time")); + taoBaoOrder.setShop(item.optString("seller_shop_title")); + taoBaoOrder.setSourceMediaId(item.optString("site_id")); + taoBaoOrder.setSourceMediaName(item.optString("site_name")); + taoBaoOrder.setsRatio(null); + if (!StringUtil.isNullOrEmpty(item.optString("subsidy_fee")))// 琛ヨ创閲戦 + taoBaoOrder.setSubsidy(new BigDecimal(item.optString("subsidy_fee"))); + if (!StringUtil.isNullOrEmpty(item.optString("subsidy_rate"))) + taoBaoOrder.setSubsidyRatio(new BigDecimal(item.optString("subsidy_rate"))); + taoBaoOrder.setSubsidyType(item.optString("subsidy_type")); + taoBaoOrder.setTechnologySupportPercent(null); + taoBaoOrder.setThirdService(null); + taoBaoOrder.setTitle(item.optString("item_title")); + if (!StringUtil.isNullOrEmpty(item.optString("total_commission_fee"))) + taoBaoOrder.setTkMoney(new BigDecimal(item.optString("total_commission_fee"))); + else + taoBaoOrder.setTkMoney(new BigDecimal(0)); + if (!StringUtil.isNullOrEmpty(item.optString("commission_rate"))) + taoBaoOrder.setTkRate(new BigDecimal(item.optString("commission_rate"))); + else if (!StringUtil.isNullOrEmpty(item.optString("total_commission_rate"))) + taoBaoOrder.setTkRate(new BigDecimal(item.optString("total_commission_rate"))); + taoBaoOrder.setTransactionPlatform(item.optString("terminal_type")); + taoBaoOrder.setRelationId(item.optString("relation_id")); + taoBaoOrder.setSpecialId(item.optString("special_id")); + taoBaoOrder.setTradeId(item.optString("trade_id")); + // 瑙f瀽鍟嗗搧淇℃伅 + TaoBaoOrderGoods goods = new TaoBaoOrderGoods(); + goods.setCategoryName(item.optString("item_category_name")); + goods.setCreateTime(new Date()); + goods.setGoodsId(item.optLong("item_id")); + goods.setImg(item.optString("item_img")); + goods.setLink(item.optString("item_link")); + goods.setPrice(item.optString("item_price")); + goods.setTitle(item.optString("item_title")); + goods.setTradeId(item.optString("trade_id")); + if (goods.getImg() != null && !goods.getImg().startsWith("http")) { + goods.setImg("http:" + goods.getImg()); + } - taoBaoOrder.setGoods(goods); - orderList.add(taoBaoOrder); - } catch (Exception e) { - try { - LogHelper.errorDetailInfo(e, "璁㈠崟鍙蜂俊鎭�:" + item.toString(), "璁㈠崟瑙f瀽鍑洪敊"); - } catch (Exception e1) { - } - } - } - dto.setOrderList(orderList); - return dto; - } - - public static WeiQuanOrderResult getTaoBaoRelationWeiQuanOrderList(Date startTime, int searchType, int page, - boolean third) { - - return getRelationAndSpecialWeiQuanOrderList(startTime, searchType, page, third, 1); - } - - public static WeiQuanOrderResult getTaoBaoSpecialWeiQuanOrderList(Date startTime, int searchType, int page, - boolean third) { - - return getRelationAndSpecialWeiQuanOrderList(startTime, searchType, page, third, 2); - } - - private static WeiQuanOrderResult getRelationAndSpecialWeiQuanOrderList(Date startTime, int searchType, int page, - boolean third, int bizType) { - WeiQuanOrderResult finalResult = new WeiQuanOrderResult(); - - List<TaoBaoWeiQuanOrder> list = new ArrayList<>(); - finalResult.orderList = list; - Map<String, String> map = new HashMap<>(); - map.put("method", "taobao.tbk.relation.refund"); - - JSONObject option = new JSONObject(); - option.put("search_type", searchType); - option.put("refund_type", third ? 2 : 1); - option.put("start_time", TimeUtil.getGernalTime(startTime.getTime(), "yyyy-MM-dd HH:mm:ss")); - option.put("page_no", page); - option.put("page_size", 100); - option.put("biz_type", bizType); - map.put("search_option", option.toString()); - - TaoKeAppInfo app = new TaoKeAppInfo(); - app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY); - app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET); - try { - JSONObject json = TaoKeBaseUtil.baseRequest(map, app); - JSONObject results = json.optJSONObject("tbk_relation_refund_response").optJSONObject("result") - .optJSONObject("data").optJSONObject("results"); - if (results == null) - return finalResult; - - int count = results.optInt("total_count"); - finalResult.totalCount = count; - JSONArray array = results.optJSONArray("result"); - if (array != null) - for (int i = 0; i < array.size(); i++) { - JSONObject item = array.optJSONObject(i); - TaoBaoWeiQuanOrder order = new TaoBaoWeiQuanOrder(); - order.setGoodsName(item.optString("tb_auction_title")); - BigDecimal fanMoney = new BigDecimal(0); - if (!StringUtil.isNullOrEmpty(item.optString("tk_subsidy_fee_refund3rd_pub"))) { - fanMoney = fanMoney.add(new BigDecimal(item.optString("tk_subsidy_fee_refund3rd_pub"))); - } - if (!StringUtil.isNullOrEmpty(item.optString("tk_commission_fee_refund3rd_pub"))) { - fanMoney = fanMoney.add(new BigDecimal(item.optString("tk_commission_fee_refund3rd_pub"))); - } - if (!StringUtil.isNullOrEmpty(item.optString("tk_subsidy_fee_refund_pub"))) { - fanMoney = fanMoney.add(new BigDecimal(item.optString("tk_subsidy_fee_refund_pub"))); - } - if (!StringUtil.isNullOrEmpty(item.optString("tk_commission_fee_refund_pub"))) { - fanMoney = fanMoney.add(new BigDecimal(item.optString("tk_commission_fee_refund_pub"))); - } - - if (fanMoney.compareTo(new BigDecimal(0)) == 0) - fanMoney = null; - - order.setFanMoney(fanMoney); - order.setJieSuanTime(new Date( - TimeUtil.convertToTimeTemp(item.optString("earning_time"), "yyyy-MM-dd HH:mm:ss"))); - if (!StringUtil.isNullOrEmpty(item.optString("refund_fee"))) - order.setMoney(new BigDecimal(item.optString("refund_fee"))); - order.setOrderId(item.optString("tb_trade_parent_id")); - order.setOrderItemId(item.optString("tb_trade_id")); - int state = item.optInt("refund_status"); - if (state == 4) - order.setState("缁存潈鍒涘缓"); - else if (state == 2) - order.setState("缁存潈鎴愬姛"); - else if (state == 3) - order.setState("缁存潈澶辫触"); - - if (!StringUtil.isNullOrEmpty(item.optString("tk_refund_suit_time"))) - order.setWeiQuanFinishTime(new Date(TimeUtil - .convertToTimeTemp(item.optString("tk_refund_suit_time"), "yyyy-MM-dd HH:mm:ss"))); - order.setWeiQuanTime(new Date( - TimeUtil.convertToTimeTemp(item.optString("tk_refund_time"), "yyyy-MM-dd HH:mm:ss"))); - list.add(order); - } - - } catch (Exception e) { - e.printStackTrace(); - } - - return finalResult; - } - - /** - * 鏂扮増鏈窐瀹濊鍗� - */ - - /** - * 鑾峰彇娣樺疂浼氬憳杩愯惀璁㈠崟 - * - * @param startTime - * @param endTime - * @return - */ - public static List<TaoBaoOrder> getTaoBaoSpecialOrderList(long startTime, long endTime, int queryType) { - 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) { - List<TaoBaoOrder> orderList = new ArrayList<>(); - // 璺ㄥ害20鍒嗛挓 - long span = (1000 * 60 * 20L); - long jianGe = endTime - startTime; - long page = jianGe % span == 0 ? jianGe / span : jianGe / span + 1; - if (page == 0) - page = 1; - for (int i = 1; i <= page; i++) { - long start = startTime + (i - 1) * span; - long end = start + span; - 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); - if (dto != null) - orderList.addAll(dto.getOrderList()); - while (dto!=null&&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; - } - - /** - * 娣樺疂璁㈠崟鏌ヨ - * - * @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"); - params.put("start_time", startTime); - params.put("end_time", endTime); - params.put("page_no", "1"); - params.put("order_scene", orderScene + ""); - if (!StringUtil.isNullOrEmpty(positionIndex)) - params.put("position_index", positionIndex + ""); - params.put("method", "taobao.tbk.order.details.get"); - TaoKeAppInfo app = new TaoKeAppInfo(); - app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY); - app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET); - try { - JSONObject json = TaoKeBaseUtil.baseRequest(params, app); - if (Constant.IS_TEST) - System.out.println(json); - return parseTaoBaoOrderNew(json.toString()); - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } + taoBaoOrder.setGoods(goods); + orderList.add(taoBaoOrder); + } catch (Exception e) { + try { + LogHelper.errorDetailInfo(e, "璁㈠崟鍙蜂俊鎭�:" + item.toString(), "璁㈠崟瑙f瀽鍑洪敊"); + } catch (Exception e1) { + } + } + } + dto.setOrderList(orderList); + return dto; + } - @Deprecated - public static List<TaoBaoOrder> queryTaoBaoOrder(OrderQuery orderQuery, String appKey, String appSecret) { + private static TaoBaoOrderResultDTO parseTaoBaoOrderForBackUp(String response) { - Map<String, String> map = new HashMap<>(); - map.put("method", "taobao.tbk.order.get"); - map.put("fields", - "tb_trade_parent_id,tb_trade_id,num_iid,item_title,item_num,price,pay_price,seller_nick,seller_shop_title,commission,commission_rate,unid,create_time,earning_time,tk_status,tk3rd_pub_id,tk3rd_site_id,tk3rd_adzone_id,relation_id,tb_trade_parent_id,tb_trade_id,num_iid,item_title,item_num,price,pay_price,seller_nick,seller_shop_title,commission,commission_rate,unid,create_time,earning_time,tk3rd_pub_id,tk3rd_site_id,tk3rd_adzone_id,special_id,click_time,relation_id,special_id"); - if (orderQuery.startTime != null) - map.put("start_time", orderQuery.startTime); - if (orderQuery.span != null) - map.put("span", orderQuery.span + ""); - map.put("page_no", orderQuery.pageNo + ""); - map.put("page_size", orderQuery.pageSize + ""); + TaoBaoOrderResultDTO dto = new TaoBaoOrderResultDTO(false, false, null, new ArrayList<>()); - if (orderQuery.tkStatus != null) - map.put("tk_status", orderQuery.tkStatus + ""); - if (orderQuery.orderQueryType != null) - map.put("order_query_type", orderQuery.orderQueryType); - if (orderQuery.orderScene != null) - map.put("order_scene", orderQuery.orderScene + ""); + List<Serializable> 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")); + dto.setPositionIndex(rootData.optString("position_index")); + dto.setHasNext(rootData.optBoolean("has_next")); + } catch (Exception e) { + return dto; + } - if (orderQuery.orderCountType != null) - map.put("order_count_type", orderQuery.orderCountType + ""); + if (array != null) + for (int i = 0; i < array.size(); i++) { + JSONObject item = array.optJSONObject(i); + try { + String tradeId = item.optString("trade_id"); + String orderId = item.optString("trade_parent_id"); + TaoBaoOrderBackUp orderBackUp = new TaoBaoOrderBackUp(); + orderBackUp.setContent(item.toString()); + orderBackUp.setTradeId(tradeId); + orderBackUp.setOrderId(orderId); + orderList.add(orderBackUp); + } catch (Exception e) { + try { + LogHelper.errorDetailInfo(e, "璁㈠崟鍙蜂俊鎭�:" + item.toString(), "璁㈠崟瑙f瀽鍑洪敊"); + } catch (Exception e1) { + } + } + } + dto.setOrderList(orderList); + return dto; + } - TaoKeAppInfo app = new TaoKeAppInfo(); - app.setAppKey(appKey); - app.setAppSecret(appSecret); - try { - JSONObject json = TaoKeBaseUtil.baseRequest(map, app); - System.out.println(json); - } catch (TaoKeApiException e) { - e.printStackTrace(); - } - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - e.printStackTrace(); - } + public static WeiQuanOrderResult getTaoBaoRelationWeiQuanOrderList(Date startTime, int searchType, int page, + boolean third) { - return null; - } + return getRelationAndSpecialWeiQuanOrderList(startTime, searchType, page, third, 1); + } + + public static WeiQuanOrderResult getTaoBaoSpecialWeiQuanOrderList(Date startTime, int searchType, int page, + boolean third) { + + return getRelationAndSpecialWeiQuanOrderList(startTime, searchType, page, third, 2); + } + + private static WeiQuanOrderResult getRelationAndSpecialWeiQuanOrderList(Date startTime, int searchType, int page, + boolean third, int bizType) { + WeiQuanOrderResult finalResult = new WeiQuanOrderResult(); + + List<TaoBaoWeiQuanOrder> list = new ArrayList<>(); + finalResult.orderList = list; + Map<String, String> map = new HashMap<>(); + map.put("method", "taobao.tbk.relation.refund"); + + JSONObject option = new JSONObject(); + option.put("search_type", searchType); + option.put("refund_type", third ? 2 : 1); + option.put("start_time", TimeUtil.getGernalTime(startTime.getTime(), "yyyy-MM-dd HH:mm:ss")); + option.put("page_no", page); + option.put("page_size", 100); + option.put("biz_type", bizType); + map.put("search_option", option.toString()); + + TaoKeAppInfo app = new TaoKeAppInfo(); + app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY); + app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET); + try { + JSONObject json = TaoKeBaseUtil.baseRequest(map, app); + JSONObject results = json.optJSONObject("tbk_relation_refund_response").optJSONObject("result") + .optJSONObject("data").optJSONObject("results"); + if (results == null) + return finalResult; + + int count = results.optInt("total_count"); + finalResult.totalCount = count; + JSONArray array = results.optJSONArray("result"); + if (array != null) + for (int i = 0; i < array.size(); i++) { + JSONObject item = array.optJSONObject(i); + TaoBaoWeiQuanOrder order = new TaoBaoWeiQuanOrder(); + order.setGoodsName(item.optString("tb_auction_title")); + BigDecimal fanMoney = new BigDecimal(0); + if (!StringUtil.isNullOrEmpty(item.optString("tk_subsidy_fee_refund3rd_pub"))) { + fanMoney = fanMoney.add(new BigDecimal(item.optString("tk_subsidy_fee_refund3rd_pub"))); + } + if (!StringUtil.isNullOrEmpty(item.optString("tk_commission_fee_refund3rd_pub"))) { + fanMoney = fanMoney.add(new BigDecimal(item.optString("tk_commission_fee_refund3rd_pub"))); + } + if (!StringUtil.isNullOrEmpty(item.optString("tk_subsidy_fee_refund_pub"))) { + fanMoney = fanMoney.add(new BigDecimal(item.optString("tk_subsidy_fee_refund_pub"))); + } + if (!StringUtil.isNullOrEmpty(item.optString("tk_commission_fee_refund_pub"))) { + fanMoney = fanMoney.add(new BigDecimal(item.optString("tk_commission_fee_refund_pub"))); + } + + if (fanMoney.compareTo(new BigDecimal(0)) == 0) + fanMoney = null; + + order.setFanMoney(fanMoney); + order.setJieSuanTime(new Date( + TimeUtil.convertToTimeTemp(item.optString("earning_time"), "yyyy-MM-dd HH:mm:ss"))); + if (!StringUtil.isNullOrEmpty(item.optString("refund_fee"))) + order.setMoney(new BigDecimal(item.optString("refund_fee"))); + order.setOrderId(item.optString("tb_trade_parent_id")); + order.setOrderItemId(item.optString("tb_trade_id")); + int state = item.optInt("refund_status"); + if (state == 4) + order.setState("缁存潈鍒涘缓"); + else if (state == 2) + order.setState("缁存潈鎴愬姛"); + else if (state == 3) + order.setState("缁存潈澶辫触"); + + if (!StringUtil.isNullOrEmpty(item.optString("tk_refund_suit_time"))) + order.setWeiQuanFinishTime(new Date(TimeUtil + .convertToTimeTemp(item.optString("tk_refund_suit_time"), "yyyy-MM-dd HH:mm:ss"))); + order.setWeiQuanTime(new Date( + TimeUtil.convertToTimeTemp(item.optString("tk_refund_time"), "yyyy-MM-dd HH:mm:ss"))); + list.add(order); + } + + } catch (Exception e) { + e.printStackTrace(); + } + + return finalResult; + } + + /** + * 鏂扮増鏈窐瀹濊鍗� + */ + + /** + * 鑾峰彇娣樺疂浼氬憳杩愯惀璁㈠崟 + * + * @param startTime + * @param endTime + * @return + */ + public static List<TaoBaoOrder> getTaoBaoSpecialOrderList(long startTime, long endTime, int queryType) { + 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) { + List<Serializable> orderList = new ArrayList<>(); + // 璺ㄥ害20鍒嗛挓 + long span = (1000 * 60 * 20L); + long jianGe = endTime - startTime; + long page = jianGe % span == 0 ? jianGe / span : jianGe / span + 1; + if (page == 0) + page = 1; + for (int i = 1; i <= page; i++) { + long start = startTime + (i - 1) * span; + long end = start + span; + 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, null, queryType, orderScene, new TaoBaoOrder()); + if (dto != null) + orderList.addAll(dto.getOrderList()); + while (dto != null && dto.isHasNext()) { + dto = queryNewOrder(TimeUtil.getGernalTime(start, "yyyy-MM-dd HH:mm:ss"), + TimeUtil.getGernalTime(end, "yyyy-MM-dd HH:mm:ss"), dto.getPositionIndex(), null, queryType, + orderScene, new TaoBaoOrder()); + if (dto != null) + orderList.addAll(dto.getOrderList()); + } + } + List<TaoBaoOrder> orders = new ArrayList<>(); + for (Serializable s : orderList) + orders.add((TaoBaoOrder) s); + + return orders; + } + + + /** + * 鑾峰彇娣樺疂璁㈠崟澶囦唤鏁版嵁 + * + * @param startTime + * @param endTime + * @param status 12-浠樻锛�13-鍏抽棴锛�14-纭鏀惰揣锛�3-缁撶畻鎴愬姛;涓嶄紶 + * @param queryType 1锛氭寜鐓ц鍗曟窐瀹㈠垱寤烘椂闂存煡璇紝2:鎸夌収璁㈠崟娣樺浠樻鏃堕棿鏌ヨ锛�3:鎸夌収璁㈠崟娣樺缁撶畻鏃堕棿鏌ヨ + * @param orderScene 1:甯歌璁㈠崟锛�2:娓犻亾璁㈠崟锛�3:浼氬憳杩愯惀璁㈠崟 + * @return + */ + public static List<TaoBaoOrderBackUp> getTaoBaoOrderBackUpList(long startTime, long endTime, Integer status, int queryType, int orderScene) { + List<Serializable> orderList = new ArrayList<>(); + // 璺ㄥ害20鍒嗛挓 + long span = (1000 * 60 * 20L); + long jianGe = endTime - startTime; + long page = jianGe % span == 0 ? jianGe / span : jianGe / span + 1; + if (page == 0) + page = 1; + for (int i = 1; i <= page; i++) { + long start = startTime + (i - 1) * span; + long end = start + span; + 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, status, queryType, orderScene, new TaoBaoOrderBackUp()); + if (dto != null) + orderList.addAll(dto.getOrderList()); + while (dto != null && dto.isHasNext()) { + dto = queryNewOrder(TimeUtil.getGernalTime(start, "yyyy-MM-dd HH:mm:ss"), + TimeUtil.getGernalTime(end, "yyyy-MM-dd HH:mm:ss"), dto.getPositionIndex(), status, queryType, + orderScene, new TaoBaoOrderBackUp()); + if (dto != null) + orderList.addAll(dto.getOrderList()); + + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + List<TaoBaoOrderBackUp> orders = new ArrayList<>(); + for (Serializable s : orderList) + orders.add((TaoBaoOrderBackUp) s); + + return orders; + } + + /** + * 娣樺疂璁㈠崟鏌ヨ + * + * @param startTime + * @param endTime + * @param positionIndex + * @param queryType 1锛氭寜鐓ц鍗曟窐瀹㈠垱寤烘椂闂存煡璇紝2:鎸夌収璁㈠崟娣樺浠樻鏃堕棿鏌ヨ锛�3:鎸夌収璁㈠崟娣樺缁撶畻鏃堕棿鏌ヨ + * @param orderScene + * @return + */ + private static TaoBaoOrderResultDTO queryNewOrder(String startTime, String endTime, String positionIndex, Integer status, + int queryType, int orderScene, Serializable clazz) { + Map<String, String> params = new HashMap<>(); + params.put("query_type", queryType + ""); + if (status != null) + params.put("tk_status", status + ""); + params.put("page_size", "100"); + params.put("start_time", startTime); + params.put("end_time", endTime); + params.put("page_no", "1"); + params.put("order_scene", orderScene + ""); + if (!StringUtil.isNullOrEmpty(positionIndex)) + params.put("position_index", positionIndex + ""); + params.put("method", "taobao.tbk.order.details.get"); + TaoKeAppInfo app = new TaoKeAppInfo(); + app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY); + app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET); + try { + JSONObject json = TaoKeBaseUtil.baseRequest(params, app); + if (Constant.IS_TEST) + System.out.println(json); + if (clazz instanceof TaoBaoOrder) + return parseTaoBaoOrderNew(json.toString()); + else + return parseTaoBaoOrderForBackUp(json.toString()); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + + @Deprecated + public static List<TaoBaoOrder> queryTaoBaoOrder(OrderQuery orderQuery, String appKey, String appSecret) { + + Map<String, String> map = new HashMap<>(); + map.put("method", "taobao.tbk.order.get"); + map.put("fields", + "tb_trade_parent_id,tb_trade_id,num_iid,item_title,item_num,price,pay_price,seller_nick,seller_shop_title,commission,commission_rate,unid,create_time,earning_time,tk_status,tk3rd_pub_id,tk3rd_site_id,tk3rd_adzone_id,relation_id,tb_trade_parent_id,tb_trade_id,num_iid,item_title,item_num,price,pay_price,seller_nick,seller_shop_title,commission,commission_rate,unid,create_time,earning_time,tk3rd_pub_id,tk3rd_site_id,tk3rd_adzone_id,special_id,click_time,relation_id,special_id"); + if (orderQuery.startTime != null) + map.put("start_time", orderQuery.startTime); + if (orderQuery.span != null) + map.put("span", orderQuery.span + ""); + map.put("page_no", orderQuery.pageNo + ""); + map.put("page_size", orderQuery.pageSize + ""); + + if (orderQuery.tkStatus != null) + map.put("tk_status", orderQuery.tkStatus + ""); + if (orderQuery.orderQueryType != null) + map.put("order_query_type", orderQuery.orderQueryType); + if (orderQuery.orderScene != null) + map.put("order_scene", orderQuery.orderScene + ""); + + if (orderQuery.orderCountType != null) + map.put("order_count_type", orderQuery.orderCountType + ""); + + TaoKeAppInfo app = new TaoKeAppInfo(); + app.setAppKey(appKey); + app.setAppSecret(appSecret); + try { + JSONObject json = TaoKeBaseUtil.baseRequest(map, app); + System.out.println(json); + } catch (TaoKeApiException e) { + e.printStackTrace(); + } + + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + return null; + } } -- Gitblit v1.8.0