From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 25 二月 2025 16:41:22 +0800
Subject: [PATCH] 淘宝转链接口更新

---
 fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeOrderApiUtil.java | 1140 ++++++++++++++++++++++++++++++-----------------------------
 1 files changed, 580 insertions(+), 560 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 b72cc03..d40661a 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
@@ -1,560 +1,580 @@
-package com.yeshi.fanli.util.taobao;
-
-import java.io.Serializable;
-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.TaoBaoOrderResultDTO;
-import com.yeshi.fanli.dto.taobao.WeiQuanOrderResult;
-import com.yeshi.fanli.entity.taobao.*;
-import com.yeshi.common.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 org.yeshi.utils.TimeUtil;
-
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
-
-//娣樺疂瀹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;
-
-    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 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 TaoBaoOrderResultDTO parseTaoBaoOrderNew(String response) {
-
-        TaoBaoOrderResultDTO dto = new TaoBaoOrderResultDTO(false, false, null, new ArrayList<>());
-
-        List<Serializable> 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"));
-            dto.setPositionIndex(rootData.optString("position_index"));
-            dto.setHasNext(rootData.optBoolean("has_next"));
-        } catch (Exception e) {
-            return dto;
-        }
-
-        if (array != null)
-            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("item_id"));
-                    taoBaoOrder.setClassName(item.optString("item_category_name"));
-                    taoBaoOrder.setClickTime(item.optString("click_time"));
-                    taoBaoOrder.setPayTime(item.optString("tb_paid_time"));
-                    taoBaoOrder.setCount(item.optInt("item_num"));
-                    taoBaoOrder.setCreateTime(item.optString("tk_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")));
-                    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));
-                    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(taoBaoOrder.getPayment());
-                    taoBaoOrder.setSettlementTime(item.optString("tk_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")));
-                    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")));
-                    else if (!StringUtil.isNullOrEmpty(item.optString("total_commission_rate")))
-                        taoBaoOrder.setTkRate(new BigDecimal(item.optString("total_commission_rate")));
-                    taoBaoOrder.setTransactionPlatform(item.optString("terminal_type"));
-                    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 {
-                        LogHelper.errorDetailInfo(e, "璁㈠崟鍙蜂俊鎭�:" + item.toString(), "璁㈠崟瑙f瀽鍑洪敊");
-                    } catch (Exception e1) {
-                    }
-                }
-            }
-        dto.setOrderList(orderList);
-        return dto;
-    }
-
-
-    private static TaoBaoOrderResultDTO parseTaoBaoOrderForBackUp(String response) {
-
-        TaoBaoOrderResultDTO dto = new TaoBaoOrderResultDTO(false, false, null, new ArrayList<>());
-
-        List<Serializable> 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"));
-            dto.setPositionIndex(rootData.optString("position_index"));
-            dto.setHasNext(rootData.optBoolean("has_next"));
-        } catch (Exception e) {
-            return dto;
-        }
-
-        if (array != null)
-            for (int i = 0; i < array.size(); i++) {
-                JSONObject item = array.optJSONObject(i);
-                try {
-                    String tradeId = item.optString("trade_id");
-                    String orderId = item.optString("trade_parent_id");
-                    TaoBaoOrderBackUp orderBackUp = new TaoBaoOrderBackUp();
-                    orderBackUp.setContent(item.toString());
-                    orderBackUp.setTradeId(tradeId);
-                    orderBackUp.setOrderId(orderId);
-                    orderList.add(orderBackUp);
-                } catch (Exception e) {
-                    try {
-                        LogHelper.errorDetailInfo(e, "璁㈠崟鍙蜂俊鎭�:" + item.toString(), "璁㈠崟瑙f瀽鍑洪敊");
-                    } catch (Exception e1) {
-                    }
-                }
-            }
-        dto.setOrderList(orderList);
-        return dto;
-    }
-
-
-    public static WeiQuanOrderResult getTaoBaoRelationWeiQuanOrderList(Date startTime, int searchType, int page,
-                                                                       boolean third) {
-
-        return getRelationAndSpecialWeiQuanOrderList(startTime, searchType, page, third, 1);
-    }
-
-    public static WeiQuanOrderResult getTaoBaoSpecialWeiQuanOrderList(Date startTime, int searchType, int page,
-                                                                      boolean third) {
-
-        return getRelationAndSpecialWeiQuanOrderList(startTime, searchType, page, third, 2);
-    }
-
-    private static WeiQuanOrderResult getRelationAndSpecialWeiQuanOrderList(Date startTime, int searchType, 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", searchType);
-        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");
-            if (array != null)
-                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 = fanMoney.add(new BigDecimal(item.optString("tk_subsidy_fee_refund3rd_pub")));
-                    }
-                    if (!StringUtil.isNullOrEmpty(item.optString("tk_commission_fee_refund3rd_pub"))) {
-                        fanMoney = fanMoney.add(new BigDecimal(item.optString("tk_commission_fee_refund3rd_pub")));
-                    }
-                    if (!StringUtil.isNullOrEmpty(item.optString("tk_subsidy_fee_refund_pub"))) {
-                        fanMoney = fanMoney.add(new BigDecimal(item.optString("tk_subsidy_fee_refund_pub")));
-                    }
-                    if (!StringUtil.isNullOrEmpty(item.optString("tk_commission_fee_refund_pub"))) {
-                        fanMoney = 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;
-    }
-
-    /**
-     * 鏂扮増鏈窐瀹濊鍗�
-     */
-
-    /**
-     * 鑾峰彇娣樺疂浼氬憳杩愯惀璁㈠崟
-     *
-     * @param startTime
-     * @param endTime
-     * @return
-     */
-    public static List<TaoBaoOrder> getTaoBaoSpecialOrderList(long startTime, long endTime, int queryType) {
-        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) {
-        List<Serializable> orderList = new ArrayList<>();
-        // 璺ㄥ害20鍒嗛挓
-        long span = (1000 * 60 * 20L);
-        long jianGe = endTime - startTime;
-        long page = jianGe % span == 0 ? jianGe / span : jianGe / span + 1;
-        if (page == 0)
-            page = 1;
-        for (int i = 1; i <= page; i++) {
-            long start = startTime + (i - 1) * span;
-            long end = start + span;
-            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, null, queryType, orderScene, new TaoBaoOrder());
-            if (dto != null)
-                orderList.addAll(dto.getOrderList());
-            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(), null, queryType,
-                        orderScene, new TaoBaoOrder());
-                if (dto != null)
-                    orderList.addAll(dto.getOrderList());
-            }
-        }
-        List<TaoBaoOrder> orders = new ArrayList<>();
-        for (Serializable s : orderList)
-            orders.add((TaoBaoOrder) s);
-
-        return orders;
-    }
-
-
-    /**
-     * 鑾峰彇娣樺疂璁㈠崟澶囦唤鏁版嵁
-     *
-     * @param startTime
-     * @param endTime
-     * @param status 12-浠樻锛�13-鍏抽棴锛�14-纭鏀惰揣锛�3-缁撶畻鎴愬姛;涓嶄紶
-     * @param queryType 1锛氭寜鐓ц鍗曟窐瀹㈠垱寤烘椂闂存煡璇紝2:鎸夌収璁㈠崟娣樺浠樻鏃堕棿鏌ヨ锛�3:鎸夌収璁㈠崟娣樺缁撶畻鏃堕棿鏌ヨ
-     * @param orderScene 1:甯歌璁㈠崟锛�2:娓犻亾璁㈠崟锛�3:浼氬憳杩愯惀璁㈠崟
-     * @return
-     */
-    public static List<TaoBaoOrderBackUp> getTaoBaoOrderBackUpList(long startTime, long endTime, Integer status, int queryType, int orderScene) {
-        List<Serializable> orderList = new ArrayList<>();
-        // 璺ㄥ害20鍒嗛挓
-        long span = (1000 * 60 * 20L);
-        long jianGe = endTime - startTime;
-        long page = jianGe % span == 0 ? jianGe / span : jianGe / span + 1;
-        if (page == 0)
-            page = 1;
-        for (int i = 1; i <= page; i++) {
-            long start = startTime + (i - 1) * span;
-            long end = start + span;
-            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, status, queryType, orderScene, new TaoBaoOrderBackUp());
-            if (dto != null)
-                orderList.addAll(dto.getOrderList());
-            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(), status, queryType,
-                        orderScene, new TaoBaoOrderBackUp());
-                if (dto != null)
-                    orderList.addAll(dto.getOrderList());
-
-                try {
-                    Thread.sleep(1000);
-                } catch (InterruptedException e) {
-                    e.printStackTrace();
-                }
-            }
-            try {
-                Thread.sleep(1000);
-            } catch (InterruptedException e) {
-                e.printStackTrace();
-            }
-        }
-        List<TaoBaoOrderBackUp> orders = new ArrayList<>();
-        for (Serializable s : orderList)
-            orders.add((TaoBaoOrderBackUp) s);
-
-        return orders;
-    }
-
-    /**
-     * 娣樺疂璁㈠崟鏌ヨ
-     *
-     * @param startTime
-     * @param endTime
-     * @param positionIndex
-     * @param queryType     1锛氭寜鐓ц鍗曟窐瀹㈠垱寤烘椂闂存煡璇紝2:鎸夌収璁㈠崟娣樺浠樻鏃堕棿鏌ヨ锛�3:鎸夌収璁㈠崟娣樺缁撶畻鏃堕棿鏌ヨ
-     * @param orderScene
-     * @return
-     */
-    private static TaoBaoOrderResultDTO queryNewOrder(String startTime, String endTime, String positionIndex, Integer status,
-                                                      int queryType, int orderScene, Serializable clazz) {
-        Map<String, String> params = new HashMap<>();
-        params.put("query_type", queryType + "");
-        if (status != null)
-            params.put("tk_status", status + "");
-        params.put("page_size", "100");
-        params.put("start_time", startTime);
-        params.put("end_time", endTime);
-        params.put("page_no", "1");
-        params.put("order_scene", orderScene + "");
-        if (!StringUtil.isNullOrEmpty(positionIndex))
-            params.put("position_index", positionIndex + "");
-        params.put("method", "taobao.tbk.order.details.get");
-        TaoKeAppInfo app = new TaoKeAppInfo();
-        app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
-        app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
-        try {
-            JSONObject json = TaoKeBaseUtil.baseRequest(params, app);
-            if (Constant.IS_TEST)
-                System.out.println(json);
-            if (clazz instanceof TaoBaoOrder)
-                return parseTaoBaoOrderNew(json.toString());
-            else
-                return parseTaoBaoOrderForBackUp(json.toString());
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return null;
-    }
-
-
-    @Deprecated
-    public 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);
-            System.out.println(json);
-        } catch (TaoKeApiException e) {
-            e.printStackTrace();
-        }
-
-        try {
-            Thread.sleep(1000);
-        } catch (InterruptedException e) {
-            e.printStackTrace();
-        }
-
-        return null;
-    }
-}
+package com.yeshi.fanli.util.taobao;
+
+import java.io.Serializable;
+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.TaoBaoOrderResultDTO;
+import com.yeshi.fanli.dto.taobao.WeiQuanOrderResult;
+import com.yeshi.fanli.entity.taobao.*;
+import com.yeshi.common.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 org.yeshi.utils.TimeUtil;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+//娣樺疂瀹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;
+
+    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 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 TaoBaoOrderResultDTO parseTaoBaoOrderNew(String response) {
+
+        TaoBaoOrderResultDTO dto = new TaoBaoOrderResultDTO(false, false, null, new ArrayList<>());
+
+        List<Serializable> orderList = new ArrayList<>();
+        JSONArray array = null;
+        JSONObject data = JSONObject.fromObject(response);
+        try {
+            //TODO 涓存椂娴嬭瘯 tbk_order_details_get_response
+            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) {
+            return dto;
+        }
+
+        if (array != null)
+            for (int i = 0; i < array.size(); i++) {
+
+                JSONObject item = array.optJSONObject(i);
+                try {
+                    TaoBaoOrder taoBaoOrder = parseTaoBaoOrderNew(item);
+                    orderList.add(taoBaoOrder);
+                } catch (Exception e) {
+                    try {
+                        LogHelper.errorDetailInfo(e, "璁㈠崟鍙蜂俊鎭�:" + item.toString(), "璁㈠崟瑙f瀽鍑洪敊");
+                    } catch (Exception e1) {
+                    }
+                }
+            }
+        dto.setOrderList(orderList);
+        return dto;
+    }
+
+
+    private static TaoBaoOrderResultDTO parseTaoBaoOrderForBackUp(String response) {
+
+        TaoBaoOrderResultDTO dto = new TaoBaoOrderResultDTO(false, false, null, new ArrayList<>());
+
+        List<Serializable> 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"));
+            dto.setPositionIndex(rootData.optString("position_index"));
+            dto.setHasNext(rootData.optBoolean("has_next"));
+        } catch (Exception e) {
+            return dto;
+        }
+
+        if (array != null)
+            for (int i = 0; i < array.size(); i++) {
+                JSONObject item = array.optJSONObject(i);
+                try {
+                    String tradeId = item.optString("trade_id");
+                    String orderId = item.optString("trade_parent_id");
+                    TaoBaoOrderBackUp orderBackUp = new TaoBaoOrderBackUp();
+                    orderBackUp.setContent(item.toString());
+                    orderBackUp.setTradeId(tradeId);
+                    orderBackUp.setOrderId(orderId);
+                    orderList.add(orderBackUp);
+                } catch (Exception e) {
+                    try {
+                        LogHelper.errorDetailInfo(e, "璁㈠崟鍙蜂俊鎭�:" + item.toString(), "璁㈠崟瑙f瀽鍑洪敊");
+                    } catch (Exception e1) {
+                    }
+                }
+            }
+        dto.setOrderList(orderList);
+        return dto;
+    }
+
+
+    public static WeiQuanOrderResult getTaoBaoRelationWeiQuanOrderList(Date startTime, int searchType, int page,
+                                                                       boolean third) {
+
+        return getRelationAndSpecialWeiQuanOrderList(startTime, searchType, page, third, 1);
+    }
+
+    public static WeiQuanOrderResult getTaoBaoSpecialWeiQuanOrderList(Date startTime, int searchType, int page,
+                                                                      boolean third) {
+
+        return getRelationAndSpecialWeiQuanOrderList(startTime, searchType, page, third, 2);
+    }
+
+    private static WeiQuanOrderResult getRelationAndSpecialWeiQuanOrderList(Date startTime, int searchType, 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", searchType);
+        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");
+            if (array != null)
+                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 = fanMoney.add(new BigDecimal(item.optString("tk_subsidy_fee_refund3rd_pub")));
+                    }
+                    if (!StringUtil.isNullOrEmpty(item.optString("tk_commission_fee_refund3rd_pub"))) {
+                        fanMoney = fanMoney.add(new BigDecimal(item.optString("tk_commission_fee_refund3rd_pub")));
+                    }
+                    if (!StringUtil.isNullOrEmpty(item.optString("tk_subsidy_fee_refund_pub"))) {
+                        fanMoney = fanMoney.add(new BigDecimal(item.optString("tk_subsidy_fee_refund_pub")));
+                    }
+                    if (!StringUtil.isNullOrEmpty(item.optString("tk_commission_fee_refund_pub"))) {
+                        fanMoney = 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;
+    }
+
+    /**
+     * 鏂扮増鏈窐瀹濊鍗�
+     */
+
+    /**
+     * 鑾峰彇娣樺疂浼氬憳杩愯惀璁㈠崟
+     *
+     * @param startTime
+     * @param endTime
+     * @return
+     */
+    public static List<TaoBaoOrder> getTaoBaoSpecialOrderList(long startTime, long endTime, int queryType) {
+        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) {
+        List<Serializable> orderList = new ArrayList<>();
+        // 璺ㄥ害20鍒嗛挓
+        long span = (1000 * 60 * 20L);
+        long jianGe = endTime - startTime;
+        long page = jianGe % span == 0 ? jianGe / span : jianGe / span + 1;
+        if (page == 0)
+            page = 1;
+        for (int i = 1; i <= page; i++) {
+            long start = startTime + (i - 1) * span;
+            long end = start + span;
+            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, null, queryType, orderScene, new TaoBaoOrder());
+            if (dto != null)
+                orderList.addAll(dto.getOrderList());
+            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(), null, queryType,
+                        orderScene, new TaoBaoOrder());
+                if (dto != null)
+                    orderList.addAll(dto.getOrderList());
+            }
+        }
+        List<TaoBaoOrder> orders = new ArrayList<>();
+        for (Serializable s : orderList)
+            orders.add((TaoBaoOrder) s);
+
+        return orders;
+    }
+
+
+    /**
+     * 鑾峰彇娣樺疂璁㈠崟澶囦唤鏁版嵁
+     *
+     * @param startTime
+     * @param endTime
+     * @param status     12-浠樻锛�13-鍏抽棴锛�14-纭鏀惰揣锛�3-缁撶畻鎴愬姛;涓嶄紶
+     * @param queryType  1锛氭寜鐓ц鍗曟窐瀹㈠垱寤烘椂闂存煡璇紝2:鎸夌収璁㈠崟娣樺浠樻鏃堕棿鏌ヨ锛�3:鎸夌収璁㈠崟娣樺缁撶畻鏃堕棿鏌ヨ
+     * @param orderScene 1:甯歌璁㈠崟锛�2:娓犻亾璁㈠崟锛�3:浼氬憳杩愯惀璁㈠崟
+     * @return
+     */
+    public static List<TaoBaoOrderBackUp> getTaoBaoOrderBackUpList(long startTime, long endTime, Integer status, int queryType, int orderScene) {
+        List<Serializable> orderList = new ArrayList<>();
+        // 璺ㄥ害20鍒嗛挓
+        long span = (1000 * 60 * 20L);
+        long jianGe = endTime - startTime;
+        long page = jianGe % span == 0 ? jianGe / span : jianGe / span + 1;
+        if (page == 0)
+            page = 1;
+        for (int i = 1; i <= page; i++) {
+            long start = startTime + (i - 1) * span;
+            long end = start + span;
+            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, status, queryType, orderScene, new TaoBaoOrderBackUp());
+            if (dto != null)
+                orderList.addAll(dto.getOrderList());
+            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(), status, queryType,
+                        orderScene, new TaoBaoOrderBackUp());
+                if (dto != null)
+                    orderList.addAll(dto.getOrderList());
+
+                try {
+                    Thread.sleep(1000);
+                } catch (InterruptedException e) {
+                    e.printStackTrace();
+                }
+            }
+            try {
+                Thread.sleep(1000);
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+        }
+        List<TaoBaoOrderBackUp> orders = new ArrayList<>();
+        for (Serializable s : orderList)
+            orders.add((TaoBaoOrderBackUp) s);
+
+        return orders;
+    }
+
+    /**
+     * 娣樺疂璁㈠崟鏌ヨ
+     *
+     * @param startTime
+     * @param endTime
+     * @param positionIndex
+     * @param queryType     1锛氭寜鐓ц鍗曟窐瀹㈠垱寤烘椂闂存煡璇紝2:鎸夌収璁㈠崟娣樺浠樻鏃堕棿鏌ヨ锛�3:鎸夌収璁㈠崟娣樺缁撶畻鏃堕棿鏌ヨ
+     * @param orderScene
+     * @return
+     */
+    private static TaoBaoOrderResultDTO queryNewOrder(String startTime, String endTime, String positionIndex, Integer status,
+                                                      int queryType, int orderScene, Serializable clazz) {
+        Map<String, String> params = new HashMap<>();
+        params.put("query_type", queryType + "");
+        if (status != null)
+            params.put("tk_status", status + "");
+        params.put("page_size", "100");
+        params.put("start_time", startTime);
+        params.put("end_time", endTime);
+        params.put("page_no", "1");
+        params.put("order_scene", orderScene + "");
+        if (!StringUtil.isNullOrEmpty(positionIndex))
+            params.put("position_index", positionIndex + "");
+        //TODO 涓存椂娴嬭瘯taobao.tbk.order.details.get
+        params.put("method", "taobao.tbk.order.details.get");
+        TaoKeAppInfo app = new TaoKeAppInfo();
+        app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
+        app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+        try {
+            JSONObject json = TaoKeBaseUtil.baseRequest(params, app);
+            System.out.println(json.toString());
+            if (Constant.IS_TEST)
+                System.out.println(json);
+            if (clazz instanceof TaoBaoOrder)
+                return parseTaoBaoOrderNew(json.toString());
+            else
+                return parseTaoBaoOrderForBackUp(json.toString());
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+
+    public static TaoBaoOrder parseTaoBaoOrderNew(JSONObject item) {
+        TaoBaoOrder taoBaoOrder = new TaoBaoOrder();
+        taoBaoOrder.setAdPositionId(item.optString("adzone_id"));
+        taoBaoOrder.setAdPositionName(item.optString("adzone_name"));
+        taoBaoOrder.setAuctionId(item.optString("item_id"));
+        taoBaoOrder.setClassName(item.optString("item_category_name"));
+        taoBaoOrder.setClickTime(item.optString("click_time"));
+        taoBaoOrder.setPayTime(item.optString("tb_paid_time"));
+        taoBaoOrder.setCount(item.optInt("item_num"));
+        taoBaoOrder.setCreateTime(item.optString("tk_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")));
+        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));
+        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(taoBaoOrder.getPayment());
+        taoBaoOrder.setSettlementTime(item.optString("tk_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")));
+        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")));
+        else if (!StringUtil.isNullOrEmpty(item.optString("total_commission_rate")))
+            taoBaoOrder.setTkRate(new BigDecimal(item.optString("total_commission_rate")));
+        taoBaoOrder.setTransactionPlatform(item.optString("terminal_type"));
+        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.optString("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);
+        return taoBaoOrder;
+    }
+
+
+    @Deprecated
+    public 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);
+            System.out.println(json);
+        } catch (TaoKeApiException e) {
+            e.printStackTrace();
+        }
+
+        try {
+            Thread.sleep(1000);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+
+        return null;
+    }
+
+    public static void main(String[] args){
+
+        long endTime=TimeUtil.convertToTimeTemp("2022-09-20 11:16:50","yyyy-MM-dd HH:mm:ss");
+        long startTime=TimeUtil.convertToTimeTemp("2022-09-20 11:16:48","yyyy-MM-dd HH:mm:ss");
+
+        List<TaoBaoOrder> orderList=  getTaoBaoSpecialOrderList(startTime,endTime,1);
+        orderList=  getTaoBaoCommonOrderList(startTime,endTime,1);
+        orderList=  getTaoBaoRelationOrderList(startTime,endTime,1);
+        System.out.println(orderList);
+
+    }
+}

--
Gitblit v1.8.0