From 8cb7ec4a35a38ae91d0eed17cde711e81d2b2bbf Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期二, 14 五月 2019 11:37:49 +0800
Subject: [PATCH] 合并

---
 fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeOrderApiUtil.java |  192 ++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 178 insertions(+), 14 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 6f69f45..39ae5ac 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
@@ -2,12 +2,15 @@
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 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.TaoBaoWeiQuanOrder;
 import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
 import com.yeshi.fanli.exception.taobao.TaoKeApiException;
 import com.yeshi.fanli.log.LogHelper;
@@ -20,13 +23,13 @@
 
 //娣樺疂瀹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;
+
 	/**
 	 * 鑾峰彇浼氬憳璁㈠崟
 	 * 
@@ -175,6 +178,10 @@
 		map.put("page_no", "1");
 		map.put("page_size", "20");
 		map.put("start_time", "2019-01-01 00:00:00");
+		map.put("tb_trade_parent_id", "370829441412331676");
+		map.put("punish_status", "2");
+		map.put("violation_type", "2");
+
 		// map.put("start_time", "2019-01-01 00:00:00");
 		TaoKeAppInfo app = new TaoKeAppInfo();
 		app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
@@ -300,7 +307,8 @@
 				taoBaoOrder.setSourceMediaId(item.optString("site_id"));
 				taoBaoOrder.setSourceMediaName(item.optString("site_name"));
 				taoBaoOrder.setsRatio(null);
-				taoBaoOrder.setSubsidy(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)));
@@ -359,8 +367,8 @@
 	private static List<TaoBaoOrder> getThirdTSpecialOrder(long startTime, int span) {
 		int page = 1;
 		String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd HH:mm:ss");
-		List<TaoBaoOrder> orderList = getTaoBaoSpecialThirdOrder(startTimeStr, span, page, TaoBaoConstant.TAOBAO_AUTH_APPKEY,
-				TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+		List<TaoBaoOrder> orderList = getTaoBaoSpecialThirdOrder(startTimeStr, span, page,
+				TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
 		while (orderList.size() == 100 * page) {
 			page++;
 			List<TaoBaoOrder> tempOrderList = getTaoBaoSpecialThirdOrder(startTimeStr, span, page,
@@ -374,8 +382,8 @@
 	private static List<TaoBaoOrder> getRelationOrder(long startTime, int span) {
 		int page = 1;
 		String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd HH:mm:ss");
-		List<TaoBaoOrder> orderList = getTaoBaoRelationOrder(startTimeStr, span, page, TaoBaoConstant.TAOBAO_AUTH_APPKEY,
-				TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+		List<TaoBaoOrder> orderList = getTaoBaoRelationOrder(startTimeStr, span, page,
+				TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
 		while (orderList.size() == 100 * page) {
 			page++;
 			List<TaoBaoOrder> tempOrderList = getTaoBaoRelationOrder(startTimeStr, span, page,
@@ -389,8 +397,8 @@
 	private static List<TaoBaoOrder> getThirdRelationOrder(long startTime, int span) {
 		int page = 1;
 		String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd HH:mm:ss");
-		List<TaoBaoOrder> orderList = getTaoBaoRelationThirdOrder(startTimeStr, span, page, TaoBaoConstant.TAOBAO_AUTH_APPKEY,
-				TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+		List<TaoBaoOrder> orderList = getTaoBaoRelationThirdOrder(startTimeStr, span, page,
+				TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
 		while (orderList.size() == 100 * page) {
 			page++;
 			List<TaoBaoOrder> tempOrderList = getTaoBaoRelationThirdOrder(startTimeStr, span, page,
@@ -512,4 +520,160 @@
 		}
 		return orderList;
 	}
+
+	private static List<TaoBaoOrder> getTaoBaoSettleOrders(long startTime, int span, boolean third) {
+		OrderQuery orderQuery = new OrderQuery();
+		orderQuery.span = span;
+		orderQuery.orderQueryType = "settle_time";
+		orderQuery.orderScene = 1;
+		orderQuery.pageSize = 100;
+		int page = 1;
+		orderQuery.pageNo = page;
+		if (third)
+			orderQuery.orderCountType = 2;
+		else
+			orderQuery.orderCountType = 1;
+
+		String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd HH:mm:ss");
+		orderQuery.startTime = startTimeStr;
+		List<TaoBaoOrder> orderList = queryTaoBaoOrder(orderQuery, TaoBaoConstant.TAOBAO_AUTH_APPKEY,
+				TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+		while (orderList.size() == 100 * page) {
+			page++;
+			orderQuery.pageNo = page;
+			List<TaoBaoOrder> tempOrderList = queryTaoBaoOrder(orderQuery, TaoBaoConstant.TAOBAO_AUTH_APPKEY,
+					TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+			if (tempOrderList != null && tempOrderList.size() > 0)
+				orderList.addAll(tempOrderList);
+		}
+		return orderList;
+	}
+
+	/**
+	 * 鑾峰彇缁撶畻璁㈠崟
+	 * 
+	 * @param startTime
+	 * @param endTime
+	 * @param third
+	 *            -鏄惁涓虹涓夋柟璁㈠崟
+	 * @return
+	 */
+	public static List<TaoBaoOrder> getTaoBaoSettleOrders(long startTime, long endTime, boolean third) {
+		List<TaoBaoOrder> orderList = new ArrayList<>();
+		long span = (endTime - startTime) % 1000 == 0 ? (endTime - startTime) / 1000 : (endTime - startTime) / 1000 + 1;
+		int count = (int) (span / 1200);
+		if (span % 1200 != 0)
+			count++;
+		for (int i = 0; i < count; i++) {
+			long startT = startTime + i * 1200 * 1000L;
+			int s = 1200;
+			if (endTime < startT + 1200 * 1000L) {
+				s = (int) ((endTime - startT) / 1000) + 1;
+				if (s < 60)
+					s = 60;
+			}
+			List<TaoBaoOrder> tempOrderList = getTaoBaoSettleOrders(startT, s, third);
+			if (tempOrderList != null && tempOrderList.size() > 0)
+				orderList.addAll(tempOrderList);
+
+			try {
+				Thread.sleep(1000 * 10);// 鍔犱釜寤舵椂锛岄槻姝PI璇锋眰棰戠巼闄愬埗
+			} catch (InterruptedException e) {
+				e.printStackTrace();
+			}
+		}
+		return orderList;
+	}
+
+	public static WeiQuanOrderResult getTaoBaoRelationWeiQuanOrderList(Date startTime, int page, boolean third) {
+
+		return getRelationAndSpecialWeiQuanOrderList(startTime, page, third, 1);
+	}
+
+	public static WeiQuanOrderResult getTaoBaoSpecialWeiQuanOrderList(Date startTime, int page, boolean third) {
+
+		return getRelationAndSpecialWeiQuanOrderList(startTime, page, third, 2);
+	}
+
+	private static WeiQuanOrderResult getRelationAndSpecialWeiQuanOrderList(Date startTime, 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", 1);
+		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");
+			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.add(new BigDecimal(item.optString("tk_subsidy_fee_refund3rd_pub")));
+				}
+				if (!StringUtil.isNullOrEmpty(item.optString("tk_commission_fee_refund3rd_pub"))) {
+					fanMoney.add(new BigDecimal(item.optString("tk_commission_fee_refund3rd_pub")));
+				}
+				if (!StringUtil.isNullOrEmpty(item.optString("tk_subsidy_fee_refund_pub"))) {
+					fanMoney.add(new BigDecimal(item.optString("tk_subsidy_fee_refund_pub")));
+				}
+				if (!StringUtil.isNullOrEmpty(item.optString("tk_commission_fee_refund_pub"))) {
+					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;
+	}
 }

--
Gitblit v1.8.0