From 28cf328a098334b51a3e9d2d56f983fb8c862211 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期六, 23 五月 2020 09:54:38 +0800 Subject: [PATCH] 足迹、收藏订单兼容新需求 --- fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeOrderApiUtil.java | 230 +++++++++++++++------------------------------------------ 1 files changed, 62 insertions(+), 168 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 f2ff1b1..736bf42 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 @@ -7,15 +7,16 @@ import java.util.List; import java.util.Map; -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.TaoKeAppInfo; import com.yeshi.fanli.exception.taobao.TaoKeApiException; import com.yeshi.fanli.log.LogHelper; +import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.TaoBaoConstant; import com.yeshi.fanli.util.TimeUtil; @@ -31,7 +32,6 @@ 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(); @@ -102,161 +102,17 @@ return resultList; } - - @Deprecated - private 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); - return parseTaoBaoOrder(json.toString()); - } catch (TaoKeApiException e) { - e.printStackTrace(); - } - - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - - return null; - } - - private static List<TaoBaoOrder> parseTaoBaoOrder(String response) { - - List<TaoBaoOrder> orderList = new ArrayList<>(); - - JSONObject data = JSONObject.fromObject(response); - if (data.optJSONObject("tbk_order_get_response") == null) - return orderList; - if (data.optJSONObject("tbk_order_get_response").optJSONObject("results") == null) - return orderList; - if (data.optJSONObject("tbk_order_get_response").optJSONObject("results").optJSONArray("n_tbk_order") == null) - return orderList; - - JSONArray array = data.optJSONObject("tbk_order_get_response").optJSONObject("results") - .optJSONArray("n_tbk_order"); - 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("num_iid")); - taoBaoOrder.setClassName(item.optString("auction_category")); - taoBaoOrder.setClickTime(item.optString("click_time")); - taoBaoOrder.setCount(item.optInt("item_num")); - taoBaoOrder.setCreateTime(item.optString("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")).multiply(new BigDecimal(100))); - 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)); - taoBaoOrder.setPrice(new BigDecimal(item.optString("price"))); - if (!StringUtil.isNullOrEmpty(item.optString("pay_price"))) - taoBaoOrder.setSettlement(new BigDecimal(item.optString("pay_price"))); - else - taoBaoOrder.setSettlement(new BigDecimal(0)); - taoBaoOrder.setSettlementTime(item.optString("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")).multiply(new BigDecimal(100))); - 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")).multiply(new BigDecimal(100))); - else if (!StringUtil.isNullOrEmpty(item.optString("total_commission_rate"))) - taoBaoOrder.setTkRate( - new BigDecimal(item.optString("total_commission_rate")).multiply(new BigDecimal(100))); - taoBaoOrder.setTransactionPlatform(item.optString("terminal_type")); - taoBaoOrder.setRelationId(item.optString("relation_id")); - taoBaoOrder.setSpecialId(item.optString("special_id")); - taoBaoOrder.setTradeId(item.optString("trade_id")); - orderList.add(taoBaoOrder); - } catch (Exception e) { - try { - LogHelper.errorDetailInfo(e, "璁㈠崟鍙蜂俊鎭�:" + item.toString(), "璁㈠崟瑙f瀽鍑洪敊"); - } catch (Exception e1) { - } - } - } - - return orderList; - } - 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) { @@ -305,11 +161,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")); @@ -335,6 +194,21 @@ 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 { @@ -441,7 +315,7 @@ return finalResult; } - + /** * 鏂扮増鏈窐瀹濊鍗� */ @@ -457,21 +331,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++) { @@ -480,22 +361,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!=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; } - - 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"); @@ -503,7 +395,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(); @@ -511,6 +403,8 @@ 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(); -- Gitblit v1.8.0