From f4a0f2acc63d7785eab108419a4e16f5f688cb95 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期六, 18 一月 2020 12:06:27 +0800 Subject: [PATCH] 用户注册信息 --- fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoOrderUtil.java | 215 ++++++++++++++++++++++++++++++++--------------------- 1 files changed, 130 insertions(+), 85 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoOrderUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoOrderUtil.java index 56f34d3..d466899 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoOrderUtil.java +++ b/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoOrderUtil.java @@ -5,14 +5,14 @@ import java.math.BigDecimal; import java.net.URLEncoder; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.Date; import java.util.HashMap; +import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; - -import javax.annotation.PostConstruct; -import javax.annotation.Resource; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; @@ -20,21 +20,15 @@ import org.springframework.stereotype.Component; import org.yeshi.utils.HttpUtil; +import com.yeshi.fanli.dto.order.OrderItem; import com.yeshi.fanli.entity.bus.user.Order; -import com.yeshi.fanli.entity.bus.user.OrderItem; import com.yeshi.fanli.entity.bus.user.UserInfo; import com.yeshi.fanli.entity.order.CommonOrder; import com.yeshi.fanli.entity.taobao.TaoBaoOrder; import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig; import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder; -import com.yeshi.fanli.exception.TaoBaoOrderException; +import com.yeshi.fanli.exception.order.TaoBaoOrderException; import com.yeshi.fanli.log.LogHelper; -import com.yeshi.fanli.service.inter.config.ConfigService; -import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService; -import com.yeshi.fanli.service.inter.hongbao.HongBaoService; -import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce; -import com.yeshi.fanli.service.inter.order.OrderItemServcie; -import com.yeshi.fanli.service.inter.order.OrderService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.MoneyBigDecimalUtil; import com.yeshi.fanli.util.StringUtil; @@ -47,40 +41,10 @@ @Component public class TaoBaoOrderUtil { - private final static String CACHENAME = "tbCookie"; - private static final String ORDERFAILURE = "璁㈠崟澶辨晥"; private static final String ORDERPAYMENT = "璁㈠崟浠樻"; private static final String ORDERSETTLEMENT = "璁㈠崟缁撶畻"; private static final String ORDERSUCCESS = "璁㈠崟鎴愬姛"; - - @Resource - private OrderService orderService; - @Resource - private HongBaoService hongBaoService; - @Resource - private ConfigService configService; - - @Resource - private OrderItemServcie orderItemServcie; - - @Resource - private HongBaoManageService hongBaoManageService; - - @Resource - private ThreeSaleSerivce threeSaleSerivce; - - private static TaoBaoOrderUtil taoBaoOrderUtil; - - @PostConstruct - public void init() { - taoBaoOrderUtil = this; - taoBaoOrderUtil.orderService = this.orderService; - taoBaoOrderUtil.hongBaoService = this.hongBaoService; - taoBaoOrderUtil.configService = this.configService; - taoBaoOrderUtil.hongBaoManageService = this.hongBaoManageService; - taoBaoOrderUtil.orderItemServcie = this.orderItemServcie; - } /** * 鑾峰彇娣樺疂鑱旂洘鐨凜ookie @@ -137,14 +101,14 @@ String as = gm.getResponseBodyAsString(); JSONObject root = JSONObject.fromObject(as); if (root.optInt("code") == 0) {// 涓婃姤鎴愬姛 - LogHelper.cookieLog("涓婃姤鎴愬姛锛�"); + LogHelper.error("涓婃姤鎴愬姛锛�"); return; } - LogHelper.cookieLog("涓婃姤澶辫触锛�"); + LogHelper.error("涓婃姤澶辫触锛�"); } catch (Exception e) { e.printStackTrace(); - LogHelper.cookieLog("涓婃姤澶辫触锛�"); + LogHelper.error("涓婃姤澶辫触锛�"); } } @@ -157,7 +121,7 @@ public static List<TaoBaoOrder> getOrderList(int day, TaoBaoUnionConfig config) { String cookie1 = getTaoBaoCookie(config.getAccount()); - LogHelper.cookieLog("璐﹀彿涓猴細" + config.getAccount() + ",cookie涓猴細" + cookie1); + LogHelper.error("璐﹀彿涓猴細" + config.getAccount() + ",cookie涓猴細" + cookie1); String[] cookies = new String[] { cookie1 }; List<TaoBaoOrder> list = new ArrayList<TaoBaoOrder>(); @@ -231,7 +195,7 @@ private static List<TaoBaoOrder> downLoadOrderFromTaoBao(String url, TaoBaoUnionConfig config) throws TaoBaoOrderException { String cookie1 = getTaoBaoCookie(config.getAccount()); - LogHelper.cookieLog("璐﹀彿涓猴細" + config.getAccount() + ",cookie涓猴細" + cookie1); + LogHelper.error("璐﹀彿涓猴細" + config.getAccount() + ",cookie涓猴細" + cookie1); String[] cookies = new String[] { cookie1 }; List<TaoBaoOrder> list = new ArrayList<TaoBaoOrder>(); int i = 0; @@ -343,16 +307,8 @@ return getOrderList(30, config); } - /** - * 鑾峰彇缁存潈鎴愬姛璁㈠崟 - * - * @param startTime - * @param endTime - * @return - */ - public static List<TaoBaoWeiQuanOrder> getWeiQuanOrders(long startTime, long endTime, TaoBaoUnionConfig config) { - String cookie = getTaoBaoCookie(config.getAccount()); - return getWeiQuanOrders(cookie, startTime, endTime); + public static List<TaoBaoWeiQuanOrder> getWeiQuanOrders(InputStream input) { + return parseWeiQuanOrder(input); } private static List<TaoBaoWeiQuanOrder> getWeiQuanOrders(String cookies, long startTime, long endTime) { @@ -595,7 +551,6 @@ } - /** * 瑙f瀽缁存潈璁㈠崟 * @@ -612,38 +567,42 @@ for (int c = 0; c < sheet.getColumns(); c++) { String content = sheet.getCell(c, r).getContents().trim(); switch (c) { - case 0:// - orderRecord.setOrderId(content); - break; - case 1:// - orderRecord.setOrderItemId(content); - break; - case 2:// - orderRecord.setGoodsName(content); - break; - case 3: - orderRecord.setMoney(StringUtil.isNullOrEmpty(content) ? null : new BigDecimal(content)); - break; - case 4: - orderRecord.setFanMoney(StringUtil.isNullOrEmpty(content) ? null : new BigDecimal(content)); - break; - case 5:// - orderRecord.setState(content); - break; - case 6:// - if (!StringUtil.isNullOrEmpty(content)) - orderRecord.setJieSuanTime( - new Date(TimeUtil.convertToTimeTemp(content, "yyyy-MM-dd HH:mm:ss"))); - break; - case 7:// + case 0:// 缁存潈鏃堕棿 if (!StringUtil.isNullOrEmpty(content)) orderRecord.setWeiQuanTime( new Date(TimeUtil.convertToTimeTemp(content, "yyyy-MM-dd HH:mm:ss"))); break; - case 8:// + case 1:// 缁存潈瀹屾垚鏃堕棿 if (!StringUtil.isNullOrEmpty(content)) orderRecord.setWeiQuanFinishTime( new Date(TimeUtil.convertToTimeTemp(content, "yyyy-MM-dd HH:mm:ss"))); + break; + case 2:// 缁撶畻鏃堕棿 + if (!StringUtil.isNullOrEmpty(content)) + orderRecord.setJieSuanTime( + new Date(TimeUtil.convertToTimeTemp(content, "yyyy-MM-dd HH:mm:ss"))); + break; + case 3:// 鍟嗗搧鍚嶇О + orderRecord.setGoodsName(content); + break; + case 5:// 娣樺疂璁㈠崟鍙� + orderRecord.setOrderId(content); + break; + case 6:// 娣樺疂瀛愯鍗曞彿 + orderRecord.setOrderItemId(content); + break; + case 7:// 缁存潈鐘舵�� + orderRecord.setState(content); + break; + case 8:// 缁撶畻閲戦 + + break; + case 9:// 閫�娆鹃噾棰� + orderRecord.setMoney(StringUtil.isNullOrEmpty(content) ? null : new BigDecimal(content)); + break; + + case 10:// 杩旇繕鍟嗗閲戦 + orderRecord.setFanMoney(StringUtil.isNullOrEmpty(content) ? null : new BigDecimal(content)); break; } } @@ -721,7 +680,65 @@ order.setOrderBy(map.get(order.getOrderId()).size() + 1); map.get(order.getOrderId()).add(order); } + + // 璁㈠崟鎺掑簭鍊肩伆搴︽祴璇� + try { + for (Iterator<String> its = map.keySet().iterator(); its.hasNext();) { + String orderId = its.next(); + try { + setOrderBy(map.get(orderId)); + } catch (Exception e) { + LogHelper.errorDetailInfo(e, "璁㈠崟鍙�:" + orderId, "璁㈠崟鎺掑簭鍊肩伆搴︽祴璇�"); + } + } + } catch (Exception e) { + } + return map; + } + + public static void setOrderBy(List<TaoBaoOrder> orderList) {// 鎻愬彇涓�鏍风殑 + if (orderList == null || orderList.size() == 1) + return; + int len = orderList.get(0).getTradeId().length(); + int startIndex = 0; + for (int i = 0; i < len; i++) { + boolean isSame = true; + for (int j = 0; j < orderList.size() - 1; j++) { + if (orderList.get(j).getTradeId().charAt(i) != orderList.get(j + 1).getTradeId().charAt(i)) { + isSame = false; + break; + } + } + if (!isSame) { + startIndex = i; + break; + } + } + int endIndex = 0; + + for (int i = len - 1; i >= 0; i--) { + boolean isSame = true; + for (int j = 0; j < orderList.size() - 1; j++) { + if (orderList.get(j).getTradeId().charAt(i) != orderList.get(j + 1).getTradeId().charAt(i)) { + isSame = false; + break; + } + } + if (!isSame) { + endIndex = i; + break; + } + } + for (TaoBaoOrder taoBaoOrder : orderList) { + String tradeId = taoBaoOrder.getTradeId(); + String orderByStr = tradeId.substring(startIndex, endIndex + 1); + if (orderByStr.length() > 8) { + LogHelper.error(taoBaoOrder.getOrderId() + "-璁㈠崟鐨刼rderBy瓒呰繃8浣�:" + taoBaoOrder.getOrderBy()); + } + int orderBy = Integer.parseInt(orderByStr); + // taoBaoOrder.setOrderBy(orderBy); + } } /** @@ -750,7 +767,10 @@ CommonOrder commonOrder = new CommonOrder(); commonOrder.setCount(taoBaoOrder.getCount()); commonOrder.setCreateTime(new Date()); - commonOrder.seteIncome(taoBaoOrder.geteIncome()); + if (taoBaoOrder.geteIncome() != null && taoBaoOrder.getSubsidy() != null) + commonOrder.seteIncome(taoBaoOrder.geteIncome().add(taoBaoOrder.getSubsidy())); + else + commonOrder.seteIncome(taoBaoOrder.geteIncome()); commonOrder.setEstimate(taoBaoOrder.getEstimate()); commonOrder.setOrderNo(taoBaoOrder.getOrderId()); commonOrder.setPayment(taoBaoOrder.getPayment()); @@ -758,8 +778,8 @@ if (!StringUtil.isNullOrEmpty(taoBaoOrder.getSettlementTime())) commonOrder.setSettleTime( new Date(TimeUtil.convertToTimeTemp(taoBaoOrder.getSettlementTime(), "yyyy-MM-dd HH:mm:ss"))); - commonOrder.setSourcePosition( - String.format("mm_%s_%s_%s", "124933865", taoBaoOrder.getSourceMediaId(), taoBaoOrder.getAdPositionId())); + commonOrder.setSourcePosition(String.format("mm_%s_%s_%s", "124933865", taoBaoOrder.getSourceMediaId(), + taoBaoOrder.getAdPositionId())); commonOrder.setSourceType(Constant.SOURCE_TYPE_TAOBAO); int state = 0; if ("璁㈠崟浠樻".equalsIgnoreCase(taoBaoOrder.getOrderState())) { @@ -776,8 +796,33 @@ commonOrder.setThirdCreateTime( new Date(TimeUtil.convertToTimeTemp(taoBaoOrder.getCreateTime(), "yyyy-MM-dd HH:mm:ss"))); commonOrder.setUpdateTime(new Date()); + commonOrder.setTradeId(taoBaoOrder.getTradeId()); return commonOrder; } + + /** + * 鑾峰彇涓�缁勮鍗曠殑hash鍊� + * + * @param list + * @return + */ + public static String getOrderDataHashCode(List<TaoBaoOrder> list) { + List<TaoBaoOrder> orderList = new ArrayList<>(); + orderList.addAll(list); + Comparator<TaoBaoOrder> orderCM = new Comparator<TaoBaoOrder>() { + + @Override + public int compare(TaoBaoOrder o1, TaoBaoOrder o2) { + return Long.parseLong(o1.getTradeId()) - Long.parseLong(o2.getTradeId()) > 0 ? 1 : -1; + } + }; + Collections.sort(orderList, orderCM); + String sts = ""; + for (TaoBaoOrder order : orderList) { + sts += (order.getTradeId() + "-" + order.getSpecialId() + "-" + order.getRelationId()); + } + return StringUtil.Md5(sts); + } } -- Gitblit v1.8.0