From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 25 二月 2025 16:41:22 +0800
Subject: [PATCH] 淘宝转链接口更新

---
 fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoOrderUtil.java | 1615 +++++++++++++++++++++++++++++------------------------------
 1 files changed, 787 insertions(+), 828 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 3852d0b..de618c1 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,828 +1,787 @@
-package com.yeshi.fanli.util.taobao;
-
-import java.io.IOException;
-import java.io.InputStream;
-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 org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.HttpException;
-import org.apache.commons.httpclient.methods.GetMethod;
-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.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.order.TaoBaoOrderException;
-import com.yeshi.fanli.log.LogHelper;
-import com.yeshi.fanli.util.Constant;
-import com.yeshi.fanli.util.MoneyBigDecimalUtil;
-import com.yeshi.fanli.util.StringUtil;
-import com.yeshi.fanli.util.TimeUtil;
-
-import jxl.Sheet;
-import jxl.Workbook;
-import net.sf.json.JSONObject;
-
-@Component
-public class TaoBaoOrderUtil {
-
-	private static final String ORDERFAILURE = "璁㈠崟澶辨晥";
-	private static final String ORDERPAYMENT = "璁㈠崟浠樻";
-	private static final String ORDERSETTLEMENT = "璁㈠崟缁撶畻";
-	private static final String ORDERSUCCESS = "璁㈠崟鎴愬姛";
-
-	/**
-	 * 鑾峰彇娣樺疂鑱旂洘鐨凜ookie
-	 * 
-	 * @param account
-	 * @return
-	 */
-	public static String getTaoBaoCookie(String account) {
-		HttpClient client = new HttpClient();
-		try {
-			GetMethod gm = new GetMethod(String.format("http://193.112.35.168:8091/tb/cookie/getcookie?account=%s",
-					URLEncoder.encode(account, "UTF-8")));
-			client.executeMethod(gm);
-			String as = gm.getResponseBodyAsString();
-			JSONObject root = JSONObject.fromObject(as);
-			if (root.optInt("code") == 0) {
-				// EhcacheUtil.removeCache(account);
-				String cookie = root.optString("cookie");
-				return cookie;
-			}
-
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		// Cache cache = EhcacheUtil.getCache(account);
-		// if(cache==null){
-		// EhcacheUtil.addCahae(EhcacheUtil.getMyPubCacheConfig(account));
-		// String title="cookie澶辨晥鎻愰啋";
-		// String content="娣樺疂鑱旂洘璐﹀彿["+account+"],宸茬粡澶辨晥浜嗭紒";
-		// String emails = taoBaoOrderUtil.configService.get("send_email");
-		// if(emails != null && !"".equals(emails.trim())){
-		// String[] addr = emails.split(",");
-		// for (String email : addr) {
-		// MailSenderUtil.sendEmail(email, title, content);
-		// }
-		// }
-		// }
-		return "";
-	}
-
-	/**
-	 * 涓婃姤鑱旂洘鐨凜ookie鏃犳晥
-	 * 
-	 * @param account
-	 */
-	public static void reportCookieInvalid(String account) {
-		if (1 > 0)
-			return;
-		HttpClient client = new HttpClient();
-		try {
-			GetMethod gm = new GetMethod(String.format("http://193.112.35.168:8091/tb/cookie/reportinvalid?account=%s",
-					URLEncoder.encode(account, "UTF-8")));
-			client.executeMethod(gm);
-			String as = gm.getResponseBodyAsString();
-			JSONObject root = JSONObject.fromObject(as);
-			if (root.optInt("code") == 0) {// 涓婃姤鎴愬姛
-				LogHelper.cookieLog("涓婃姤鎴愬姛锛�");
-				return;
-			}
-			LogHelper.cookieLog("涓婃姤澶辫触锛�");
-
-		} catch (Exception e) {
-			e.printStackTrace();
-			LogHelper.cookieLog("涓婃姤澶辫触锛�");
-		}
-	}
-
-	/**
-	 * 鎸夊ぉ鏁扮埇鍙栨窐瀹濊仈鐩熺殑杩斿埄璁㈠崟
-	 * 
-	 * @param day
-	 * @return
-	 */
-	public static List<TaoBaoOrder> getOrderList(int day, TaoBaoUnionConfig config) {
-		String cookie1 = getTaoBaoCookie(config.getAccount());
-
-		LogHelper.cookieLog("璐﹀彿涓猴細" + config.getAccount() + ",cookie涓猴細" + cookie1);
-
-		String[] cookies = new String[] { cookie1 };
-		List<TaoBaoOrder> list = new ArrayList<TaoBaoOrder>();
-		int i = 0;
-		for (String cookie : cookies) {
-			if (com.yeshi.fanli.util.StringUtil.isNullOrEmpty(cookie)) {
-				i++;
-				continue;
-			}
-			// 鍘熷涓�30
-			String startTime = TimeUtil.getGernalTime(System.currentTimeMillis() - 1000 * 60 * 60 * 24L * day,
-					"yyyy-MM-dd");
-			String endTime = TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd");
-
-			String url = String.format(
-					"http://pub.alimama.com/report/getTbkPaymentDetails.json?spm=a219t.7664554.1998457203.85.9pFBtK&queryType=1&payStatus=&DownloadID=DOWNLOAD_REPORT_INCOME_NEW&startTime=%s&endTime=%s",
-					startTime, endTime);
-			HttpClient client = new HttpClient();
-			// client.getHostConfiguration().setProxy("192.168.1.200", 8888);
-			GetMethod gm = new GetMethod(url);
-			gm.setRequestHeader("Cookie", cookie);
-			gm.setRequestHeader("User-Agent",
-					"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36");
-			InputStream inputStream = null;
-			try {
-				client.executeMethod(gm);
-				System.out.println(gm.getStatusCode());
-				if (gm.getStatusCode() == 200) {
-					System.out.println(gm.getResponseHeader("Content-Type").getValue());
-					if (!gm.getResponseHeader("Content-Type").getValue().contains("excel")) {
-						if (i == 0) {
-							reportCookieInvalid(config.getAccount());
-						}
-						continue;
-					}
-					inputStream = gm.getResponseBodyAsStream();
-					list.addAll(parseOrder(inputStream));
-
-					// String path =
-					// TaoBaoOrderUtil.class.getClassLoader().getResource("/").getPath();
-					// String yyyyMMddHHmmss =
-					// TimeUtil.yyyyMMddHHmmss(System.currentTimeMillis());
-					// FileUtils.copyInputStreamToFile(inputStream, new
-					// File(path+"/excel/"+yyyyMMddHHmmss+"."+"xls"));
-				}
-			} catch (HttpException e) {
-				e.printStackTrace();
-			} catch (IOException e) {
-				e.printStackTrace();
-			} finally {
-				i++;
-				if (inputStream != null) {
-					try {
-						inputStream.close();
-					} catch (IOException e) {
-						e.printStackTrace();
-					}
-				}
-			}
-		}
-
-		return list;
-	}
-
-	/**
-	 * 鏍规嵁閾炬帴涓嬭浇娣樺疂璁㈠崟
-	 * 
-	 * @param url
-	 * @return
-	 */
-	private static List<TaoBaoOrder> downLoadOrderFromTaoBao(String url, TaoBaoUnionConfig config)
-			throws TaoBaoOrderException {
-		String cookie1 = getTaoBaoCookie(config.getAccount());
-		LogHelper.cookieLog("璐﹀彿涓猴細" + config.getAccount() + ",cookie涓猴細" + cookie1);
-		String[] cookies = new String[] { cookie1 };
-		List<TaoBaoOrder> list = new ArrayList<TaoBaoOrder>();
-		int i = 0;
-		for (String cookie : cookies) {
-			if (com.yeshi.fanli.util.StringUtil.isNullOrEmpty(cookie)) {
-				i++;
-				continue;
-			}
-			// 鍘熷涓�30
-
-			HttpClient client = new HttpClient();
-			// client.getHostConfiguration().setProxy("192.168.1.122", 8888);
-			GetMethod gm = new GetMethod(url);
-			gm.setRequestHeader("Cookie", cookie);
-			gm.setRequestHeader("User-Agent",
-					"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36");
-			gm.setRequestHeader("Referer", "http://pub.alimama.com/myunion.htm");
-			gm.setRequestHeader("Accept",
-					"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
-			gm.setRequestHeader("Upgrade-Insecure-Requests", "1");
-			gm.setRequestHeader("Accept-Encoding", "gzip, deflate");
-			gm.setRequestHeader("Accept-Language", "zh-CN,zh;q=0.9");
-			InputStream inputStream = null;
-			try {
-				client.executeMethod(gm);
-				System.out.println(gm.getStatusCode());
-				if (gm.getStatusCode() == 200) {
-					System.out.println(gm.getResponseHeader("Content-Type").getValue());
-					if (!gm.getResponseHeader("Content-Type").getValue().contains("excel")) {
-						if (i == 0) {
-							throw new TaoBaoOrderException(gm.getStatusCode(), "杩斿洖鐨勫唴瀹瑰紓甯�");
-						}
-						continue;
-					}
-					inputStream = gm.getResponseBodyAsStream();
-					list.addAll(parseOrder(inputStream));
-
-					// String path =
-					// TaoBaoOrderUtil.class.getClassLoader().getResource("/").getPath();
-					// String yyyyMMddHHmmss =
-					// TimeUtil.yyyyMMddHHmmss(System.currentTimeMillis());
-					// FileUtils.copyInputStreamToFile(inputStream, new
-					// File(path+"/excel/"+yyyyMMddHHmmss+"."+"xls"));
-				} else {
-					throw new TaoBaoOrderException(gm.getStatusCode(), gm.getResponseHeader("Location").getValue());
-				}
-			} catch (HttpException e) {
-				e.printStackTrace();
-			} catch (IOException e) {
-				e.printStackTrace();
-			} finally {
-				i++;
-				if (inputStream != null) {
-					try {
-						inputStream.close();
-					} catch (IOException e) {
-						e.printStackTrace();
-					}
-				}
-			}
-		}
-		return list;
-	}
-
-	/**
-	 * 鎸夋椂闂存埑鐖彇娣樺疂鑱旂洘鐨勮繑鍒╄鍗�
-	 * 
-	 * @param startTime
-	 * @param endTime
-	 * @return
-	 */
-	@SuppressWarnings("deprecation")
-	public static List<TaoBaoOrder> getOrderList(long startTime, long endTime, TaoBaoUnionConfig config)
-			throws TaoBaoOrderException {
-		String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd HH:mm:ss");
-		String endTimeStr = TimeUtil.getGernalTime(endTime, "yyyy-MM-dd HH:mm:ss");
-
-		String url = String.format(
-				"http://pub.alimama.com/report/getTbkPaymentDetails.json?spm=a219t.7664554.1998457203.10.7a7835d9UJKaiP&queryType=1&payStatus=&DownloadID=DOWNLOAD_REPORT_INCOME_NEW&startTime=%s&endTime=%s",
-				URLEncoder.encode(startTimeStr), URLEncoder.encode(endTimeStr));
-
-		return downLoadOrderFromTaoBao(url, config);
-	}
-
-	/**
-	 * 鐖彇绗笁鏂规湇鍔″晢鎺ㄥ箍璁㈠崟
-	 * 
-	 * @param startTime
-	 * @param endTime
-	 * @return
-	 */
-	@SuppressWarnings("deprecation")
-	public static List<TaoBaoOrder> getThirdServiceOrderList(long startTime, long endTime, TaoBaoUnionConfig config)
-			throws TaoBaoOrderException {
-		String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd HH:mm:ss");
-		String endTimeStr = TimeUtil.getGernalTime(endTime, "yyyy-MM-dd HH:mm:ss");
-		String url = String.format(
-				"http://pub.alimama.com/report/getTbkThirdPaymentDetails.json?spm=a219t.7664554.1998457203.10.7a7835d9UJKaiP&queryType=2&payStatus=&DownloadID=DOWNLOAD_REPORT_TK3_PUB&startTime=%s&endTime=%s",
-				URLEncoder.encode(startTimeStr), URLEncoder.encode(endTimeStr));
-		return downLoadOrderFromTaoBao(url, config);
-	}
-
-	/**
-	 * 鐖彇鏈�杩�30澶╃殑璁㈠崟
-	 * 
-	 * @return
-	 */
-	public static List<TaoBaoOrder> getOrderList(TaoBaoUnionConfig config) {
-		return getOrderList(30, config);
-	}
-
-	public static List<TaoBaoWeiQuanOrder> getWeiQuanOrders(InputStream input) {
-		return parseWeiQuanOrder(input);
-	}
-
-	private static List<TaoBaoWeiQuanOrder> getWeiQuanOrders(String cookies, long startTime, long endTime) {
-		String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd");
-		String endTimeStr = TimeUtil.getGernalTime(endTime, "yyyy-MM-dd");
-		String url = String.format(
-				"http://pub.alimama.com/report/getNewTbkRefundPaymentDetails.json?spm=a219t.7664554.1998457203.105.49cc35d9eDSunp&refundType=1&searchType=1&DownloadID=DOWNLOAD_EXPORT_CPSPAYMENT_REFUND_OVERVIEW&startTime=%s&endTime=%s",
-				startTimeStr, endTimeStr);
-		Map<String, String> headers = new HashMap<>();
-		headers.put("User-Agent",
-				"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36");
-		headers.put("Cookie", cookies);
-		headers.put("Referer", "http://pub.alimama.com/myunion.htm");
-		headers.put("Upgrade-Insecure-Requests", "1");
-		InputStream in = HttpUtil.getAsInputStream(url, headers);
-
-		List<TaoBaoWeiQuanOrder> list = new ArrayList<>();
-		list = parseWeiQuanOrder(in);
-
-		list.addAll(getThirdWeiQuanOrders(cookies, startTime, endTime));
-
-		// if (list != null)
-		// for (int i = 0; i < list.size(); i++) {
-		// if (!list.get(i).getState().equalsIgnoreCase("缁存潈鎴愬姛")) {
-		// list.remove(i);
-		// i--;
-		// }
-		// }
-		return list;
-	}
-
-	// 绗笁鏂硅鍗曠淮鏉�
-	private static List<TaoBaoWeiQuanOrder> getThirdWeiQuanOrders(String cookies, long startTime, long endTime) {
-		String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd");
-		String endTimeStr = TimeUtil.getGernalTime(endTime, "yyyy-MM-dd");
-		String url = String.format(
-				"http://pub.alimama.com/report/getNewTbkRefundPaymentDetails.json?spm=a219t.7664554.1998457203.163.158a35d9r0bV0O&refundType=2&searchType=3&DownloadID=DOWNLOAD_EXPORT_CPSPAYMENT_REFUND_OVERVIEW&startTime=%s&endTime=%s",
-				startTimeStr, endTimeStr);
-		Map<String, String> headers = new HashMap<>();
-		headers.put("User-Agent",
-				"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36");
-		headers.put("Cookie", cookies);
-		headers.put("Referer", "http://pub.alimama.com/myunion.htm");
-		headers.put("Upgrade-Insecure-Requests", "1");
-		InputStream in = HttpUtil.getAsInputStream(url, headers);
-		return parseWeiQuanOrder(in);
-	}
-
-	/**
-	 * 浠巈xcel鏂囦欢瑙f瀽璁㈠崟
-	 * 
-	 * @param in
-	 * @return
-	 */
-	public static List<TaoBaoOrder> parseOrder(InputStream in) {
-		try {
-			jxl.Workbook rwb = Workbook.getWorkbook(in);
-			Sheet sheet = rwb.getSheet(0);
-			List<TaoBaoOrder> orderRecordList = new ArrayList<TaoBaoOrder>();
-			int createtimeColumn = 0;
-			int clickTimeColumn = 0;// 鐐瑰嚮鏃堕棿
-			int titleColumn = 0;// 鍟嗗搧鍚嶇О
-			int auctionIdColumn = 0;// 鍟嗗搧ID
-			int managerWangWangColumn = 0;// 鎺屾煖鏃烘椇
-			int shopColumn = 0;// 鎵�灞炲簵閾�
-			int countColumn = 0;// 鍟嗗搧鏁�
-			int priceColumn = 0;// 鍟嗗搧鍗曚环
-			int orderStateColumn = 0; // 璁㈠崟鐘舵��
-			int orderTypeColumn = 0; // 璁㈠崟绫诲瀷
-			int iRatioColumn = 0;// 鏀跺叆姣旂巼
-			int sRatioColumn = 0;// 鍒嗘垚姣旂巼
-
-			int paymentColumn = 0; // 浠樻閲戦
-			int estimateColumn = 0;// 鏁堟灉棰勪及
-			int settlementColumn = 0; // 缁撶畻閲戦
-			int incomeColumn = 0;// 棰勪及鏀跺叆
-			int settlementTimeColumn = 0;// 缁撶畻鏃堕棿
-
-			int tkRateColumn = 0;// 浣i噾姣旂巼
-			int tkMoneyColumn = 0;// 浣i噾閲戦
-
-			int technologySupportPercentColumn = 0;// 鎶�鏈湇鍔¤垂
-			int subsidyRatioColumn = 0;// 琛ヨ创姣旂巼
-			int subsidyColumn = 0;// 琛ヨ创閲戦
-			int subsidyTypeColumn = 0;// 琛ヨ创绫诲瀷
-			int transactionPlatformColumn = 0;// 鎴愪氦骞冲彴
-			int thirdServiceColumn = 0;// 绗笁鏂规湇鍔℃潵婧�
-
-			int orderIdColumn = 0;// 璁㈠崟缂栧彿
-			int classNameColumn = 0; // 鍒嗙被鍚嶇О
-			int sourceMediaIdColumn = 0; // 濯掍綋ID
-			int sourceMediaNameColumn = 0;// 鏉ユ簮濯掍綋鍚嶇О
-			int adPositionIdColumn = 0; // 骞垮憡浣岻D
-			int adPositionNameColumn = 0;// 骞垮憡浣嶅悕绉�
-
-			for (int c = 0; c < sheet.getColumns(); c++) {
-				String content = sheet.getCell(c, 0).getContents().trim();
-				if ("鍒涘缓鏃堕棿".equalsIgnoreCase(content))
-					createtimeColumn = c;
-				else if ("鐐瑰嚮鏃堕棿".equalsIgnoreCase(content))
-					clickTimeColumn = c;
-				else if ("鍟嗗搧淇℃伅".equalsIgnoreCase(content))
-					titleColumn = c;
-				else if ("鍟嗗搧ID".equalsIgnoreCase(content))
-					auctionIdColumn = c;
-				else if ("鎺屾煖鏃烘椇".equalsIgnoreCase(content))
-					managerWangWangColumn = c;
-				else if ("鎵�灞炲簵閾�".equalsIgnoreCase(content))
-					shopColumn = c;
-				else if ("鍟嗗搧鏁�".equalsIgnoreCase(content))
-					countColumn = c;
-				else if ("鍟嗗搧鍗曚环".equalsIgnoreCase(content))
-					priceColumn = c;
-				else if ("璁㈠崟鐘舵��".equalsIgnoreCase(content))
-					orderStateColumn = c;
-				else if ("璁㈠崟绫诲瀷".equalsIgnoreCase(content))
-					orderTypeColumn = c;
-				else if ("鏀跺叆姣旂巼".equalsIgnoreCase(content))
-					iRatioColumn = c;
-				else if ("鍒嗘垚姣旂巼".equalsIgnoreCase(content))
-					sRatioColumn = c;
-				else if ("浠樻閲戦".equalsIgnoreCase(content))
-					paymentColumn = c;
-				else if ("鏁堟灉棰勪及".equalsIgnoreCase(content))
-					estimateColumn = c;
-				else if ("缁撶畻閲戦".equalsIgnoreCase(content))
-					settlementColumn = c;
-				else if ("棰勪及鏀跺叆".equalsIgnoreCase(content))
-					incomeColumn = c;
-				else if ("缁撶畻鏃堕棿".equalsIgnoreCase(content))
-					settlementTimeColumn = c;
-				else if ("浣i噾姣旂巼".equalsIgnoreCase(content))
-					tkRateColumn = c;
-				else if ("浣i噾閲戦".equalsIgnoreCase(content))
-					tkMoneyColumn = c;
-				else if ("鎶�鏈湇鍔¤垂姣旂巼".equalsIgnoreCase(content))
-					technologySupportPercentColumn = c;
-				else if ("琛ヨ创姣旂巼".equalsIgnoreCase(content))
-					subsidyRatioColumn = c;
-				else if ("琛ヨ创閲戦".equalsIgnoreCase(content))
-					subsidyColumn = c;
-				else if ("琛ヨ创绫诲瀷".equalsIgnoreCase(content))
-					subsidyTypeColumn = c;
-				else if ("鎴愪氦骞冲彴".equalsIgnoreCase(content))
-					transactionPlatformColumn = c;
-				else if ("绗笁鏂规湇鍔℃潵婧�".equalsIgnoreCase(content))
-					thirdServiceColumn = c;
-				else if ("璁㈠崟缂栧彿".equalsIgnoreCase(content))
-					orderIdColumn = c;
-				else if ("绫荤洰鍚嶇О".equalsIgnoreCase(content))
-					classNameColumn = c;
-				else if ("鏉ユ簮濯掍綋ID".equalsIgnoreCase(content))
-					sourceMediaIdColumn = c;
-				else if ("鏉ユ簮濯掍綋鍚嶇О".equalsIgnoreCase(content))
-					sourceMediaNameColumn = c;
-				else if ("骞垮憡浣岻D".equalsIgnoreCase(content))
-					adPositionIdColumn = c;
-				else if ("骞垮憡浣嶅悕绉�".equalsIgnoreCase(content))
-					adPositionNameColumn = c;
-			}
-
-			for (int r = 1; r < sheet.getRows(); r++) {
-				TaoBaoOrder orderRecord = new TaoBaoOrder();
-				for (int c = 0; c < sheet.getColumns(); c++) {
-					String content = sheet.getCell(c, r).getContents().trim();
-					if (c == createtimeColumn)
-						orderRecord.setCreateTime(content);
-					else if (c == clickTimeColumn)
-						orderRecord.setClickTime(content);
-					else if (c == titleColumn)
-						orderRecord.setTitle(content);
-					else if (c == auctionIdColumn)
-						orderRecord.setAuctionId(Long.parseLong(content));
-					else if (c == managerWangWangColumn)
-						orderRecord.setManagerWangWang(content);
-					else if (c == shopColumn)
-						orderRecord.setShop(content);
-					else if (c == countColumn)
-						orderRecord.setCount(Integer.parseInt(content));
-					else if (c == priceColumn)
-						orderRecord.setPrice(new BigDecimal(content));
-					else if (c == orderStateColumn)
-						orderRecord.setOrderState(content);
-					else if (c == orderTypeColumn)
-						orderRecord.setOrderType(content);
-					else if (c == iRatioColumn)
-						orderRecord.setiRatio(new BigDecimal(content.replace("%", "").trim()));
-					else if (c == sRatioColumn)
-						orderRecord.setsRatio(new BigDecimal(content.replace("%", "").trim()));
-					else if (c == paymentColumn)
-						orderRecord.setPayment(new BigDecimal(content));
-					else if (c == estimateColumn)
-						orderRecord.setEstimate(new BigDecimal(content));
-					else if (c == settlementColumn)
-						orderRecord.setSettlement(new BigDecimal(content));
-					else if (c == incomeColumn)
-						orderRecord.seteIncome(new BigDecimal(content));
-					else if (c == settlementTimeColumn)
-						orderRecord.setSettlementTime(content);
-					else if (c == tkRateColumn)
-						orderRecord.setTkRate(new BigDecimal(content.replace("%", "").trim()));
-					else if (c == tkMoneyColumn)
-						orderRecord.setTkMoney(new BigDecimal(content));
-					else if (c == technologySupportPercentColumn)
-						orderRecord.setTechnologySupportPercent(StringUtil.isNullOrEmpty(content) ? null
-								: new BigDecimal(content.replace("%", "").trim()));
-					else if (c == subsidyRatioColumn)
-						orderRecord.setSubsidyRatio(new BigDecimal(content.replace("%", "").trim()));
-					else if (c == subsidyColumn)
-						orderRecord.setSubsidy(new BigDecimal(content));
-					else if (c == subsidyTypeColumn)
-						orderRecord.setSubsidyType(content);
-					else if (c == transactionPlatformColumn)
-						orderRecord.setTransactionPlatform(content);
-					else if (c == thirdServiceColumn)
-						orderRecord.setThirdService(content);
-					else if (c == orderIdColumn)
-						orderRecord.setOrderId(content);
-					else if (c == classNameColumn)
-						orderRecord.setClassName(content);
-					else if (c == sourceMediaIdColumn)
-						orderRecord.setSourceMediaId(content);
-					else if (c == sourceMediaNameColumn)
-						orderRecord.setSourceMediaName(content);
-					else if (c == adPositionIdColumn)
-						orderRecord.setAdPositionId(content);
-					else if (c == adPositionNameColumn)
-						orderRecord.setAdPositionName(content);
-				}
-
-				if (!StringUtil.isNullOrEmpty(orderRecord.getAuctionId() + ""))
-					orderRecordList.add(orderRecord);
-			}
-			return orderRecordList;
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-
-		return new ArrayList<TaoBaoOrder>();
-
-	}
-
-	/**
-	 * 瑙f瀽缁存潈璁㈠崟
-	 * 
-	 * @param in
-	 * @return
-	 */
-	public static List<TaoBaoWeiQuanOrder> parseWeiQuanOrder(InputStream in) {
-		try {
-			jxl.Workbook rwb = Workbook.getWorkbook(in);
-			Sheet sheet = rwb.getSheet(0);
-			List<TaoBaoWeiQuanOrder> orderRecordList = new ArrayList<TaoBaoWeiQuanOrder>();
-			for (int r = 1; r < sheet.getRows(); r++) {
-				TaoBaoWeiQuanOrder orderRecord = new TaoBaoWeiQuanOrder();
-				for (int c = 0; c < sheet.getColumns(); c++) {
-					String content = sheet.getCell(c, r).getContents().trim();
-					switch (c) {
-					case 0:// 缁存潈鏃堕棿
-						if (!StringUtil.isNullOrEmpty(content))
-							orderRecord.setWeiQuanTime(
-									new Date(TimeUtil.convertToTimeTemp(content, "yyyy-MM-dd HH:mm:ss")));
-						break;
-					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;
-					}
-				}
-				if (!StringUtil.isNullOrEmpty(orderRecord.getOrderId()))
-					orderRecordList.add(orderRecord);
-			}
-			return orderRecordList;
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return new ArrayList<TaoBaoWeiQuanOrder>();
-	}
-
-	public static OrderItem convert(TaoBaoOrder tbo, Order order, BigDecimal rate, List<String> tbImgList) {
-		OrderItem orderItem = new OrderItem();
-		orderItem.setFanTime(0L);
-		orderItem.setIsGift(false);
-		orderItem.setRefundTime(0L);
-		orderItem.setSettlementTime(0L);
-		String createTime = tbo.getCreateTime();
-		orderItem.setCreateTime(TimeUtil.convertDateToTemp2(createTime));
-		if ("璁㈠崟缁撶畻".equalsIgnoreCase(tbo.getOrderState()))
-			orderItem.setFanMoney(MoneyBigDecimalUtil.mul(rate.divide(BigDecimal.valueOf(100)), tbo.geteIncome()));
-		else
-			orderItem.setFanMoney(MoneyBigDecimalUtil.mul(rate.divide(BigDecimal.valueOf(100)), tbo.getEstimate()));
-		if ("璁㈠崟缁撶畻".equalsIgnoreCase(tbo.getOrderState()))
-			orderItem.setPayMoney(tbo.getSettlement());
-		else
-			orderItem.setPayMoney(tbo.getPayment());
-
-		orderItem.setOrder(order);
-		orderItem.setOrderId(tbo.getOrderId());
-
-		if (tbImgList != null && tbImgList.size() > 0) {
-			orderItem.setPicture(tbImgList.get(0));
-		} else {
-			orderItem.setPicture("");
-		}
-		if (ORDERFAILURE.equals(tbo.getOrderState())) {
-			orderItem.setState(-1);
-		} else if (ORDERPAYMENT.equals(tbo.getOrderState())) {
-			orderItem.setState(1);
-		} else if (ORDERSETTLEMENT.equals(tbo.getOrderState())) {
-			orderItem.setState(2);
-			orderItem.setSettlementTime(TimeUtil.convertDateToTemp2(tbo.getSettlementTime()));
-		} else if (ORDERSUCCESS.equals(tbo.getOrderState())) // 鍏朵粬鍊�
-		{
-			orderItem.setState(2);
-			orderItem.setSettlementTime(TimeUtil.convertDateToTemp2(tbo.getSettlementTime()));
-		}
-		orderItem.setTitle(tbo.getTitle());
-		orderItem.setType(1);
-		UserInfo userInfo = order.getUserInfo();
-		orderItem.setUserInfo(userInfo);
-		orderItem.setAuctionId(tbo.getAuctionId());
-		orderItem.setVersion(order.getVersion());
-		orderItem.setPrePayMoney(new BigDecimal(tbo.getCount()).multiply(tbo.getPrice()));
-		// orderItem.setGoodsPrice(tbo.getPrice());
-		// orderItem.setGoodsNum(tbo.getCount());
-		return orderItem;
-	}
-
-	/**
-	 * 灏嗘窐瀹濊鍗曟寜鐓ц鍗曞彿褰掔被
-	 * 
-	 * @param orderList
-	 * @return
-	 */
-	public static Map<String, List<TaoBaoOrder>> classifyTaoBaoOrderByOrderId(List<TaoBaoOrder> orderList) {
-		Map<String, List<TaoBaoOrder>> map = new ConcurrentHashMap<>();
-		for (TaoBaoOrder order : orderList) {
-			if (map.get(order.getOrderId()) == null)
-				map.put(order.getOrderId(), new ArrayList<>());
-			// 璁剧疆鎺掑簭鍊硷紝浠�1寮�濮�
-			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);
-		}
-	}
-
-	/**
-	 * 璁$畻閭�璇疯禋鐨勮繑鍒╂椂闂�
-	 * 
-	 * @param balanceTime
-	 * @return
-	 */
-	public static long computeInviteFanLiTime(long balanceTime) {
-		int month = Integer.parseInt(TimeUtil.getGernalTime(balanceTime, "M"));
-		int year = Integer.parseInt(TimeUtil.getGernalTime(balanceTime, "yyyy"));
-		String time = "";
-		if (month == 12) {
-			time = (year + 1) + "-1";
-		} else {
-			time = year + "-" + (month + 1);
-		}
-		time += "-25";
-		// 璁句负25鏃ュ噷鏅ㄥ埌璐�
-		time += " 00:00:00";
-		// TimeUtil.getGernalTime(balanceTime, "HH:mm:ss");
-		return TimeUtil.convertToTimeTemp(time, "yyyy-M-dd HH:mm:ss");
-	}
-
-	public static CommonOrder convert(TaoBaoOrder taoBaoOrder) {
-		CommonOrder commonOrder = new CommonOrder();
-		commonOrder.setCount(taoBaoOrder.getCount());
-		commonOrder.setCreateTime(new Date());
-		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());
-		commonOrder.setSettlement(taoBaoOrder.getSettlement());
-		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.setSourceType(Constant.SOURCE_TYPE_TAOBAO);
-		int state = 0;
-		if ("璁㈠崟浠樻".equalsIgnoreCase(taoBaoOrder.getOrderState())) {
-			state = CommonOrder.STATE_FK;
-		} else if ("璁㈠崟鎴愬姛".equalsIgnoreCase(taoBaoOrder.getOrderState())) {
-			state = CommonOrder.STATE_FK;
-		} else if ("璁㈠崟澶辨晥".equalsIgnoreCase(taoBaoOrder.getOrderState())) {
-			state = CommonOrder.STATE_SX;
-		} else if ("璁㈠崟缁撶畻".equalsIgnoreCase(taoBaoOrder.getOrderState())) {
-			state = CommonOrder.STATE_JS;
-		}
-		commonOrder.setOrderBy(taoBaoOrder.getOrderBy());
-		commonOrder.setState(state);
-		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();
-		}
-		return StringUtil.Md5(sts);
-	}
-}
+package com.yeshi.fanli.util.taobao;
+
+import java.io.IOException;
+import java.io.InputStream;
+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 org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpException;
+import org.apache.commons.httpclient.methods.GetMethod;
+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.UserInfo;
+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.order.TaoBaoOrderException;
+import com.yeshi.fanli.log.LogHelper;
+import org.yeshi.utils.MoneyBigDecimalUtil;
+import com.yeshi.fanli.util.StringUtil;
+import org.yeshi.utils.TimeUtil;
+
+import jxl.Sheet;
+import jxl.Workbook;
+import net.sf.json.JSONObject;
+
+@Component
+public class TaoBaoOrderUtil {
+
+	private static final String ORDERFAILURE = "璁㈠崟澶辨晥";
+	private static final String ORDERPAYMENT = "璁㈠崟浠樻";
+	private static final String ORDERSETTLEMENT = "璁㈠崟缁撶畻";
+	private static final String ORDERSUCCESS = "璁㈠崟鎴愬姛";
+
+	/**
+	 * 鑾峰彇娣樺疂鑱旂洘鐨凜ookie
+	 * 
+	 * @param account
+	 * @return
+	 */
+	public static String getTaoBaoCookie(String account) {
+		HttpClient client = new HttpClient();
+		try {
+			GetMethod gm = new GetMethod(String.format("http://193.112.35.168:8091/tb/cookie/getcookie?account=%s",
+					URLEncoder.encode(account, "UTF-8")));
+			client.executeMethod(gm);
+			String as = gm.getResponseBodyAsString();
+			JSONObject root = JSONObject.fromObject(as);
+			if (root.optInt("code") == 0) {
+				// EhcacheUtil.removeCache(account);
+				String cookie = root.optString("cookie");
+				return cookie;
+			}
+
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		// Cache cache = EhcacheUtil.getCache(account);
+		// if(cache==null){
+		// EhcacheUtil.addCahae(EhcacheUtil.getMyPubCacheConfig(account));
+		// String title="cookie澶辨晥鎻愰啋";
+		// String content="娣樺疂鑱旂洘璐﹀彿["+account+"],宸茬粡澶辨晥浜嗭紒";
+		// String emails = taoBaoOrderUtil.configService.get("send_email");
+		// if(emails != null && !"".equals(emails.trim())){
+		// String[] addr = emails.split(",");
+		// for (String email : addr) {
+		// MailSenderUtil.sendEmail(email, title, content);
+		// }
+		// }
+		// }
+		return "";
+	}
+
+	/**
+	 * 涓婃姤鑱旂洘鐨凜ookie鏃犳晥
+	 * 
+	 * @param account
+	 */
+	public static void reportCookieInvalid(String account) {
+		if (1 > 0)
+			return;
+		HttpClient client = new HttpClient();
+		try {
+			GetMethod gm = new GetMethod(String.format("http://193.112.35.168:8091/tb/cookie/reportinvalid?account=%s",
+					URLEncoder.encode(account, "UTF-8")));
+			client.executeMethod(gm);
+			String as = gm.getResponseBodyAsString();
+			JSONObject root = JSONObject.fromObject(as);
+			if (root.optInt("code") == 0) {// 涓婃姤鎴愬姛
+				LogHelper.error("涓婃姤鎴愬姛锛�");
+				return;
+			}
+			LogHelper.error("涓婃姤澶辫触锛�");
+
+		} catch (Exception e) {
+			e.printStackTrace();
+			LogHelper.error("涓婃姤澶辫触锛�");
+		}
+	}
+
+	/**
+	 * 鎸夊ぉ鏁扮埇鍙栨窐瀹濊仈鐩熺殑杩斿埄璁㈠崟
+	 * 
+	 * @param day
+	 * @return
+	 */
+	public static List<TaoBaoOrder> getOrderList(int day, TaoBaoUnionConfig config) {
+		String cookie1 = getTaoBaoCookie(config.getAccount());
+
+		LogHelper.error("璐﹀彿涓猴細" + config.getAccount() + ",cookie涓猴細" + cookie1);
+
+		String[] cookies = new String[] { cookie1 };
+		List<TaoBaoOrder> list = new ArrayList<TaoBaoOrder>();
+		int i = 0;
+		for (String cookie : cookies) {
+			if (com.yeshi.fanli.util.StringUtil.isNullOrEmpty(cookie)) {
+				i++;
+				continue;
+			}
+			// 鍘熷涓�30
+			String startTime = TimeUtil.getGernalTime(System.currentTimeMillis() - 1000 * 60 * 60 * 24L * day,
+					"yyyy-MM-dd");
+			String endTime = TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd");
+
+			String url = String.format(
+					"http://pub.alimama.com/report/getTbkPaymentDetails.json?spm=a219t.7664554.1998457203.85.9pFBtK&queryType=1&payStatus=&DownloadID=DOWNLOAD_REPORT_INCOME_NEW&startTime=%s&endTime=%s",
+					startTime, endTime);
+			HttpClient client = new HttpClient();
+			// client.getHostConfiguration().setProxy("192.168.1.200", 8888);
+			GetMethod gm = new GetMethod(url);
+			gm.setRequestHeader("Cookie", cookie);
+			gm.setRequestHeader("User-Agent",
+					"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36");
+			InputStream inputStream = null;
+			try {
+				client.executeMethod(gm);
+				System.out.println(gm.getStatusCode());
+				if (gm.getStatusCode() == 200) {
+					System.out.println(gm.getResponseHeader("Content-Type").getValue());
+					if (!gm.getResponseHeader("Content-Type").getValue().contains("excel")) {
+						if (i == 0) {
+							reportCookieInvalid(config.getAccount());
+						}
+						continue;
+					}
+					inputStream = gm.getResponseBodyAsStream();
+					list.addAll(parseOrder(inputStream));
+
+					// String path =
+					// TaoBaoOrderUtil.class.getClassLoader().getResource("/").getPath();
+					// String yyyyMMddHHmmss =
+					// TimeUtil.yyyyMMddHHmmss(System.currentTimeMillis());
+					// FileUtils.copyInputStreamToFile(inputStream, new
+					// File(path+"/excel/"+yyyyMMddHHmmss+"."+"xls"));
+				}
+			} catch (HttpException e) {
+				e.printStackTrace();
+			} catch (IOException e) {
+				e.printStackTrace();
+			} finally {
+				i++;
+				if (inputStream != null) {
+					try {
+						inputStream.close();
+					} catch (IOException e) {
+						e.printStackTrace();
+					}
+				}
+			}
+		}
+
+		return list;
+	}
+
+	/**
+	 * 鏍规嵁閾炬帴涓嬭浇娣樺疂璁㈠崟
+	 * 
+	 * @param url
+	 * @return
+	 */
+	private static List<TaoBaoOrder> downLoadOrderFromTaoBao(String url, TaoBaoUnionConfig config)
+			throws TaoBaoOrderException {
+		String cookie1 = getTaoBaoCookie(config.getAccount());
+		LogHelper.error("璐﹀彿涓猴細" + config.getAccount() + ",cookie涓猴細" + cookie1);
+		String[] cookies = new String[] { cookie1 };
+		List<TaoBaoOrder> list = new ArrayList<TaoBaoOrder>();
+		int i = 0;
+		for (String cookie : cookies) {
+			if (com.yeshi.fanli.util.StringUtil.isNullOrEmpty(cookie)) {
+				i++;
+				continue;
+			}
+			// 鍘熷涓�30
+
+			HttpClient client = new HttpClient();
+			// client.getHostConfiguration().setProxy("192.168.1.122", 8888);
+			GetMethod gm = new GetMethod(url);
+			gm.setRequestHeader("Cookie", cookie);
+			gm.setRequestHeader("User-Agent",
+					"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36");
+			gm.setRequestHeader("Referer", "http://pub.alimama.com/myunion.htm");
+			gm.setRequestHeader("Accept",
+					"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
+			gm.setRequestHeader("Upgrade-Insecure-Requests", "1");
+			gm.setRequestHeader("Accept-Encoding", "gzip, deflate");
+			gm.setRequestHeader("Accept-Language", "zh-CN,zh;q=0.9");
+			InputStream inputStream = null;
+			try {
+				client.executeMethod(gm);
+				System.out.println(gm.getStatusCode());
+				if (gm.getStatusCode() == 200) {
+					System.out.println(gm.getResponseHeader("Content-Type").getValue());
+					if (!gm.getResponseHeader("Content-Type").getValue().contains("excel")) {
+						if (i == 0) {
+							throw new TaoBaoOrderException(gm.getStatusCode(), "杩斿洖鐨勫唴瀹瑰紓甯�");
+						}
+						continue;
+					}
+					inputStream = gm.getResponseBodyAsStream();
+					list.addAll(parseOrder(inputStream));
+
+					// String path =
+					// TaoBaoOrderUtil.class.getClassLoader().getResource("/").getPath();
+					// String yyyyMMddHHmmss =
+					// TimeUtil.yyyyMMddHHmmss(System.currentTimeMillis());
+					// FileUtils.copyInputStreamToFile(inputStream, new
+					// File(path+"/excel/"+yyyyMMddHHmmss+"."+"xls"));
+				} else {
+					throw new TaoBaoOrderException(gm.getStatusCode(), gm.getResponseHeader("Location").getValue());
+				}
+			} catch (HttpException e) {
+				e.printStackTrace();
+			} catch (IOException e) {
+				e.printStackTrace();
+			} finally {
+				i++;
+				if (inputStream != null) {
+					try {
+						inputStream.close();
+					} catch (IOException e) {
+						e.printStackTrace();
+					}
+				}
+			}
+		}
+		return list;
+	}
+
+	/**
+	 * 鎸夋椂闂存埑鐖彇娣樺疂鑱旂洘鐨勮繑鍒╄鍗�
+	 * 
+	 * @param startTime
+	 * @param endTime
+	 * @return
+	 */
+	@SuppressWarnings("deprecation")
+	public static List<TaoBaoOrder> getOrderList(long startTime, long endTime, TaoBaoUnionConfig config)
+			throws TaoBaoOrderException {
+		String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd HH:mm:ss");
+		String endTimeStr = TimeUtil.getGernalTime(endTime, "yyyy-MM-dd HH:mm:ss");
+
+		String url = String.format(
+				"http://pub.alimama.com/report/getTbkPaymentDetails.json?spm=a219t.7664554.1998457203.10.7a7835d9UJKaiP&queryType=1&payStatus=&DownloadID=DOWNLOAD_REPORT_INCOME_NEW&startTime=%s&endTime=%s",
+				URLEncoder.encode(startTimeStr), URLEncoder.encode(endTimeStr));
+
+		return downLoadOrderFromTaoBao(url, config);
+	}
+
+	/**
+	 * 鐖彇绗笁鏂规湇鍔″晢鎺ㄥ箍璁㈠崟
+	 * 
+	 * @param startTime
+	 * @param endTime
+	 * @return
+	 */
+	@SuppressWarnings("deprecation")
+	public static List<TaoBaoOrder> getThirdServiceOrderList(long startTime, long endTime, TaoBaoUnionConfig config)
+			throws TaoBaoOrderException {
+		String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd HH:mm:ss");
+		String endTimeStr = TimeUtil.getGernalTime(endTime, "yyyy-MM-dd HH:mm:ss");
+		String url = String.format(
+				"http://pub.alimama.com/report/getTbkThirdPaymentDetails.json?spm=a219t.7664554.1998457203.10.7a7835d9UJKaiP&queryType=2&payStatus=&DownloadID=DOWNLOAD_REPORT_TK3_PUB&startTime=%s&endTime=%s",
+				URLEncoder.encode(startTimeStr), URLEncoder.encode(endTimeStr));
+		return downLoadOrderFromTaoBao(url, config);
+	}
+
+	/**
+	 * 鐖彇鏈�杩�30澶╃殑璁㈠崟
+	 * 
+	 * @return
+	 */
+	public static List<TaoBaoOrder> getOrderList(TaoBaoUnionConfig config) {
+		return getOrderList(30, config);
+	}
+
+	public static List<TaoBaoWeiQuanOrder> getWeiQuanOrders(InputStream input) {
+		return parseWeiQuanOrder(input);
+	}
+
+	private static List<TaoBaoWeiQuanOrder> getWeiQuanOrders(String cookies, long startTime, long endTime) {
+		String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd");
+		String endTimeStr = TimeUtil.getGernalTime(endTime, "yyyy-MM-dd");
+		String url = String.format(
+				"http://pub.alimama.com/report/getNewTbkRefundPaymentDetails.json?spm=a219t.7664554.1998457203.105.49cc35d9eDSunp&refundType=1&searchType=1&DownloadID=DOWNLOAD_EXPORT_CPSPAYMENT_REFUND_OVERVIEW&startTime=%s&endTime=%s",
+				startTimeStr, endTimeStr);
+		Map<String, String> headers = new HashMap<>();
+		headers.put("User-Agent",
+				"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36");
+		headers.put("Cookie", cookies);
+		headers.put("Referer", "http://pub.alimama.com/myunion.htm");
+		headers.put("Upgrade-Insecure-Requests", "1");
+		InputStream in = HttpUtil.getAsInputStream(url, headers);
+
+		List<TaoBaoWeiQuanOrder> list = new ArrayList<>();
+		list = parseWeiQuanOrder(in);
+
+		list.addAll(getThirdWeiQuanOrders(cookies, startTime, endTime));
+
+		// if (list != null)
+		// for (int i = 0; i < list.size(); i++) {
+		// if (!list.get(i).getState().equalsIgnoreCase("缁存潈鎴愬姛")) {
+		// list.remove(i);
+		// i--;
+		// }
+		// }
+		return list;
+	}
+
+	// 绗笁鏂硅鍗曠淮鏉�
+	private static List<TaoBaoWeiQuanOrder> getThirdWeiQuanOrders(String cookies, long startTime, long endTime) {
+		String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd");
+		String endTimeStr = TimeUtil.getGernalTime(endTime, "yyyy-MM-dd");
+		String url = String.format(
+				"http://pub.alimama.com/report/getNewTbkRefundPaymentDetails.json?spm=a219t.7664554.1998457203.163.158a35d9r0bV0O&refundType=2&searchType=3&DownloadID=DOWNLOAD_EXPORT_CPSPAYMENT_REFUND_OVERVIEW&startTime=%s&endTime=%s",
+				startTimeStr, endTimeStr);
+		Map<String, String> headers = new HashMap<>();
+		headers.put("User-Agent",
+				"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36");
+		headers.put("Cookie", cookies);
+		headers.put("Referer", "http://pub.alimama.com/myunion.htm");
+		headers.put("Upgrade-Insecure-Requests", "1");
+		InputStream in = HttpUtil.getAsInputStream(url, headers);
+		return parseWeiQuanOrder(in);
+	}
+
+	/**
+	 * 浠巈xcel鏂囦欢瑙f瀽璁㈠崟
+	 * 
+	 * @param in
+	 * @return
+	 */
+	public static List<TaoBaoOrder> parseOrder(InputStream in) {
+		try {
+			jxl.Workbook rwb = Workbook.getWorkbook(in);
+			Sheet sheet = rwb.getSheet(0);
+			List<TaoBaoOrder> orderRecordList = new ArrayList<TaoBaoOrder>();
+			int createtimeColumn = 0;
+			int clickTimeColumn = 0;// 鐐瑰嚮鏃堕棿
+			int titleColumn = 0;// 鍟嗗搧鍚嶇О
+			int auctionIdColumn = 0;// 鍟嗗搧ID
+			int managerWangWangColumn = 0;// 鎺屾煖鏃烘椇
+			int shopColumn = 0;// 鎵�灞炲簵閾�
+			int countColumn = 0;// 鍟嗗搧鏁�
+			int priceColumn = 0;// 鍟嗗搧鍗曚环
+			int orderStateColumn = 0; // 璁㈠崟鐘舵��
+			int orderTypeColumn = 0; // 璁㈠崟绫诲瀷
+			int iRatioColumn = 0;// 鏀跺叆姣旂巼
+			int sRatioColumn = 0;// 鍒嗘垚姣旂巼
+
+			int paymentColumn = 0; // 浠樻閲戦
+			int estimateColumn = 0;// 鏁堟灉棰勪及
+			int settlementColumn = 0; // 缁撶畻閲戦
+			int incomeColumn = 0;// 棰勪及鏀跺叆
+			int settlementTimeColumn = 0;// 缁撶畻鏃堕棿
+
+			int tkRateColumn = 0;// 浣i噾姣旂巼
+			int tkMoneyColumn = 0;// 浣i噾閲戦
+
+			int technologySupportPercentColumn = 0;// 鎶�鏈湇鍔¤垂
+			int subsidyRatioColumn = 0;// 琛ヨ创姣旂巼
+			int subsidyColumn = 0;// 琛ヨ创閲戦
+			int subsidyTypeColumn = 0;// 琛ヨ创绫诲瀷
+			int transactionPlatformColumn = 0;// 鎴愪氦骞冲彴
+			int thirdServiceColumn = 0;// 绗笁鏂规湇鍔℃潵婧�
+
+			int orderIdColumn = 0;// 璁㈠崟缂栧彿
+			int classNameColumn = 0; // 鍒嗙被鍚嶇О
+			int sourceMediaIdColumn = 0; // 濯掍綋ID
+			int sourceMediaNameColumn = 0;// 鏉ユ簮濯掍綋鍚嶇О
+			int adPositionIdColumn = 0; // 骞垮憡浣岻D
+			int adPositionNameColumn = 0;// 骞垮憡浣嶅悕绉�
+
+			for (int c = 0; c < sheet.getColumns(); c++) {
+				String content = sheet.getCell(c, 0).getContents().trim();
+				if ("鍒涘缓鏃堕棿".equalsIgnoreCase(content))
+					createtimeColumn = c;
+				else if ("鐐瑰嚮鏃堕棿".equalsIgnoreCase(content))
+					clickTimeColumn = c;
+				else if ("鍟嗗搧淇℃伅".equalsIgnoreCase(content))
+					titleColumn = c;
+				else if ("鍟嗗搧ID".equalsIgnoreCase(content))
+					auctionIdColumn = c;
+				else if ("鎺屾煖鏃烘椇".equalsIgnoreCase(content))
+					managerWangWangColumn = c;
+				else if ("鎵�灞炲簵閾�".equalsIgnoreCase(content))
+					shopColumn = c;
+				else if ("鍟嗗搧鏁�".equalsIgnoreCase(content))
+					countColumn = c;
+				else if ("鍟嗗搧鍗曚环".equalsIgnoreCase(content))
+					priceColumn = c;
+				else if ("璁㈠崟鐘舵��".equalsIgnoreCase(content))
+					orderStateColumn = c;
+				else if ("璁㈠崟绫诲瀷".equalsIgnoreCase(content))
+					orderTypeColumn = c;
+				else if ("鏀跺叆姣旂巼".equalsIgnoreCase(content))
+					iRatioColumn = c;
+				else if ("鍒嗘垚姣旂巼".equalsIgnoreCase(content))
+					sRatioColumn = c;
+				else if ("浠樻閲戦".equalsIgnoreCase(content))
+					paymentColumn = c;
+				else if ("鏁堟灉棰勪及".equalsIgnoreCase(content))
+					estimateColumn = c;
+				else if ("缁撶畻閲戦".equalsIgnoreCase(content))
+					settlementColumn = c;
+				else if ("棰勪及鏀跺叆".equalsIgnoreCase(content))
+					incomeColumn = c;
+				else if ("缁撶畻鏃堕棿".equalsIgnoreCase(content))
+					settlementTimeColumn = c;
+				else if ("浣i噾姣旂巼".equalsIgnoreCase(content))
+					tkRateColumn = c;
+				else if ("浣i噾閲戦".equalsIgnoreCase(content))
+					tkMoneyColumn = c;
+				else if ("鎶�鏈湇鍔¤垂姣旂巼".equalsIgnoreCase(content))
+					technologySupportPercentColumn = c;
+				else if ("琛ヨ创姣旂巼".equalsIgnoreCase(content))
+					subsidyRatioColumn = c;
+				else if ("琛ヨ创閲戦".equalsIgnoreCase(content))
+					subsidyColumn = c;
+				else if ("琛ヨ创绫诲瀷".equalsIgnoreCase(content))
+					subsidyTypeColumn = c;
+				else if ("鎴愪氦骞冲彴".equalsIgnoreCase(content))
+					transactionPlatformColumn = c;
+				else if ("绗笁鏂规湇鍔℃潵婧�".equalsIgnoreCase(content))
+					thirdServiceColumn = c;
+				else if ("璁㈠崟缂栧彿".equalsIgnoreCase(content))
+					orderIdColumn = c;
+				else if ("绫荤洰鍚嶇О".equalsIgnoreCase(content))
+					classNameColumn = c;
+				else if ("鏉ユ簮濯掍綋ID".equalsIgnoreCase(content))
+					sourceMediaIdColumn = c;
+				else if ("鏉ユ簮濯掍綋鍚嶇О".equalsIgnoreCase(content))
+					sourceMediaNameColumn = c;
+				else if ("骞垮憡浣岻D".equalsIgnoreCase(content))
+					adPositionIdColumn = c;
+				else if ("骞垮憡浣嶅悕绉�".equalsIgnoreCase(content))
+					adPositionNameColumn = c;
+			}
+
+			for (int r = 1; r < sheet.getRows(); r++) {
+				TaoBaoOrder orderRecord = new TaoBaoOrder();
+				for (int c = 0; c < sheet.getColumns(); c++) {
+					String content = sheet.getCell(c, r).getContents().trim();
+					if (c == createtimeColumn)
+						orderRecord.setCreateTime(content);
+					else if (c == clickTimeColumn)
+						orderRecord.setClickTime(content);
+					else if (c == titleColumn)
+						orderRecord.setTitle(content);
+					else if (c == auctionIdColumn)
+						orderRecord.setAuctionId(content);
+					else if (c == managerWangWangColumn)
+						orderRecord.setManagerWangWang(content);
+					else if (c == shopColumn)
+						orderRecord.setShop(content);
+					else if (c == countColumn)
+						orderRecord.setCount(Integer.parseInt(content));
+					else if (c == priceColumn)
+						orderRecord.setPrice(new BigDecimal(content));
+					else if (c == orderStateColumn)
+						orderRecord.setOrderState(content);
+					else if (c == orderTypeColumn)
+						orderRecord.setOrderType(content);
+					else if (c == iRatioColumn)
+						orderRecord.setiRatio(new BigDecimal(content.replace("%", "").trim()));
+					else if (c == sRatioColumn)
+						orderRecord.setsRatio(new BigDecimal(content.replace("%", "").trim()));
+					else if (c == paymentColumn)
+						orderRecord.setPayment(new BigDecimal(content));
+					else if (c == estimateColumn)
+						orderRecord.setEstimate(new BigDecimal(content));
+					else if (c == settlementColumn)
+						orderRecord.setSettlement(new BigDecimal(content));
+					else if (c == incomeColumn)
+						orderRecord.seteIncome(new BigDecimal(content));
+					else if (c == settlementTimeColumn)
+						orderRecord.setSettlementTime(content);
+					else if (c == tkRateColumn)
+						orderRecord.setTkRate(new BigDecimal(content.replace("%", "").trim()));
+					else if (c == tkMoneyColumn)
+						orderRecord.setTkMoney(new BigDecimal(content));
+					else if (c == technologySupportPercentColumn)
+						orderRecord.setTechnologySupportPercent(StringUtil.isNullOrEmpty(content) ? null
+								: new BigDecimal(content.replace("%", "").trim()));
+					else if (c == subsidyRatioColumn)
+						orderRecord.setSubsidyRatio(new BigDecimal(content.replace("%", "").trim()));
+					else if (c == subsidyColumn)
+						orderRecord.setSubsidy(new BigDecimal(content));
+					else if (c == subsidyTypeColumn)
+						orderRecord.setSubsidyType(content);
+					else if (c == transactionPlatformColumn)
+						orderRecord.setTransactionPlatform(content);
+					else if (c == thirdServiceColumn)
+						orderRecord.setThirdService(content);
+					else if (c == orderIdColumn)
+						orderRecord.setOrderId(content);
+					else if (c == classNameColumn)
+						orderRecord.setClassName(content);
+					else if (c == sourceMediaIdColumn)
+						orderRecord.setSourceMediaId(content);
+					else if (c == sourceMediaNameColumn)
+						orderRecord.setSourceMediaName(content);
+					else if (c == adPositionIdColumn)
+						orderRecord.setAdPositionId(content);
+					else if (c == adPositionNameColumn)
+						orderRecord.setAdPositionName(content);
+				}
+
+				if (!StringUtil.isNullOrEmpty(orderRecord.getAuctionId() + ""))
+					orderRecordList.add(orderRecord);
+			}
+			return orderRecordList;
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+
+		return new ArrayList<TaoBaoOrder>();
+
+	}
+
+	/**
+	 * 瑙f瀽缁存潈璁㈠崟
+	 * 
+	 * @param in
+	 * @return
+	 */
+	public static List<TaoBaoWeiQuanOrder> parseWeiQuanOrder(InputStream in) {
+		try {
+			jxl.Workbook rwb = Workbook.getWorkbook(in);
+			Sheet sheet = rwb.getSheet(0);
+			List<TaoBaoWeiQuanOrder> orderRecordList = new ArrayList<TaoBaoWeiQuanOrder>();
+			for (int r = 1; r < sheet.getRows(); r++) {
+				TaoBaoWeiQuanOrder orderRecord = new TaoBaoWeiQuanOrder();
+				for (int c = 0; c < sheet.getColumns(); c++) {
+					String content = sheet.getCell(c, r).getContents().trim();
+					switch (c) {
+					case 0:// 缁存潈鏃堕棿
+						if (!StringUtil.isNullOrEmpty(content))
+							orderRecord.setWeiQuanTime(
+									new Date(TimeUtil.convertToTimeTemp(content, "yyyy-MM-dd HH:mm:ss")));
+						break;
+					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;
+					}
+				}
+				if (!StringUtil.isNullOrEmpty(orderRecord.getOrderId()))
+					orderRecordList.add(orderRecord);
+			}
+			return orderRecordList;
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return new ArrayList<TaoBaoWeiQuanOrder>();
+	}
+
+	public static OrderItem convert(TaoBaoOrder tbo, Order order, BigDecimal rate, List<String> tbImgList) {
+		OrderItem orderItem = new OrderItem();
+		orderItem.setFanTime(0L);
+		orderItem.setIsGift(false);
+		orderItem.setRefundTime(0L);
+		orderItem.setSettlementTime(0L);
+		String createTime = tbo.getCreateTime();
+		orderItem.setCreateTime(TimeUtil.convertDateToTemp2(createTime));
+		if ("璁㈠崟缁撶畻".equalsIgnoreCase(tbo.getOrderState()))
+			orderItem.setFanMoney(MoneyBigDecimalUtil.mul(rate.divide(BigDecimal.valueOf(100)), tbo.geteIncome()));
+		else
+			orderItem.setFanMoney(MoneyBigDecimalUtil.mul(rate.divide(BigDecimal.valueOf(100)), tbo.getEstimate()));
+		if ("璁㈠崟缁撶畻".equalsIgnoreCase(tbo.getOrderState()))
+			orderItem.setPayMoney(tbo.getSettlement());
+		else
+			orderItem.setPayMoney(tbo.getPayment());
+
+		orderItem.setOrder(order);
+		orderItem.setOrderId(tbo.getOrderId());
+
+		if (tbImgList != null && tbImgList.size() > 0) {
+			orderItem.setPicture(tbImgList.get(0));
+		} else {
+			orderItem.setPicture("");
+		}
+		if (ORDERFAILURE.equals(tbo.getOrderState())) {
+			orderItem.setState(-1);
+		} else if (ORDERPAYMENT.equals(tbo.getOrderState())) {
+			orderItem.setState(1);
+		} else if (ORDERSETTLEMENT.equals(tbo.getOrderState())) {
+			orderItem.setState(2);
+			orderItem.setSettlementTime(TimeUtil.convertDateToTemp2(tbo.getSettlementTime()));
+		} else if (ORDERSUCCESS.equals(tbo.getOrderState())) // 鍏朵粬鍊�
+		{
+			orderItem.setState(2);
+			orderItem.setSettlementTime(TimeUtil.convertDateToTemp2(tbo.getSettlementTime()));
+		}
+		orderItem.setTitle(tbo.getTitle());
+		orderItem.setType(1);
+		UserInfo userInfo = order.getUserInfo();
+		orderItem.setUserInfo(userInfo);
+		orderItem.setAuctionId(tbo.getAuctionId());
+		orderItem.setVersion(order.getVersion());
+		orderItem.setPrePayMoney(new BigDecimal(tbo.getCount()).multiply(tbo.getPrice()));
+		// orderItem.setGoodsPrice(tbo.getPrice());
+		// orderItem.setGoodsNum(tbo.getCount());
+		return orderItem;
+	}
+
+	/**
+	 * 灏嗘窐瀹濊鍗曟寜鐓ц鍗曞彿褰掔被
+	 * 
+	 * @param orderList
+	 * @return
+	 */
+	public static Map<String, List<TaoBaoOrder>> classifyTaoBaoOrderByOrderId(List<TaoBaoOrder> orderList) {
+		Map<String, List<TaoBaoOrder>> map = new ConcurrentHashMap<>();
+		for (TaoBaoOrder order : orderList) {
+			if (map.get(order.getOrderId()) == null)
+				map.put(order.getOrderId(), new ArrayList<>());
+			// 璁剧疆鎺掑簭鍊硷紝浠�1寮�濮�
+			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浣�:" + orderByStr);
+			}
+			int orderBy = Integer.parseInt(orderByStr);
+			// taoBaoOrder.setOrderBy(orderBy);
+		}
+	}
+
+	/**
+	 * 璁$畻閭�璇疯禋鐨勮繑鍒╂椂闂�
+	 * 
+	 * @param balanceTime
+	 * @return
+	 */
+	public static long computeInviteFanLiTime(long balanceTime) {
+		int month = Integer.parseInt(TimeUtil.getGernalTime(balanceTime, "M"));
+		int year = Integer.parseInt(TimeUtil.getGernalTime(balanceTime, "yyyy"));
+		String time = "";
+		if (month == 12) {
+			time = (year + 1) + "-1";
+		} else {
+			time = year + "-" + (month + 1);
+		}
+		time += "-25";
+		// 璁句负25鏃ュ噷鏅ㄥ埌璐�
+		time += " 00:00:00";
+		// TimeUtil.getGernalTime(balanceTime, "HH:mm:ss");
+		return TimeUtil.convertToTimeTemp(time, "yyyy-M-dd HH:mm:ss");
+	}
+
+	/**
+	 * 鑾峰彇涓�缁勮鍗曠殑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