From 69b43a3a8502d14039f544885ff037ef3f5b89e6 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 24 五月 2019 17:32:39 +0800
Subject: [PATCH] 增加接口监控报警,增加违规订单处理,增加接口请求时间大于2s的统计

---
 fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeOrderApiUtil.java |   94 +++++++++++++++++++++++++++++++----------------
 1 files changed, 62 insertions(+), 32 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 a7fc310..f200c35 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
@@ -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) {

--
Gitblit v1.8.0