From dd24286b6da752433ba5b2360929a04e5040936c Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 29 五月 2019 10:57:15 +0800
Subject: [PATCH] 叮咚呛修改
---
fanli/src/main/java/com/yeshi/fanli/job/UpdateOrderJob.java | 378 ++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 286 insertions(+), 92 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/job/UpdateOrderJob.java b/fanli/src/main/java/com/yeshi/fanli/job/UpdateOrderJob.java
index 72cc5f6..15e72e0 100644
--- a/fanli/src/main/java/com/yeshi/fanli/job/UpdateOrderJob.java
+++ b/fanli/src/main/java/com/yeshi/fanli/job/UpdateOrderJob.java
@@ -1,6 +1,8 @@
package com.yeshi.fanli.job;
import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -10,19 +12,17 @@
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
+import com.yeshi.fanli.entity.bus.user.LostOrder;
+import com.yeshi.fanli.entity.bus.user.Order;
import com.yeshi.fanli.entity.taobao.PidUser;
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.common.DataMonitorService;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoService;
-import com.yeshi.fanli.service.inter.hongbao.ThreeSaleGiftService;
import com.yeshi.fanli.service.inter.order.LostOrderService;
-import com.yeshi.fanli.service.inter.order.OrderItemServcie;
import com.yeshi.fanli.service.inter.order.OrderProcessService;
-import com.yeshi.fanli.service.inter.order.PidOrderService;
+import com.yeshi.fanli.service.inter.order.OrderService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoOrderService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoWeiQuanOrderService;
@@ -30,9 +30,10 @@
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.TaoBaoConstant;
import com.yeshi.fanli.util.TimeUtil;
-import com.yeshi.fanli.util.taobao.TaoBao110Util;
import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil;
+import com.yeshi.fanli.util.taobao.TaoKeOrderApiUtil;
//浠庢窐瀹濈埇鍘昏鍗曟洿鏂�
@Component
@@ -41,18 +42,6 @@
public UpdateOrderJob() {
System.out.println("鍒濆鍖�:UpdateOrderJob");
}
-
- @Resource
- private OrderItemServcie orderItemServcie;
-
- @Resource
- private ThreeSaleGiftService threeSaleGiftService;
-
- @Resource
- private HongBaoService hongBaoService;
-
- @Resource
- private PidOrderService pidOrderService;
@Resource
private OrderProcessService orderProcessService;
@@ -78,30 +67,159 @@
@Resource
private LostOrderService lostOrderService;
- private void updateOrder(long startTime, long endTime) {
- List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID);
+ @Resource
+ private OrderService orderService;
+
+ /**
+ * 鏂扮増鑾峰彇鏅�氳鍗�
+ *
+ * @param startTime
+ * @param span
+ * @return
+ */
+ private static List<TaoBaoOrder> getCommonOrder(long startTime, int span) {
+ int page = 1;
+ String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd HH:mm:ss");
+ List<TaoBaoOrder> orderList = TaoKeOrderApiUtil.getTaoBaoAllOrder(startTimeStr, span, page,
+ TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+ while (orderList.size() == 100 * page) {
+ page++;
+ List<TaoBaoOrder> tempOrderList = TaoKeOrderApiUtil.getTaoBaoAllOrder(startTimeStr, span, page,
+ TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+ if (tempOrderList != null && tempOrderList.size() > 0)
+ orderList.addAll(tempOrderList);
+ }
+ return orderList;
+ }
+
+ /**
+ * 鑾峰彇绗笁鏂规櫘閫氳鍗�
+ *
+ * @param startTime
+ * @param span
+ * @return
+ */
+ private static List<TaoBaoOrder> getThirdCommonOrder(long startTime, int span) {
+ int page = 1;
+ String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd HH:mm:ss");
+ List<TaoBaoOrder> orderList = TaoKeOrderApiUtil.getTaoBaoThirdAllOrder(startTimeStr, span, page,
+ TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+ while (orderList.size() == 100 * page) {
+ page++;
+ List<TaoBaoOrder> tempOrderList = TaoKeOrderApiUtil.getTaoBaoThirdAllOrder(startTimeStr, span, page,
+ TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+ if (tempOrderList != null && tempOrderList.size() > 0)
+ orderList.addAll(tempOrderList);
+ }
+ return orderList;
+ }
+
+ /**
+ * 鑾峰彇鏌愪釜鍖洪棿娈电殑璁㈠崟
+ *
+ * @param startTime
+ * @param endTime
+ * @return
+ */
+ public static List<TaoBaoOrder> getCommonOrder(long startTime, long endTime) {
List<TaoBaoOrder> orderList = new ArrayList<>();
- try {
- orderList = TaoBaoOrderUtil.getOrderList(startTime, endTime, configList.get(0));
- } catch (TaoBaoOrderException e2) {
- try {
- LogHelper.errorDetailInfo(e2);
- } catch (Exception e) {
- e.printStackTrace();
+ long span = (endTime - startTime) % 1000 == 0 ? (endTime - startTime) / 1000 : (endTime - startTime) / 1000 + 1;
+ int count = (int) (span / 1200);
+ if (span % 1200 != 0)
+ count++;
+ for (int i = 0; i < count; i++) {
+ long startT = startTime + i * 1200 * 1000L;
+ int s = 1200;
+ if (endTime < startT + 1200 * 1000L) {
+ s = (int) ((endTime - startT) / 1000) + 1;
+ if (s < 60)
+ s = 60;
}
+ List<TaoBaoOrder> tempOrderList = getCommonOrder(startT, s);
+ if (tempOrderList != null && tempOrderList.size() > 0)
+ orderList.addAll(tempOrderList);
}
- List<TaoBaoOrder> thirdOrderList = new ArrayList<>();
- try {
- thirdOrderList = TaoBaoOrderUtil.getThirdServiceOrderList(startTime, endTime, configList.get(0));
- } catch (TaoBaoOrderException e2) {
- try {
- LogHelper.errorDetailInfo(e2);
- } catch (Exception e) {
- e.printStackTrace();
+ return orderList;
+ }
+
+ /**
+ * 鐖彇涓夋柟璁㈠崟
+ *
+ * @param startTime
+ * @param endTime
+ * @return
+ */
+ public static List<TaoBaoOrder> getThirdCommonOrder(long startTime, long endTime) {
+ List<TaoBaoOrder> orderList = new ArrayList<>();
+ long span = (endTime - startTime) % 1000 == 0 ? (endTime - startTime) / 1000 : (endTime - startTime) / 1000 + 1;
+ int count = (int) (span / 1200);
+ if (span % 1200 != 0)
+ count++;
+ for (int i = 0; i < count; i++) {
+ long startT = startTime + i * 1200 * 1000L;
+ int s = 1200;
+ if (endTime < startT + 1200 * 1000L) {
+ s = (int) ((endTime - startT) / 1000) + 1;
+ if (s < 60)
+ s = 60;
}
+ List<TaoBaoOrder> tempOrderList = getThirdCommonOrder(startT, s);
+ if (tempOrderList != null && tempOrderList.size() > 0)
+ orderList.addAll(tempOrderList);
}
- if (thirdOrderList != null && thirdOrderList.size() > 0)
- orderList.addAll(thirdOrderList);
+ return orderList;
+ }
+
+ /**
+ * 鎸夊ぉ鑾峰彇鏅�氳鍗曪紙鏂扮増锛�
+ *
+ * @param date
+ * @return
+ */
+ public List<TaoBaoOrder> getCommonOrderByDay(Date date) {
+ List<TaoBaoOrder> orderList = new ArrayList<>();
+ // 灏嗕竴澶╁垎鎴�12娈�
+ for (int i = 0; i < 72; i++) {
+ List<TaoBaoOrder> tempOrderList = getCommonOrder(date.getTime() + 1000 * 60 * 20L * i, 1200);
+ if (tempOrderList != null && tempOrderList.size() > 0)
+ orderList.addAll(tempOrderList);
+ }
+ return orderList;
+ }
+
+ public void updateOrder(long startTime, long endTime) {
+ // 鑰佺増鏈鐞嗘柟寮�
+ // List<TaoBaoUnionConfig> configList =
+ // taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID);
+ // List<TaoBaoOrder> orderList = new ArrayList<>();
+ // try {
+ // orderList = TaoBaoOrderUtil.getOrderList(startTime, endTime,
+ // configList.get(0));
+ // } catch (TaoBaoOrderException e2) {
+ // try {
+ // LogHelper.errorDetailInfo(e2);
+ // } catch (Exception e) {
+ // e.printStackTrace();
+ // }
+ // }
+ // List<TaoBaoOrder> thirdOrderList = new ArrayList<>();
+ // try {
+ // thirdOrderList = TaoBaoOrderUtil.getThirdServiceOrderList(startTime,
+ // endTime, configList.get(0));
+ // } catch (TaoBaoOrderException e2) {
+ // try {
+ // LogHelper.errorDetailInfo(e2);
+ // } catch (Exception e) {
+ // e.printStackTrace();
+ // }
+ // }
+ // if (thirdOrderList != null && thirdOrderList.size() > 0)
+ // orderList.addAll(thirdOrderList);
+ // 鏂扮増鏈鐞嗘柟寮�
+ List<TaoBaoOrder> orderList = getCommonOrder(startTime, endTime);
+ List<TaoBaoOrder> tempOrderList2 = getThirdCommonOrder(startTime, endTime);
+ if (tempOrderList2 != null && tempOrderList2.size() > 0)
+ orderList.addAll(tempOrderList2);
LogHelper.orderInfo("姝e湪鎵ц璁㈠崟鐖彇缁撴潫锛屽叡鏈夎鍗�:" + orderList.size());
addOrder(orderList);
@@ -110,18 +228,73 @@
} catch (InterruptedException e) {
e.printStackTrace();
}
-
}
- private void addOrder(List<TaoBaoOrder> orderList) {
+ public static List<TaoBaoOrder> mixTaoBaoOrder(List<TaoBaoOrder> commonOrderList, List<TaoBaoOrder> sorderList) {
+ Map<String, List<TaoBaoOrder>> commonMap = TaoBaoOrderUtil.classifyTaoBaoOrderByOrderId(commonOrderList);
+ Map<String, List<TaoBaoOrder>> sMap = TaoBaoOrderUtil.classifyTaoBaoOrderByOrderId(sorderList);
+ // 鑾峰彇璁㈠崟浜ら泦
+ Iterator<String> its = commonMap.keySet().iterator();
+ List<String> commonOrderIdList = new ArrayList<>();
+ List<String> sOrderIdList = new ArrayList<>();
+ while (its.hasNext()) {
+ String orderId = its.next();
+ commonOrderIdList.add(orderId);
+ }
+ its = sMap.keySet().iterator();
+ while (its.hasNext()) {
+ String orderId = its.next();
+ sOrderIdList.add(orderId);
+ }
+
+ // 姹備氦闆�
+ commonOrderIdList.retainAll(sOrderIdList);
+
+ List<TaoBaoOrder> orderList = new ArrayList<>();
+
+ for (String orderId : commonOrderIdList) {
+ List<TaoBaoOrder> list = commonMap.get(orderId);
+ String specialId = sMap.get(orderId).get(0).getSpecialId();
+ String relationId = sMap.get(orderId).get(0).getRelationId();
+ for (TaoBaoOrder to : list) {
+ to.setSpecialId(specialId);
+ to.setRelationId(relationId);
+ orderList.add(to);
+ }
+ }
+
+ return orderList;
+ }
+
+ public void addOrder(List<TaoBaoOrder> orderList) {
+
+ if (orderList != null)
+ for (int i = 0; i < orderList.size(); i++) {
+ // 绉婚櫎浼氬憳杩愯惀ID涓庢笭閬撲笓灞炶鍗�
+ if (orderList.get(i).getAdPositionName().contains("浼氬憳杩愯惀")
+ || orderList.get(i).getAdPositionName().contains("娓犻亾涓撳睘")) {
+ if (orderList.get(i).getAdPositionName().contains("浼氬憳杩愯惀")) {// 澶勭悊璁㈠崟鐢宠瘔
+ Order order = orderService.findOrderByOrderIdAndType(orderList.get(i).getOrderId(),
+ Order.ORDER_TYPE_TAOBAO);
+ if (order != null && order.getBeizhu().contains("琛ュ崟")) {// 涓嶆帓闄よˉ鍗曠殑鎯呭喌
+
+ } else {
+ orderList.remove(i);
+ i--;
+ break;
+ }
+ } else {
+ orderList.remove(i);
+ i--;
+ }
+ }
+ }
+
try {
taoBaoOrderService.addTaoBaoOrderList(orderList);
} catch (Exception e) {
- try {
- LogHelper.errorDetailInfo(e);
- } catch (Exception e1) {
- e1.printStackTrace();
- }
+ LogHelper.errorDetailInfo(e);
+
}
try {
@@ -153,11 +326,7 @@
}
}
} catch (Exception e) {
- try {
- LogHelper.errorDetailInfo(e);
- } catch (Exception e1) {
- e1.printStackTrace();
- }
+ LogHelper.errorDetailInfo(e);
}
}
@@ -166,7 +335,7 @@
public void doJob1() {
if (!Constant.IS_TASK)
return;
- long currentTime = System.currentTimeMillis();
+ long currentTime = System.currentTimeMillis() - 1000 * 60;
String h = TimeUtil.getGernalTime(currentTime, "HH");
String m = TimeUtil.getGernalTime(currentTime, "mm");
int mm = Integer.parseInt(h) * 60 + Integer.parseInt(m);
@@ -181,43 +350,13 @@
}
// 娣樺疂鎺ㄥ箍璁㈠崟 姣忛殧3鍒�13绉掓墽琛屼竴娆�
- @Scheduled(cron = "13 0/3 0 24,25 * ? ")
+ @Scheduled(cron = "13 0/3 * * * ? ")
public void doJob6() {
if (!Constant.IS_TASK)
return;
- List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID);
- LogHelper.orderInfo("姝e湪鎵ц璁㈠崟鐖彇...");
- // 鐖彇1鍒嗛挓浠ュ墠鐨�
- long endTime = System.currentTimeMillis() - 1000 * 60 * 1L;
- List<TaoBaoOrder> orderList = new ArrayList<TaoBaoOrder>();
- try {
- orderList = TaoBaoOrderUtil.getOrderList(endTime - 1000 * 60 * 60 * 24 * 2L, endTime, configList.get(0));
- TaoBao110Util.rightTaoBaoOrderWarning();
- } catch (TaoBaoOrderException e) {
- try {
- LogHelper.errorDetailInfo(e);
- TaoBao110Util.reportTaoBaoOrderWarning(e.getCode(), e.getMessage());
- } catch (Exception e2) {
- e2.printStackTrace();
- }
- }
- List<TaoBaoOrder> thirdOrderList = new ArrayList<>();
- try {
- thirdOrderList = TaoBaoOrderUtil.getThirdServiceOrderList(endTime - 1000 * 60 * 60 * 24 * 2L, endTime,
- configList.get(0));
- } catch (TaoBaoOrderException e) {
- try {
- LogHelper.errorDetailInfo(e);
- } catch (Exception e2) {
- e2.printStackTrace();
- }
- }
- if (thirdOrderList != null && thirdOrderList.size() > 0)
- orderList.addAll(thirdOrderList);
- if (orderList != null && orderList.size() > 0)
- dataMonitorService.parseTaoBaoOrderSuccess();
- LogHelper.orderInfo("姝e湪鎵ц璁㈠崟鐖彇缁撴潫锛屽叡鏈夎鍗�:" + orderList.size());
- addOrder(orderList);
+ long endTime = System.currentTimeMillis() - 1000 * 60;
+ ;
+ updateOrder(endTime - 1000 * 60 * 20L, endTime);
}
// 杩斿埄
@@ -254,18 +393,73 @@
orderProcessService.weiQuanOrder(orderList);
}
- // 澶勭悊鍒嗕韩鍟嗗搧鎵�浜х敓鐨勮鍗�(鍚庣画鐗堟湰搴熼櫎)
- // @Scheduled(cron = "0 0/2 * * * ? ")
- // public void doPidOrder() {
- // if (!Constant.IS_TASK)
- // return;
- // pidOrderService.doPidOrder();
- // }
-
// 姣�6涓皬鏃舵墽琛屼竴娆�
@Scheduled(cron = "0 0 0/6 * * ? ")
public void doLostOrder() {
+ if (!Constant.IS_TASK)
+ return;
lostOrderService.processFail();
}
+ // 姣�2鍒嗛挓鎵ц涓�娆�
+ @Scheduled(cron = "0 0/2 * * * ? ")
+ public void addLostOrder() {
+ if (!Constant.IS_TASK)
+ return;
+ LogHelper.test("澶勭悊涓㈠け璁㈠崟");
+ List<LostOrder> list = lostOrderService.listByStateAndResultCode(LostOrder.STATE_PASS,
+ LostOrder.RESULT_CODE_VERFING, 1, 50);
+ if (list != null)
+ for (LostOrder lo : list) {
+ List<TaoBaoOrder> taoBaoOrderList = taoBaoOrderService.getTaoBaoOrderByOrderId(lo.getOrderId());
+ // 娓呴櫎棰戠巼闄愬埗
+ if (taoBaoOrderList != null && taoBaoOrderList.size() > 0) {
+ String key = "addorderqueue-" + lo.getOrderId();
+ redisManager.removeCommonString(key);
+ addOrder(taoBaoOrderList);
+ LogHelper.test("鑷姩澶勭悊娣樺疂璁㈠崟:" + lo.getOrderId());
+ }
+ }
+ }
+
+ /**
+ * 澶勭悊娣樺疂缁撶畻璁㈠崟,30fen鎵ц涓�娆�
+ */
+ @Scheduled(cron = "30 0 0/1 * * ? ")
+ public void doSettleOrders() {
+ if (!Constant.IS_TASK)
+ return;
+ // 澶勭悊3-15澶╁墠鐨勮鍗曪紝姣忓ぉ璺戜竴娆�
+ Calendar ca = Calendar.getInstance();
+ int hour = ca.get(Calendar.HOUR_OF_DAY);
+
+ long startTime = TimeUtil.convertToTimeTemp(
+ TimeUtil.getGernalTime(ca.getTimeInMillis() - 1000 * 60 * 60 * 24 * 3L, "yyyy-MM-dd"), "yyyy-MM-dd")
+ - hour * (1000 * 60 * 60 * 12L);
+ long endTime = startTime + 1000 * 60 * 60 * 12L;
+ List<TaoBaoOrder> orderList = TaoKeOrderApiUtil.getTaoBaoSettleOrders(startTime, endTime, false);
+ List<TaoBaoOrder> tempOrderList = TaoKeOrderApiUtil.getTaoBaoSettleOrders(startTime, endTime, true);
+ if (tempOrderList != null && tempOrderList.size() > 0)
+ orderList.addAll(tempOrderList);
+ addOrder(orderList);
+ }
+
+ /**
+ * 13鍒嗛挓鏇存柊鏈�杩�13鍒嗛挓鐨勭粨绠楁暟鎹�
+ */
+ @Scheduled(cron = "0 0/13 * * * ? ")
+ public void doSettleOrdersToday() {
+ if (!Constant.IS_TASK)
+ return;
+ // 澶勭悊3-15澶╁墠鐨勮鍗曪紝姣忓ぉ璺戜竴娆�
+ Calendar ca = Calendar.getInstance();
+ long startTime = ca.getTimeInMillis() - 1000 * 60 * 5L - 1000 * 60 * 13L;
+ long endTime = startTime + 1000 * 60 * 13L;
+ List<TaoBaoOrder> orderList = TaoKeOrderApiUtil.getTaoBaoSettleOrders(startTime, endTime, false);
+ List<TaoBaoOrder> tempOrderList = TaoKeOrderApiUtil.getTaoBaoSettleOrders(startTime, endTime, true);
+ if (tempOrderList != null && tempOrderList.size() > 0)
+ orderList.addAll(tempOrderList);
+ addOrder(orderList);
+ }
+
}
--
Gitblit v1.8.0