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 | 1686 +++++++++++++++++++++++++++-------------------------------
1 files changed, 787 insertions(+), 899 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 a1c6dda..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,899 +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.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.annotation.PostConstruct;
-import javax.annotation.Resource;
-
-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 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.PidOrder;
-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.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;
-import com.yeshi.fanli.util.TimeUtil;
-import org.yeshi.utils.HttpUtil;
-
-import jxl.Sheet;
-import jxl.Workbook;
-import net.sf.json.JSONObject;
-
-@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
- *
- * @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);
- }
-
- /**
- * 鑾峰彇缁存潈鎴愬姛璁㈠崟
- *
- * @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);
- }
-
- 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<PidOrder> parsePidOrder(InputStream in) {
- List<TaoBaoOrder> orderList = parseOrder(in);
- if (orderList != null && orderList.size() > 0) {
- List<PidOrder> pidOrderList = new ArrayList<>();
- for (TaoBaoOrder order : orderList) {
- pidOrderList.add(convertToPidOrder(order));
- }
- return pidOrderList;
- }
- return new ArrayList<PidOrder>();
- }
-
- /**
- * 瑙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://
- 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://
- if (!StringUtil.isNullOrEmpty(content))
- orderRecord.setWeiQuanTime(
- new Date(TimeUtil.convertToTimeTemp(content, "yyyy-MM-dd HH:mm:ss")));
- break;
- case 8://
- if (!StringUtil.isNullOrEmpty(content))
- orderRecord.setWeiQuanFinishTime(
- new Date(TimeUtil.convertToTimeTemp(content, "yyyy-MM-dd HH:mm:ss")));
- 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;
- }
-
- public static List<PidOrder> getPidOrderList(int day, TaoBaoUnionConfig config) {
- String cookie1 = getTaoBaoCookie(config.getAccount());
-
- LogHelper.cookieLog("璐﹀彿涓猴細" + config.getAccount() + ",cookie涓猴細" + cookie1);
-
- String[] cookies = new String[] { cookie1 };
- List<PidOrder> list = new ArrayList<PidOrder>();
- 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(parsePidOrder(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 orderList
- * @return
- */
- public static Map<String, List<TaoBaoOrder>> classifyTaoBaoOrderByOrderId(List<TaoBaoOrder> orderList) {
- Map<String, List<TaoBaoOrder>> map = new HashMap<>();
- 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);
- }
- return map;
- }
-
- /**
- * 璁㈠崟杞崲
- *
- * @param taoBaoOrder
- * @return
- */
- public static PidOrder convertToPidOrder(TaoBaoOrder taoBaoOrder) {
- PidOrder pidOrder = new PidOrder();
- pidOrder.setOrderCreateTime(new Date(TimeUtil.convertDateToTemp2(taoBaoOrder.getCreateTime())));
- pidOrder.setGoodsTitle(taoBaoOrder.getTitle());
- pidOrder.setAuctionId(taoBaoOrder.getAuctionId());
- pidOrder.setGoodsNum(taoBaoOrder.getCount());
- pidOrder.setPrice(taoBaoOrder.getPrice());
- pidOrder.setState(taoBaoOrder.getOrderState());
- pidOrder.setOrderType(taoBaoOrder.getOrderType());
- pidOrder.setRate(taoBaoOrder.getiRatio());
- pidOrder.setPayMoney(taoBaoOrder.getPayment());
- if ("璁㈠崟缁撶畻".equalsIgnoreCase(taoBaoOrder.getOrderState()))
- pidOrder.setPreMoney(taoBaoOrder.geteIncome());
- else
- pidOrder.setPreMoney(taoBaoOrder.getEstimate());
- pidOrder.setFinalMoney(taoBaoOrder.getSettlement());
- if (!StringUtil.isNullOrEmpty(taoBaoOrder.getSettlementTime()))
- pidOrder.setBalanceTime(new Date(TimeUtil.convertDateToTemp2(taoBaoOrder.getSettlementTime())));
- pidOrder.setOrderId(taoBaoOrder.getOrderId());
- pidOrder.setTypeName(taoBaoOrder.getClassName());
- pidOrder.setSrcMediaId(taoBaoOrder.getSourceMediaId());
- pidOrder.setAdzoneId(taoBaoOrder.getAdPositionId());
- return pidOrder;
- }
-
- /**
- * 璁$畻閭�璇疯禋鐨勮繑鍒╂椂闂�
- *
- * @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());
- 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());
-
- return commonOrder;
-
- }
-}
+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