admin
2019-09-19 2b81cf511b3055efc4434d5b7c69938c4ed692d5
订单API修改
1个文件已修改
82 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeOrderApiUtil.java 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeOrderApiUtil.java
@@ -8,6 +8,7 @@
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.TaoBaoOrder;
import com.yeshi.fanli.entity.taobao.TaoBaoPunishOrder;
@@ -400,16 +401,22 @@
        return orderList;
    }
    private static List<TaoBaoOrder> parseTaoBaoOrderNew(String response) {
    private static TaoBaoOrderResultDTO parseTaoBaoOrderNew(String response) {
        TaoBaoOrderResultDTO dto=new TaoBaoOrderResultDTO(false, false, null, new ArrayList<>());
        List<TaoBaoOrder> orderList = new ArrayList<>();
        JSONArray array = null;
        JSONObject data = JSONObject.fromObject(response);
        try {
            array = data.optJSONObject("tbk_order_details_get_response").optJSONObject("data").optJSONObject("results")
            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 orderList;
            return dto;
        }
        if (array != null)
@@ -491,8 +498,8 @@
                    }
                }
            }
        return orderList;
        dto.setOrderList(orderList);
        return dto;
    }
    private static List<TaoBaoOrder> getSpecialOrder(long startTime, int span, int tkStatus) {
@@ -833,6 +840,10 @@
        return finalResult;
    }
    /**
     * 新版本淘宝订单
     */
    /**
     * 获取淘宝会员运营订单
@@ -842,46 +853,48 @@
     * @return
     */
    public static List<TaoBaoOrder> getTaoBaoSpecialOrderList(long startTime, long endTime, int queryType) {
        List<TaoBaoOrder> orderList = new ArrayList<>();
        // 间隔3小时
        long jianGe = endTime - startTime;
        long page = jianGe / (1000 * 60 * 60 * 3L);
        if (page == 0)
            page = 1;
        for (int i = 1; i <= page; i++) {
            long start = startTime + (i - 1) * (1000 * 60 * 60 * 3L);
            long end = start + (1000 * 60 * 60 * 3L);
            if (end > endTime)
                end = endTime;
            List<TaoBaoOrder> tempOrderList = queryNewOrder(TimeUtil.getGernalTime(start, "yyyy-MM-dd HH:mm:ss"),
                    TimeUtil.getGernalTime(end, "yyyy-MM-dd HH:mm:ss"), queryType, 3);
            if (tempOrderList != null)
                orderList.addAll(tempOrderList);
        }
        return orderList;
        return getTaoBaoOrderList(startTime, endTime, queryType, 3);
    }
    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<TaoBaoOrder> orderList = new ArrayList<>();
        // 间隔3小时
        // 跨度20分钟
        long span=(1000 * 60 * 20L);
        long jianGe = endTime - startTime;
        long page = jianGe / (1000 * 60 * 60 * 3L);
        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) * (1000 * 60 * 60 * 3L);
            long end = start + (1000 * 60 * 60 * 3L);
            long start = startTime + (i - 1) * span;
            long end = start + span;
            if (end > endTime)
                end = endTime;
            List<TaoBaoOrder> tempOrderList = queryNewOrder(TimeUtil.getGernalTime(start, "yyyy-MM-dd HH:mm:ss"),
                    TimeUtil.getGernalTime(end, "yyyy-MM-dd HH:mm:ss"), queryType, 2);
            if (tempOrderList != null)
                orderList.addAll(tempOrderList);
            TaoBaoOrderResultDTO dto = queryNewOrder(TimeUtil.getGernalTime(start, "yyyy-MM-dd HH:mm:ss"),
                    TimeUtil.getGernalTime(end, "yyyy-MM-dd HH:mm:ss"),null, queryType, orderScene);
            if (dto != null)
                orderList.addAll(dto.getOrderList());
            while(dto.isHasNext())
            {
                dto=queryNewOrder(TimeUtil.getGernalTime(start, "yyyy-MM-dd HH:mm:ss"),
                        TimeUtil.getGernalTime(end, "yyyy-MM-dd HH:mm:ss"),dto.getPositionIndex(), queryType, orderScene);
                if (dto != null)
                    orderList.addAll(dto.getOrderList());
            }
        }
        return orderList;
    }
    public static List<TaoBaoOrder> queryNewOrder(String startTime, String endTime, int queryType, int orderScene) {
    private static TaoBaoOrderResultDTO queryNewOrder(String startTime, String endTime,String positionIndex, int queryType, int orderScene) {
        Map<String, String> params = new HashMap<>();
        params.put("query_type", queryType + "");
        params.put("page_size", "100");
@@ -889,17 +902,18 @@
        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);
            List<TaoBaoOrder> orderList = parseTaoBaoOrderNew(json.toString());
            return orderList;
            return parseTaoBaoOrderNew(json.toString());
        } catch (TaoKeApiException e) {
            e.printStackTrace();
        }
        return new ArrayList<>();
        return null;
    }
}