From d2357693d74ec048ed19e483ea29f87d823cde5f Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期一, 22 七月 2019 16:26:23 +0800
Subject: [PATCH] 资金明细添加京东,拼多多兼容
---
fanli/src/main/java/com/yeshi/fanli/job/UpdateOrderJob.java | 204 ++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 168 insertions(+), 36 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 24d1ee3..b04e71d 100644
--- a/fanli/src/main/java/com/yeshi/fanli/job/UpdateOrderJob.java
+++ b/fanli/src/main/java/com/yeshi/fanli/job/UpdateOrderJob.java
@@ -1,27 +1,32 @@
package com.yeshi.fanli.job;
+import java.math.BigDecimal;
import java.util.ArrayList;
+import java.util.Calendar;
import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import javax.annotation.Resource;
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.order.CommonOrder;
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.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.CommonOrderService;
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.OrderService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoOrderService;
@@ -31,6 +36,7 @@
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.TaoBaoOrderUtil;
import com.yeshi.fanli.util.taobao.TaoKeOrderApiUtil;
@@ -42,15 +48,6 @@
public UpdateOrderJob() {
System.out.println("鍒濆鍖�:UpdateOrderJob");
}
-
- @Resource
- private OrderItemServcie orderItemServcie;
-
- @Resource
- private ThreeSaleGiftService threeSaleGiftService;
-
- @Resource
- private HongBaoService hongBaoService;
@Resource
private OrderProcessService orderProcessService;
@@ -79,6 +76,9 @@
@Resource
private OrderService orderService;
+ @Resource
+ private CommonOrderService commonOrderService;
+
/**
* 鏂扮増鑾峰彇鏅�氳鍗�
*
@@ -90,11 +90,11 @@
int page = 1;
String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd HH:mm:ss");
List<TaoBaoOrder> orderList = TaoKeOrderApiUtil.getTaoBaoAllOrder(startTimeStr, span, page,
- Constant.TAOBAO_AUTH_APPKEY, Constant.TAOBAO_AUTH_APPSECRET);
+ TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
while (orderList.size() == 100 * page) {
page++;
List<TaoBaoOrder> tempOrderList = TaoKeOrderApiUtil.getTaoBaoAllOrder(startTimeStr, span, page,
- Constant.TAOBAO_AUTH_APPKEY, Constant.TAOBAO_AUTH_APPSECRET);
+ TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
if (tempOrderList != null && tempOrderList.size() > 0)
orderList.addAll(tempOrderList);
}
@@ -112,11 +112,11 @@
int page = 1;
String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd HH:mm:ss");
List<TaoBaoOrder> orderList = TaoKeOrderApiUtil.getTaoBaoThirdAllOrder(startTimeStr, span, page,
- Constant.TAOBAO_AUTH_APPKEY, Constant.TAOBAO_AUTH_APPSECRET);
+ TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
while (orderList.size() == 100 * page) {
page++;
List<TaoBaoOrder> tempOrderList = TaoKeOrderApiUtil.getTaoBaoThirdAllOrder(startTimeStr, span, page,
- Constant.TAOBAO_AUTH_APPKEY, Constant.TAOBAO_AUTH_APPSECRET);
+ TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
if (tempOrderList != null && tempOrderList.size() > 0)
orderList.addAll(tempOrderList);
}
@@ -275,7 +275,7 @@
return orderList;
}
- private void addOrder(List<TaoBaoOrder> orderList) {
+ public void addOrder(List<TaoBaoOrder> orderList) {
if (orderList != null)
for (int i = 0; i < orderList.size(); i++) {
@@ -302,11 +302,8 @@
try {
taoBaoOrderService.addTaoBaoOrderList(orderList);
} catch (Exception e) {
- try {
- LogHelper.errorDetailInfo(e);
- } catch (Exception e1) {
- e1.printStackTrace();
- }
+ LogHelper.errorDetailInfo(e);
+
}
try {
@@ -327,7 +324,7 @@
}
- CMQManager.getInstance().addTaoBaoOrderMsg(key, orders);
+ CMQManager.getInstance().addTaoBaoOrderMsg(key);
try {
// 6灏忔椂鍐呬笉鍐嶅鐞�
@@ -338,11 +335,7 @@
}
}
} catch (Exception e) {
- try {
- LogHelper.errorDetailInfo(e);
- } catch (Exception e1) {
- e1.printStackTrace();
- }
+ LogHelper.errorDetailInfo(e);
}
}
@@ -409,18 +402,157 @@
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);
+ }
+
+ /**
+ * 鏇存柊鏈湴璁㈠崟锛堝噷鏅�25鍒嗘洿鏂帮級
+ */
+ @Scheduled(cron = "25 0 0 * * ? ")
+ public void doLocalTaoBaoOrder() {
+ if (!Constant.IS_TASK)
+ return;
+ // 澶勭悊3-15澶╁墠鐨勮鍗曪紝姣忓ぉ璺戜竴娆�
+ Long startTime = System.currentTimeMillis() - 1000 * 60 * 60 * 24 * 60L;
+ Long endTime = startTime + 1000 * 60 * 60 * 24 * 48L;
+ List<CommonOrder> commonOrderList = commonOrderService.listBySourceTypeAndStateAndThirdCrateTime(
+ Constant.SOURCE_TYPE_TAOBAO, CommonOrder.STATE_FK, startTime, endTime, 1, 500);
+ Set<String> orderIds = new HashSet<>();
+ for (CommonOrder co : commonOrderList) {
+ orderIds.add(co.getOrderNo());
+ }
+
+ for (Iterator<String> its = orderIds.iterator(); its.hasNext();) {
+ String orderId = its.next();
+ List<TaoBaoOrder> orderList = taoBaoOrderService.getTaoBaoOrderByOrderId(orderId);
+ Map<String, List<TaoBaoOrder>> orders = new HashMap<>();
+ orders.put(orderId, orderList);
+ orderProcessService.processOrder(orders);
+ }
+ }
+
+ /**
+ * 鏇存柊鏈�杩戠殑鏈湴鍗�(30鍒嗛挓鏇存柊涓�娆�)
+ */
+
+ @Scheduled(cron = "0 0/30 * * * ? ")
+ public void doLatestLocalTaoBaoOrder() {
+ if (!Constant.IS_TASK)
+ return;
+ Long endTime = System.currentTimeMillis() - 1000 * 60 * 10L;
+ Long startTime = endTime - 1000 * 60 * 60 * 12L;
+ updateLocalTaoBaoOrder(startTime, endTime, 1, 2000);
+
+ }
+
+ public void updateLocalTaoBaoOrder(Long startTime, Long endTime, int page, int count) {
+ List<TaoBaoOrder> list = taoBaoOrderService.listBySettlementTime(startTime, endTime, page, count);
+ Set<String> orderIds = new HashSet<>();
+ for (TaoBaoOrder co : list) {
+ orderIds.add(co.getOrderId());
+ }
+
+ for (Iterator<String> its = orderIds.iterator(); its.hasNext();) {
+ String orderId = its.next();
+ // 鏌ヨ鏄惁鏈夊浜庤鍗曚粯娆剧姸鎬佺殑鍗�
+ List<CommonOrder> commonOrderList = commonOrderService
+ .listBySourceTypeAndOrderId(Constant.SOURCE_TYPE_TAOBAO, orderId);
+ boolean update = false;
+ if (commonOrderList != null)
+ for (CommonOrder co : commonOrderList) {
+ if (co.getState() == CommonOrder.STATE_FK && co.getPayment().compareTo(new BigDecimal(0)) > 0) {
+ update = true;
+ break;
+ }
+ }
+
+ if (update) {
+ List<TaoBaoOrder> orderList = taoBaoOrderService.getTaoBaoOrderByOrderId(orderId);
+ Map<String, List<TaoBaoOrder>> orders = new HashMap<>();
+ orders.put(orderId, orderList);
+ orderProcessService.processOrder(orders);
+ }
+ }
+ }
+
+ @Scheduled(cron = "30 13 3 * * ? ")
+ public void doLatest5DayLocalTaoBaoOrder() {
+ if (!Constant.IS_TASK)
+ return;
+ Long endTime = System.currentTimeMillis() - 1000 * 60 * 60 * 12L;
+ Long startTime = endTime - 1000 * 60 * 60 * 24 * 5L;
+ long count = taoBaoOrderService.countBySettlementTime(startTime, endTime);
+ int pageSize = 100;
+ long page = count % pageSize == 0 ? count / pageSize : count / pageSize + 1;
+ for (int i = 0; i < page; i++) {
+ updateLocalTaoBaoOrder(startTime, endTime, i + 1, pageSize);
+ }
+ }
+
}
--
Gitblit v1.8.0