From 1e92eff67b997263ecefa255c63eb6641c47b57f Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 14 六月 2019 10:22:33 +0800
Subject: [PATCH] 设备消息BUG解决,品牌
---
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeOrderApiUtil.java | 289 +++++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 246 insertions(+), 43 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 e559106..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
@@ -2,18 +2,21 @@
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.taobao.api.TaobaoObject;
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;
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;
import net.sf.json.JSONArray;
@@ -21,6 +24,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;
+
/**
* 鑾峰彇浼氬憳璁㈠崟
*
@@ -162,36 +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("span", "3600");
- map.put("page_no", "1");
- map.put("page_size", "20");
- map.put("start_time", "2019-01-01 00:00:00");
- // map.put("start_time", "2019-01-01 00:00:00");
- TaoKeAppInfo app = new TaoKeAppInfo();
- app.setAppKey(Constant.TAOBAO_AUTH_APPKEY);
- app.setAppSecret(Constant.TAOBAO_AUTH_APPSECRET);
- try {
- JSONObject json = TaoKeBaseUtil.baseRequest(map, app);
- } catch (TaoKeApiException e) {
- e.printStackTrace();
- }
+ 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 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());
+ 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 List<TaoBaoOrder> queryTaoBaoOrder(OrderQuery orderQuery, String appKey, String appSecret) {
@@ -294,7 +340,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)));
@@ -331,12 +378,12 @@
private static List<TaoBaoOrder> getSpecialOrder(long startTime, int span) {
int page = 1;
String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd HH:mm:ss");
- List<TaoBaoOrder> orderList = getTaoBaoSpecialOrder(startTimeStr, span, page, Constant.TAOBAO_AUTH_APPKEY,
- Constant.TAOBAO_AUTH_APPSECRET);
+ List<TaoBaoOrder> orderList = getTaoBaoSpecialOrder(startTimeStr, span, page, TaoBaoConstant.TAOBAO_AUTH_APPKEY,
+ TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
while (orderList.size() == 100 * page) {
page++;
List<TaoBaoOrder> tempOrderList = getTaoBaoSpecialOrder(startTimeStr, span, page,
- Constant.TAOBAO_AUTH_APPKEY, Constant.TAOBAO_AUTH_APPSECRET);
+ TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
if (tempOrderList != null && tempOrderList.size() > 0)
orderList.addAll(tempOrderList);
}
@@ -353,12 +400,12 @@
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, Constant.TAOBAO_AUTH_APPKEY,
- Constant.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,
- Constant.TAOBAO_AUTH_APPKEY, Constant.TAOBAO_AUTH_APPSECRET);
+ TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
if (tempOrderList != null && tempOrderList.size() > 0)
orderList.addAll(tempOrderList);
}
@@ -368,12 +415,12 @@
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, Constant.TAOBAO_AUTH_APPKEY,
- Constant.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,
- Constant.TAOBAO_AUTH_APPKEY, Constant.TAOBAO_AUTH_APPSECRET);
+ TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
if (tempOrderList != null && tempOrderList.size() > 0)
orderList.addAll(tempOrderList);
}
@@ -383,12 +430,12 @@
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, Constant.TAOBAO_AUTH_APPKEY,
- Constant.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,
- Constant.TAOBAO_AUTH_APPKEY, Constant.TAOBAO_AUTH_APPSECRET);
+ TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
if (tempOrderList != null && tempOrderList.size() > 0)
orderList.addAll(tempOrderList);
}
@@ -506,4 +553,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