| | |
| | | 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.TaoBaoOrder;
|
| | | import com.yeshi.fanli.entity.taobao.TaoBaoOrderGoods;
|
| | | import com.yeshi.fanli.entity.taobao.TaoBaoPunishOrder;
|
| | | import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
|
| | | import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
|
| | | import com.yeshi.fanli.exception.taobao.TaoKeApiException;
|
| | | import com.yeshi.fanli.log.LogHelper;
|
| | | import com.yeshi.fanli.util.Constant;
|
| | | import com.yeshi.fanli.util.StringUtil;
|
| | | import com.yeshi.fanli.util.TaoBaoConstant;
|
| | | import com.yeshi.fanli.util.TimeUtil;
|
| | |
| | | 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);
|
| | | }
|
| | |
|
| | | private static TaoBaoPunishOrder parsePunishOrder(JSONObject data) {
|
| | | TaoBaoPunishOrder order = new TaoBaoPunishOrder();
|
| | |
| | | }
|
| | | }
|
| | | return resultList;
|
| | | }
|
| | |
|
| | | 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) {
|
| | |
| | | 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.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"));
|
| | | |
| | | taoBaoOrder.setGoods(goods);
|
| | | orderList.add(taoBaoOrder);
|
| | | } catch (Exception e) {
|
| | | try {
|
| | |
| | | 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;
|
| | | }
|
| | | private static TaoBaoOrderResultDTO parseTaoBaoOrderNew(String response) {
|
| | |
|
| | | /**
|
| | | * 获取第三方普通订单
|
| | | * |
| | | * @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;
|
| | | }
|
| | | TaoBaoOrderResultDTO dto = new TaoBaoOrderResultDTO(false, false, null, new ArrayList<>());
|
| | |
|
| | | 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);
|
| | | 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;
|
| | | }
|
| | | 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;
|
| | | 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"));
|
| | | orderList.add(taoBaoOrder);
|
| | | } catch (Exception e) {
|
| | | try {
|
| | | LogHelper.errorDetailInfo(e, "订单号信息:" + item.toString(), "订单解析出错");
|
| | | } catch (Exception e1) {
|
| | | }
|
| | | }
|
| | | }
|
| | | List<TaoBaoOrder> tempOrderList = getThirdTSpecialOrder(startT, s);
|
| | | if (tempOrderList != null && tempOrderList.size() > 0)
|
| | | orderList.addAll(tempOrderList);
|
| | | }
|
| | | return orderList;
|
| | | dto.setOrderList(orderList);
|
| | | return dto;
|
| | | }
|
| | |
|
| | | /**
|
| | | * 获取渠道订单
|
| | | * |
| | | * @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;
|
| | | public static WeiQuanOrderResult getTaoBaoRelationWeiQuanOrderList(Date startTime, int searchType, int page,
|
| | | boolean third) {
|
| | |
|
| | | return getRelationAndSpecialWeiQuanOrderList(startTime, searchType, page, third, 1);
|
| | | }
|
| | |
|
| | | /**
|
| | | * 获取某个区间的第三方渠道订单
|
| | | * |
| | | * @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;
|
| | | public static WeiQuanOrderResult getTaoBaoSpecialWeiQuanOrderList(Date startTime, int searchType, int page,
|
| | | boolean third) {
|
| | |
|
| | | return getRelationAndSpecialWeiQuanOrderList(startTime, searchType, page, third, 2);
|
| | | }
|
| | |
|
| | | 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 WeiQuanOrderResult getTaoBaoRelationWeiQuanOrderList(Date startTime, int page, boolean third) {
|
| | |
|
| | | return getRelationAndSpecialWeiQuanOrderList(startTime, page, third, 1);
|
| | | }
|
| | |
|
| | | public static WeiQuanOrderResult getTaoBaoSpecialWeiQuanOrderList(Date startTime, int page, boolean third) {
|
| | |
|
| | | return getRelationAndSpecialWeiQuanOrderList(startTime, page, third, 2);
|
| | | }
|
| | |
|
| | | private static WeiQuanOrderResult getRelationAndSpecialWeiQuanOrderList(Date startTime, int page, boolean third,
|
| | | int bizType) {
|
| | | private static WeiQuanOrderResult getRelationAndSpecialWeiQuanOrderList(Date startTime, int searchType, int page,
|
| | | boolean third, int bizType) {
|
| | | WeiQuanOrderResult finalResult = new WeiQuanOrderResult();
|
| | |
|
| | | List<TaoBaoWeiQuanOrder> list = new ArrayList<>();
|
| | |
| | | map.put("method", "taobao.tbk.relation.refund");
|
| | |
|
| | | JSONObject option = new JSONObject();
|
| | | option.put("search_type", 2);
|
| | | 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);
|
| | |
| | | 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")));
|
| | | 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")));
|
| | | 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")));
|
| | | 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")));
|
| | | fanMoney = fanMoney.add(new BigDecimal(item.optString("tk_commission_fee_refund_pub")));
|
| | | }
|
| | |
|
| | | if (fanMoney.compareTo(new BigDecimal(0)) == 0)
|
| | |
| | |
|
| | | 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<TaoBaoOrder> 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, 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;
|
| | | }
|
| | |
|
| | | /**
|
| | | * 淘宝订单查询
|
| | | * |
| | | * @param startTime
|
| | | * @param endTime
|
| | | * @param positionIndex
|
| | | * @param queryType
|
| | | * 1:按照订单淘客创建时间查询,2:按照订单淘客付款时间查询,3:按照订单淘客结算时间查询
|
| | | * @param orderScene
|
| | | * @return
|
| | | */
|
| | | 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");
|
| | | 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);
|
| | | return parseTaoBaoOrderNew(json.toString());
|
| | | } catch (Exception e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | | return null;
|
| | | }
|
| | | }
|