From c6b718c3cadf5e5fff4c2a47fd1247842439f8c7 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期三, 15 四月 2020 10:45:18 +0800
Subject: [PATCH] 团队消息
---
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoOrderUtil.java | 339 +++++++++++++++++++++++--------------------------------
1 files changed, 142 insertions(+), 197 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 894a4bd..ff4dc77 100644
--- a/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoOrderUtil.java
+++ b/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoOrderUtil.java
@@ -5,38 +5,34 @@
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 javax.annotation.PostConstruct;
-import javax.annotation.Resource;
+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.OrderItem;
import com.yeshi.fanli.entity.bus.user.UserInfo;
-import com.yeshi.fanli.entity.taobao.PidOrder;
+import com.yeshi.fanli.entity.order.CommonOrder;
import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
-import com.yeshi.fanli.exception.TaoBaoOrderException;
+import com.yeshi.fanli.exception.order.TaoBaoOrderException;
import com.yeshi.fanli.log.LogHelper;
-import com.yeshi.fanli.service.inter.config.ConfigService;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoService;
-import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce;
-import com.yeshi.fanli.service.inter.order.OrderItemServcie;
-import com.yeshi.fanli.service.inter.order.OrderService;
+import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TimeUtil;
-import org.yeshi.utils.HttpUtil;
import jxl.Sheet;
import jxl.Workbook;
@@ -45,40 +41,10 @@
@Component
public class TaoBaoOrderUtil {
- private final static String CACHENAME = "tbCookie";
-
private static final String ORDERFAILURE = "璁㈠崟澶辨晥";
private static final String ORDERPAYMENT = "璁㈠崟浠樻";
private static final String ORDERSETTLEMENT = "璁㈠崟缁撶畻";
private static final String ORDERSUCCESS = "璁㈠崟鎴愬姛";
-
- @Resource
- private OrderService orderService;
- @Resource
- private HongBaoService hongBaoService;
- @Resource
- private ConfigService configService;
-
- @Resource
- private OrderItemServcie orderItemServcie;
-
- @Resource
- private HongBaoManageService hongBaoManageService;
-
- @Resource
- private ThreeSaleSerivce threeSaleSerivce;
-
- private static TaoBaoOrderUtil taoBaoOrderUtil;
-
- @PostConstruct
- public void init() {
- taoBaoOrderUtil = this;
- taoBaoOrderUtil.orderService = this.orderService;
- taoBaoOrderUtil.hongBaoService = this.hongBaoService;
- taoBaoOrderUtil.configService = this.configService;
- taoBaoOrderUtil.hongBaoManageService = this.hongBaoManageService;
- taoBaoOrderUtil.orderItemServcie = this.orderItemServcie;
- }
/**
* 鑾峰彇娣樺疂鑱旂洘鐨凜ookie
@@ -135,14 +101,14 @@
String as = gm.getResponseBodyAsString();
JSONObject root = JSONObject.fromObject(as);
if (root.optInt("code") == 0) {// 涓婃姤鎴愬姛
- LogHelper.cookieLog("涓婃姤鎴愬姛锛�");
+ LogHelper.error("涓婃姤鎴愬姛锛�");
return;
}
- LogHelper.cookieLog("涓婃姤澶辫触锛�");
+ LogHelper.error("涓婃姤澶辫触锛�");
} catch (Exception e) {
e.printStackTrace();
- LogHelper.cookieLog("涓婃姤澶辫触锛�");
+ LogHelper.error("涓婃姤澶辫触锛�");
}
}
@@ -155,7 +121,7 @@
public static List<TaoBaoOrder> getOrderList(int day, TaoBaoUnionConfig config) {
String cookie1 = getTaoBaoCookie(config.getAccount());
- LogHelper.cookieLog("璐﹀彿涓猴細" + config.getAccount() + ",cookie涓猴細" + cookie1);
+ LogHelper.error("璐﹀彿涓猴細" + config.getAccount() + ",cookie涓猴細" + cookie1);
String[] cookies = new String[] { cookie1 };
List<TaoBaoOrder> list = new ArrayList<TaoBaoOrder>();
@@ -229,7 +195,7 @@
private static List<TaoBaoOrder> downLoadOrderFromTaoBao(String url, TaoBaoUnionConfig config)
throws TaoBaoOrderException {
String cookie1 = getTaoBaoCookie(config.getAccount());
- LogHelper.cookieLog("璐﹀彿涓猴細" + config.getAccount() + ",cookie涓猴細" + cookie1);
+ LogHelper.error("璐﹀彿涓猴細" + config.getAccount() + ",cookie涓猴細" + cookie1);
String[] cookies = new String[] { cookie1 };
List<TaoBaoOrder> list = new ArrayList<TaoBaoOrder>();
int i = 0;
@@ -341,23 +307,15 @@
return getOrderList(30, config);
}
- /**
- * 鑾峰彇缁存潈鎴愬姛璁㈠崟
- *
- * @param startTime
- * @param endTime
- * @return
- */
- public static List<TaoBaoWeiQuanOrder> getWeiQuanOrders(long startTime, long endTime, TaoBaoUnionConfig config) {
- String cookie = getTaoBaoCookie(config.getAccount());
- return getWeiQuanOrders(cookie, startTime, endTime);
+ public static List<TaoBaoWeiQuanOrder> getWeiQuanOrders(InputStream input) {
+ return parseWeiQuanOrder(input);
}
private static List<TaoBaoWeiQuanOrder> getWeiQuanOrders(String cookies, long startTime, long endTime) {
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=3&DownloadID=DOWNLOAD_EXPORT_CPSPAYMENT_REFUND_OVERVIEW&startTime=%s&endTime=%s",
+ "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",
@@ -372,13 +330,13 @@
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--;
- }
- }
+ // if (list != null)
+ // for (int i = 0; i < list.size(); i++) {
+ // if (!list.get(i).getState().equalsIgnoreCase("缁存潈鎴愬姛")) {
+ // list.remove(i);
+ // i--;
+ // }
+ // }
return list;
}
@@ -594,24 +552,6 @@
}
/**
- * 瑙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
@@ -627,32 +567,42 @@
for (int c = 0; c < sheet.getColumns(); c++) {
String content = sheet.getCell(c, r).getContents().trim();
switch (c) {
- case 0://
- orderRecord.setOrderId(content);
+ case 0:// 缁存潈鏃堕棿
+ if (!StringUtil.isNullOrEmpty(content))
+ orderRecord.setWeiQuanTime(
+ new Date(TimeUtil.convertToTimeTemp(content, "yyyy-MM-dd HH:mm:ss")));
break;
- case 1://
- orderRecord.setOrderItemId(content);
+ case 1:// 缁存潈瀹屾垚鏃堕棿
+ if (!StringUtil.isNullOrEmpty(content))
+ orderRecord.setWeiQuanFinishTime(
+ new Date(TimeUtil.convertToTimeTemp(content, "yyyy-MM-dd HH:mm:ss")));
break;
- case 2://
+ 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 3:
- orderRecord.setMoney(StringUtil.isNullOrEmpty(content) ? null : new BigDecimal(content));
+ case 5:// 娣樺疂璁㈠崟鍙�
+ orderRecord.setOrderId(content);
break;
- case 4:
- orderRecord.setFanMoney(StringUtil.isNullOrEmpty(content) ? null : new BigDecimal(content));
+ case 6:// 娣樺疂瀛愯鍗曞彿
+ orderRecord.setOrderItemId(content);
break;
- case 5://
+ case 7:// 缁存潈鐘舵��
orderRecord.setState(content);
break;
- case 6://
- orderRecord.setJieSuanTime(content);
+ case 8:// 缁撶畻閲戦
+
break;
- case 7://
- orderRecord.setWeiQuanTime(content);
+ case 9:// 閫�娆鹃噾棰�
+ orderRecord.setMoney(StringUtil.isNullOrEmpty(content) ? null : new BigDecimal(content));
break;
- case 8://
- orderRecord.setWeiQuanFinishTime(content);
+
+ case 10:// 杩旇繕鍟嗗閲戦
+ orderRecord.setFanMoney(StringUtil.isNullOrEmpty(content) ? null : new BigDecimal(content));
break;
}
}
@@ -674,8 +624,15 @@
orderItem.setSettlementTime(0L);
String createTime = tbo.getCreateTime();
orderItem.setCreateTime(TimeUtil.convertDateToTemp2(createTime));
- orderItem.setFanMoney(MoneyBigDecimalUtil.mul(rate.divide(BigDecimal.valueOf(100)), tbo.getEstimate()));
- orderItem.setPayMoney(tbo.getPayment());
+ 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());
@@ -708,74 +665,6 @@
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;
- }
-
/**
* 灏嗘窐瀹濊鍗曟寜鐓ц鍗曞彿褰掔被
*
@@ -783,41 +672,73 @@
* @return
*/
public static Map<String, List<TaoBaoOrder>> classifyTaoBaoOrderByOrderId(List<TaoBaoOrder> orderList) {
- Map<String, List<TaoBaoOrder>> map = new HashMap<>();
+ 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;
}
- /**
- * 璁㈠崟杞崲
- *
- * @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());
- 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;
+ 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);
+ }
}
/**
@@ -841,4 +762,28 @@
// 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