From bdce38de757cc606fbdc58d66dd604de8fd74efa Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期三, 29 四月 2020 10:16:52 +0800
Subject: [PATCH] 分享订单号 取消隐藏
---
fanli/src/main/java/com/yeshi/fanli/job/order/jd/UpdateJDOrderJob.java | 119 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 96 insertions(+), 23 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/job/order/jd/UpdateJDOrderJob.java b/fanli/src/main/java/com/yeshi/fanli/job/order/jd/UpdateJDOrderJob.java
index 5d1eb3e..b7a4f54 100644
--- a/fanli/src/main/java/com/yeshi/fanli/job/order/jd/UpdateJDOrderJob.java
+++ b/fanli/src/main/java/com/yeshi/fanli/job/order/jd/UpdateJDOrderJob.java
@@ -6,15 +6,20 @@
import javax.annotation.Resource;
-import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
import com.yeshi.fanli.dto.jd.JDOrderResult;
import com.yeshi.fanli.entity.jd.JDOrder;
import com.yeshi.fanli.exception.jd.JDOrderException;
-import com.yeshi.fanli.service.inter.jd.JDOrderService;
+import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.service.inter.order.jd.JDOrderService;
+import com.yeshi.fanli.util.RedisKeyEnum;
import com.yeshi.fanli.util.RedisManager;
-import com.yeshi.fanli.util.cmq.JDOrderCMQManager;
+import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.TimeUtil;
+import com.yeshi.fanli.util.cmq.order.JDOrderCMQManager;
import com.yeshi.fanli.util.jd.JDApiUtil;
//浠庢窐瀹濈埇鍘昏鍗曟洿鏂�
@@ -34,18 +39,28 @@
*/
public void saveJDOrders(List<JDOrder> jdOrderList) {
for (JDOrder order : jdOrderList) {
- if (order.getValidCode() == 15)// 杩囨护鎺変唬浠樻鐘舵��
+ LogHelper.orderInfo("浜笢璁㈠崟:" + order.getOrderId() + "-" + order.getValidCode());
+ if (order.getValidCode() == 15)// 杩囨护鎺夊緟浠樻
continue;
+
+ // 闃叉澶氫釜鍟嗗搧鎷嗗崟闂锛岀埇鍙�
+ if (order.getOrderItemList().size() > 1
+ && order.getOrderTime() > System.currentTimeMillis() - 1000 * 60 * 3L) {
+ continue;
+ }
+
try {
jdOrderService.addJDOrder(order);
/**
* 鍋氶鐜囬檺鍒�
*/
- String key = "jd-order-" + order.getOrderId();
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.JDOrder, order.getOrderId() + "");
String result = redisManager.getCommonString(key);
-
- JDOrderCMQManager.getInstance().addJDOrder(order.getOrderId() + "");
- redisManager.cacheCommonString(key, "1", 60 * 60 * 2);// 2灏忔椂鍐呬笉鍐嶆洿鏂�
+ // 鍒ゆ柇
+ if (StringUtil.isNullOrEmpty(result)) {
+ JDOrderCMQManager.getInstance().addJDOrder(order.getOrderId() + "");
+ redisManager.cacheCommonString(key, "1", 60 * 60 * 2);// 2灏忔椂鍐呬笉鍐嶆洿鏂�
+ }
} catch (JDOrderException e) {
e.printStackTrace();
}
@@ -55,28 +70,33 @@
/**
* 蹇�熻鍗曟洿鏂帮紙鐖彇鏈皬鏃跺唴鐨勫崟,姣忓垎閽熶竴娆★級
*/
- @Scheduled(cron = "0 0/1 * * * ? ")
- public void updateSoonOrder() {
- // if (!Constant.IS_TASK)
- // return;
- long now = System.currentTimeMillis();
+ @XxlJob("updateJDOrderHandler")
+ public ReturnT<String> updateJDSoonOrder(String param) throws Exception {
+ if ("1".equalsIgnoreCase(param)) {//鏇存柊鏈皬鏃跺唴鐨勫崟
+ LogHelper.job("寮�濮嬬埇鍙栦含涓滆鍗�");
+ long now = System.currentTimeMillis();
- JDOrderResult result = JDApiUtil.getOrderList(1, 200, new Date(now), JDApiUtil.ORDER_TYPE_CREATETIME);
- if (result != null && result.getOrderList() != null)
- saveJDOrders(result.getOrderList());
- // 鏌ヨ涓婁釜灏忔椂鐨�
- result = JDApiUtil.getOrderList(1, 200, new Date(now - 1000 * 60 * 60 * 24L), JDApiUtil.ORDER_TYPE_CREATETIME);
- if (result != null && result.getOrderList() != null)
- saveJDOrders(result.getOrderList());
+ JDOrderResult result = JDApiUtil.getOrderList(1, 200, new Date(now), JDApiUtil.ORDER_TYPE_CREATETIME);
+ if (result != null && result.getOrderList() != null)
+ saveJDOrders(result.getOrderList());
+ // 鏌ヨ涓婁釜灏忔椂鐨�
+ result = JDApiUtil.getOrderList(1, 200, new Date(now - 1000 * 60 * 60L), JDApiUtil.ORDER_TYPE_CREATETIME);
+ if (result != null && result.getOrderList() != null)
+ saveJDOrders(result.getOrderList());
+ } else if ("1hour".equalsIgnoreCase(param)) {// 鏇存柊1灏忔椂鍐呯殑璁㈠崟
+ updateUpdateOrder();
+ } else if ("3day".equalsIgnoreCase(param)) {// 鏇存柊鏈�杩�3澶╂洿鏂扮殑鏁版嵁
+ updateLatest3DayOrder();
+ }
+
+ return ReturnT.SUCCESS;
}
/**
* 鐖彇鏈�杩戜竴灏忔椂鍐呯殑鐘舵�佹洿鏂颁簡鐨勫崟(10鍒嗛挓涓�娆�)
*/
- @Scheduled(cron = "0 0/10 * * * ? ")
+
public void updateUpdateOrder() {
- // if (!Constant.IS_TASK)
- // return;
List<JDOrder> jdOrderList = new ArrayList<>();
int pageSize = 200;
int page = 1;
@@ -92,4 +112,57 @@
saveJDOrders(jdOrderList);
}
+ /**
+ * 鏇存柊涓�涓皬鏃剁殑璁㈠崟
+ *
+ * @param date
+ */
+ private List<JDOrder> getHourOrder(Date date) {
+ List<JDOrder> jdOrderList = new ArrayList<>();
+ int pageSize = 200;
+ int page = 1;
+ JDOrderResult result = JDApiUtil.getOrderList(page++, pageSize, date, JDApiUtil.ORDER_TYPE_UPDATETIME);
+ if (result != null) {
+ jdOrderList.addAll(result.getOrderList());
+ while (result != null && result.isHasMore()) {
+ result = JDApiUtil.getOrderList(page++, pageSize, date, JDApiUtil.ORDER_TYPE_UPDATETIME);
+ if (result != null)
+ jdOrderList.addAll(result.getOrderList());
+ }
+ }
+ return jdOrderList;
+ }
+
+ /**
+ * 鏇存柊涓�澶╃殑鏁版嵁
+ *
+ * @param date
+ */
+ public void updateDayOrder(Date date) {
+ Date now = new Date();
+ List<JDOrder> orderList = new ArrayList<>();
+ Date startTime = new Date(
+ TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(date.getTime(), "yyyy-MM-dd"), "yyyy-MM-dd"));
+ // 涓�涓皬鏃朵负涓�涓闀�
+ for (int i = 0; i < 24; i++) {
+ Date da = new Date(startTime.getTime() + 1000 * 60 * 60L * i);
+ if (da.getTime() > now.getTime())
+ break;
+ List<JDOrder> tempOrderList = getHourOrder(da);
+ if (tempOrderList != null && tempOrderList.size() > 0)
+ orderList.addAll(tempOrderList);
+ }
+ saveJDOrders(orderList);
+ }
+
+ /**
+ * 鏇存柊鏈�杩�3澶╃殑璁㈠崟锛堟瘡澶╂棭涓婂噷鏅�0鐐硅繃10鍒嗭紝鏃╀笂8鐐硅繃10鍒嗭級
+ */
+ public void updateLatest3DayOrder() {
+ Date now = new Date();
+ for (int i = 1; i < 4; i++) {
+ updateDayOrder(new Date(now.getTime() - 1000 * 60 * 60 * 24L * i));
+ }
+ }
+
}
--
Gitblit v1.8.0