From 573c491b4a1ba60e12a5678a01c1546c0077c1ee Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 30 七月 2019 09:07:42 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoOrderUtil.java |  128 +++++++++++++++++++++++++++++++-----------
 1 files changed, 93 insertions(+), 35 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 199b249..40633a8 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
@@ -1,5 +1,8 @@
 package com.yeshi.fanli.util.taobao;
 
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.math.BigDecimal;
@@ -7,6 +10,7 @@
 import java.util.ArrayList;
 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;
@@ -304,16 +308,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) {
@@ -572,38 +568,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;
 					}
 				}
@@ -681,9 +681,67 @@
 			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("璁㈠崟鐨刼rderBy瓒呰繃8浣�:" + taoBaoOrder.getOrderBy());
+			}
+			int orderBy = Integer.parseInt(orderByStr);
+			// taoBaoOrder.setOrderBy(orderBy);
+		}
+	}
+
 	/**
 	 * 璁$畻閭�璇疯禋鐨勮繑鍒╂椂闂�
 	 * 

--
Gitblit v1.8.0