| | |
| | | package com.yeshi.fanli.util.taobao;
|
| | |
|
| | | import java.math.BigDecimal;
|
| | | import java.util.ArrayList;
|
| | | import java.util.HashMap;
|
| | | import java.util.List;
|
| | | import java.util.Map;
|
| | |
|
| | | import com.yeshi.fanli.dto.order.OrderQuery;
|
| | | 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;
|
| | | 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;
|
| | | import net.sf.json.JSONObject;
|
| | |
|
| | | //淘宝客API接口
|
| | | 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;
|
| | |
|
| | | /**
|
| | | * 获取会员订单
|
| | | * |
| | | * @param startTime-开始时间
|
| | | * @param page-页码
|
| | | * @param appKey
|
| | | * @param appSecret
|
| | | * @return
|
| | | */
|
| | | private static List<TaoBaoOrder> getTaoBaoSpecialOrder(String startTime, int span, int page, String appKey,
|
| | | String appSecret) {
|
| | | OrderQuery orderQuery = new OrderQuery();
|
| | | orderQuery.startTime = startTime;
|
| | | orderQuery.tkStatus = 1;
|
| | | orderQuery.orderScene = 3;
|
| | | orderQuery.pageNo = page;
|
| | | orderQuery.pageSize = 100;
|
| | | orderQuery.span = span;
|
| | | orderQuery.orderQueryType = "create_time";
|
| | | return queryTaoBaoOrder(orderQuery, appKey, appSecret);
|
| | | }
|
| | |
|
| | | /**
|
| | | * 获取第三方会员订单
|
| | | * |
| | | * @param startTime
|
| | | * @param page
|
| | | * @param appKey
|
| | | * @param appSecret
|
| | | * @return
|
| | | */
|
| | | private static List<TaoBaoOrder> getTaoBaoSpecialThirdOrder(String startTime, int span, int page, String appKey,
|
| | | String appSecret) {
|
| | | OrderQuery orderQuery = new OrderQuery();
|
| | | orderQuery.startTime = startTime;
|
| | | orderQuery.tkStatus = 1;
|
| | | orderQuery.orderQueryType = "create_time";
|
| | | orderQuery.orderScene = 3;
|
| | | orderQuery.pageNo = page;
|
| | | orderQuery.pageSize = 100;
|
| | | orderQuery.span = span;
|
| | | orderQuery.orderCountType = 2;
|
| | | return queryTaoBaoOrder(orderQuery, appKey, appSecret);
|
| | | }
|
| | |
|
| | | /**
|
| | | * 获取渠道订单
|
| | | * |
| | | * @param startTime
|
| | | * @param appKey
|
| | | * @param appSecret
|
| | | * @return
|
| | | */
|
| | | private static List<TaoBaoOrder> getTaoBaoRelationOrder(String startTime, int span, int page, String appKey,
|
| | | String appSecret) {
|
| | |
|
| | | OrderQuery orderQuery = new OrderQuery();
|
| | | orderQuery.startTime = startTime;
|
| | | orderQuery.span = span;
|
| | | orderQuery.tkStatus = 1;
|
| | | orderQuery.orderQueryType = "create_time";
|
| | | orderQuery.orderScene = 2;
|
| | | orderQuery.pageNo = page;
|
| | | orderQuery.pageSize = 100;
|
| | | return queryTaoBaoOrder(orderQuery, appKey, appSecret);
|
| | | }
|
| | |
|
| | | /**
|
| | | * 第三方渠道订单
|
| | | * |
| | | * @param startTime
|
| | | * @param page
|
| | | * @param appKey
|
| | | * @param appSecret
|
| | | * @return
|
| | | */
|
| | | private static List<TaoBaoOrder> getTaoBaoRelationThirdOrder(String startTime, int span, int page, String appKey,
|
| | | String appSecret) {
|
| | | OrderQuery orderQuery = new OrderQuery();
|
| | | orderQuery.startTime = startTime;
|
| | | orderQuery.span = span;
|
| | | orderQuery.tkStatus = 1;
|
| | | orderQuery.orderQueryType = "create_time";
|
| | | orderQuery.orderScene = 2;
|
| | | orderQuery.pageNo = page;
|
| | | orderQuery.pageSize = 100;
|
| | | orderQuery.orderCountType = 2;
|
| | | return queryTaoBaoOrder(orderQuery, appKey, appSecret);
|
| | | }
|
| | |
|
| | | /**
|
| | | * 获取所有的订单(不带渠道信息与会员信息)
|
| | | * |
| | | * @param startTime
|
| | | * @param appKey
|
| | | * @param appSecret
|
| | | * @return
|
| | | */
|
| | | public static List<TaoBaoOrder> getTaoBaoAllOrder(String startTime, String appKey, String appSecret) {
|
| | |
|
| | | return getTaoBaoAllOrder(startTime, 1200, 1, appKey, appSecret);
|
| | | }
|
| | |
|
| | | public static List<TaoBaoOrder> getTaoBaoAllOrder(String startTime, int span, int page, String appKey,
|
| | | String appSecret) {
|
| | | OrderQuery orderQuery = new OrderQuery();
|
| | | orderQuery.startTime = startTime;
|
| | | orderQuery.span = span;
|
| | | orderQuery.tkStatus = 1;
|
| | | orderQuery.orderQueryType = "create_time";
|
| | | orderQuery.orderScene = 1;
|
| | | orderQuery.pageNo = page;
|
| | | orderQuery.pageSize = 100;
|
| | | orderQuery.orderCountType = 1;
|
| | | return queryTaoBaoOrder(orderQuery, appKey, appSecret);
|
| | | }
|
| | |
|
| | | /**
|
| | | * 获取第三方订单
|
| | | * |
| | | * @param startTime
|
| | | * @param span
|
| | | * @param page
|
| | | * @param appKey
|
| | | * @param appSecret
|
| | | * @return
|
| | | */
|
| | | public static List<TaoBaoOrder> getTaoBaoThirdAllOrder(String startTime, int span, int page, String appKey,
|
| | | String appSecret) {
|
| | | OrderQuery orderQuery = new OrderQuery();
|
| | | orderQuery.startTime = startTime;
|
| | | orderQuery.span = span;
|
| | | orderQuery.tkStatus = 1;
|
| | | orderQuery.orderQueryType = "create_time";
|
| | | orderQuery.orderScene = 1;
|
| | | orderQuery.pageNo = page;
|
| | | orderQuery.pageSize = 100;
|
| | | orderQuery.orderCountType = 2;
|
| | | 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("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);
|
| | | app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
|
| | | try {
|
| | | JSONObject json = TaoKeBaseUtil.baseRequest(map, app);
|
| | | } 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());
|
| | | }
|
| | |
|
| | | private 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);
|
| | | return parseTaoBaoOrder(json.toString());
|
| | | } catch (TaoKeApiException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | |
|
| | | return null;
|
| | | }
|
| | |
|
| | | private static List<TaoBaoOrder> parseTaoBaoOrder(String response) {
|
| | |
|
| | | List<TaoBaoOrder> orderList = new ArrayList<>();
|
| | |
|
| | | JSONObject data = JSONObject.fromObject(response);
|
| | | if (data.optJSONObject("tbk_order_get_response") == null)
|
| | | return orderList;
|
| | | if (data.optJSONObject("tbk_order_get_response").optJSONObject("results") == null)
|
| | | return orderList;
|
| | | if (data.optJSONObject("tbk_order_get_response").optJSONObject("results").optJSONArray("n_tbk_order") == null)
|
| | | return orderList;
|
| | |
|
| | | JSONArray array = data.optJSONObject("tbk_order_get_response").optJSONObject("results")
|
| | | .optJSONArray("n_tbk_order");
|
| | | 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("num_iid"));
|
| | | taoBaoOrder.setClassName(item.optString("auction_category"));
|
| | | taoBaoOrder.setClickTime(item.optString("click_time"));
|
| | | taoBaoOrder.setCount(item.optInt("item_num"));
|
| | | taoBaoOrder.setCreateTime(item.optString("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")).multiply(new BigDecimal(100)));
|
| | | 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));
|
| | | taoBaoOrder.setPrice(new BigDecimal(item.optString("price")));
|
| | | if (!StringUtil.isNullOrEmpty(item.optString("pay_price")))
|
| | | taoBaoOrder.setSettlement(new BigDecimal(item.optString("pay_price")));
|
| | | else
|
| | | taoBaoOrder.setSettlement(new BigDecimal(0));
|
| | | taoBaoOrder.setSettlementTime(item.optString("earning_time"));
|
| | | taoBaoOrder.setShop(item.optString("seller_shop_title"));
|
| | | taoBaoOrder.setSourceMediaId(item.optString("site_id"));
|
| | | taoBaoOrder.setSourceMediaName(item.optString("site_name"));
|
| | | taoBaoOrder.setsRatio(null);
|
| | | taoBaoOrder.setSubsidy(null);
|
| | | if (!StringUtil.isNullOrEmpty(item.optString("subsidy_rate")))
|
| | | taoBaoOrder.setSubsidyRatio(
|
| | | new BigDecimal(item.optString("subsidy_rate")).multiply(new BigDecimal(100)));
|
| | | 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")).multiply(new BigDecimal(100)));
|
| | | else if (!StringUtil.isNullOrEmpty(item.optString("total_commission_rate")))
|
| | | taoBaoOrder.setTkRate(
|
| | | new BigDecimal(item.optString("total_commission_rate")).multiply(new BigDecimal(100)));
|
| | | taoBaoOrder.setTransactionPlatform(item.optString("terminal_type"));
|
| | | taoBaoOrder.setRelationId(item.optString("relation_id"));
|
| | | taoBaoOrder.setSpecialId(item.optString("special_id"));
|
| | | taoBaoOrder.setTradeId(item.optString("trade_id"));
|
| | | orderList.add(taoBaoOrder);
|
| | | } catch (Exception e) {
|
| | | try {
|
| | | LogHelper.errorDetailInfo(e, "订单号信息:" + item.toString(), "订单解析出错");
|
| | | } catch (Exception e1) {
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | return orderList;
|
| | | }
|
| | |
|
| | | 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, TaoBaoConstant.TAOBAO_AUTH_APPKEY,
|
| | | TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
|
| | | while (orderList.size() == 100 * page) {
|
| | | page++;
|
| | | List<TaoBaoOrder> tempOrderList = getTaoBaoSpecialOrder(startTimeStr, span, page,
|
| | | TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
|
| | | if (tempOrderList != null && tempOrderList.size() > 0)
|
| | | orderList.addAll(tempOrderList);
|
| | | }
|
| | | return orderList;
|
| | | }
|
| | |
|
| | | /**
|
| | | * 获取第三方普通订单
|
| | | * |
| | | * @param startTime
|
| | | * @param span
|
| | | * @return
|
| | | */
|
| | | 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);
|
| | | while (orderList.size() == 100 * page) {
|
| | | page++;
|
| | | List<TaoBaoOrder> tempOrderList = getTaoBaoSpecialThirdOrder(startTimeStr, span, page,
|
| | | TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
|
| | | if (tempOrderList != null && tempOrderList.size() > 0)
|
| | | orderList.addAll(tempOrderList);
|
| | | }
|
| | | return orderList;
|
| | | }
|
| | |
|
| | | 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);
|
| | | while (orderList.size() == 100 * page) {
|
| | | page++;
|
| | | List<TaoBaoOrder> tempOrderList = getTaoBaoRelationOrder(startTimeStr, span, page,
|
| | | TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
|
| | | if (tempOrderList != null && tempOrderList.size() > 0)
|
| | | orderList.addAll(tempOrderList);
|
| | | }
|
| | | return orderList;
|
| | | }
|
| | |
|
| | | 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);
|
| | | while (orderList.size() == 100 * page) {
|
| | | page++;
|
| | | List<TaoBaoOrder> tempOrderList = getTaoBaoRelationThirdOrder(startTimeStr, span, page,
|
| | | TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
|
| | | if (tempOrderList != null && tempOrderList.size() > 0)
|
| | | orderList.addAll(tempOrderList);
|
| | | }
|
| | | return orderList;
|
| | | }
|
| | |
|
| | | /**
|
| | | * 获取某个区间的会员订单
|
| | | * |
| | | * @param startTime
|
| | | * @param endTime
|
| | | * @return
|
| | | */
|
| | | public static List<TaoBaoOrder> getSpecialOrder(long startTime, long endTime) {
|
| | | 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 = getSpecialOrder(startT, s);
|
| | | if (tempOrderList != null && tempOrderList.size() > 0)
|
| | | orderList.addAll(tempOrderList);
|
| | | }
|
| | | return orderList;
|
| | | }
|
| | |
|
| | | /**
|
| | | * 获取某个区间的第三方会员订单
|
| | | * |
| | | * @param startTime
|
| | | * @param endTime
|
| | | * @return
|
| | | */
|
| | | public static List<TaoBaoOrder> getThirdSpecialOrder(long startTime, long endTime) {
|
| | | 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 = getThirdTSpecialOrder(startT, s);
|
| | | if (tempOrderList != null && tempOrderList.size() > 0)
|
| | | orderList.addAll(tempOrderList);
|
| | | }
|
| | | return orderList;
|
| | | }
|
| | |
|
| | | /**
|
| | | * 获取渠道订单
|
| | | * |
| | | * @param startTime
|
| | | * @param endTime
|
| | | * @return
|
| | | */
|
| | | public static List<TaoBaoOrder> getRelationOrder(long startTime, long endTime) {
|
| | | 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 = getRelationOrder(startT, s);
|
| | | if (tempOrderList != null && tempOrderList.size() > 0)
|
| | | orderList.addAll(tempOrderList);
|
| | | }
|
| | | return orderList;
|
| | | }
|
| | |
|
| | | /**
|
| | | * 获取某个区间的第三方渠道订单
|
| | | * |
| | | * @param startTime
|
| | | * @param endTime
|
| | | * @return
|
| | | */
|
| | | public static List<TaoBaoOrder> getThirdRelationOrder(long startTime, long endTime) {
|
| | | 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 = getThirdRelationOrder(startT, s);
|
| | | if (tempOrderList != null && tempOrderList.size() > 0)
|
| | | orderList.addAll(tempOrderList);
|
| | | }
|
| | | 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);// 加个延时,防止API请求频率限制
|
| | | } catch (InterruptedException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | | return orderList;
|
| | | }
|
| | |
|
| | | public static List<TaoBaoWeiQuanOrder> getTaoBaoWeiQuanOrderList() {
|
| | |
|
| | | 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; |
| | | |
| | | //淘宝客API接口 |
| | | 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(), "订单解析出错"); |
| | | } 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(), "订单解析出错"); |
| | | } 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")); |
| | | // 解析商品信息 |
| | | 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); |
| | | |
| | | } |
| | | } |