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