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