From 24a8d17e007545f7426c48352109aa1a9c6587ee Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 06 五月 2020 12:02:09 +0800
Subject: [PATCH] IOS上线隐藏我的界面的banner与超级会员升级信息

---
 fanli/src/main/java/com/yeshi/fanli/job/order/jd/UpdateJDOrderJob.java |  123 +++++++++++++++++++++++++++++++++++------
 1 files changed, 105 insertions(+), 18 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 b8b1dd1..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,16 +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.StringUtil;
-import com.yeshi.fanli.util.cmq.JDOrderCMQManager;
+import com.yeshi.fanli.util.TimeUtil;
+import com.yeshi.fanli.util.cmq.order.JDOrderCMQManager;
 import com.yeshi.fanli.util.jd.JDApiUtil;
 
 //浠庢窐瀹濈埇鍘昏鍗曟洿鏂�
@@ -34,48 +38,131 @@
 	 * @param jdOrderList
 	 */
 	public void saveJDOrders(List<JDOrder> jdOrderList) {
-		for (JDOrder order : jdOrderList)
+		for (JDOrder order : jdOrderList) {
+			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);
-				if (!StringUtil.isNullOrEmpty(result))
-					continue;
-				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();
 			}
+		}
 	}
 
 	/**
 	 * 蹇�熻鍗曟洿鏂帮紙鐖彇鏈皬鏃跺唴鐨勫崟,姣忓垎閽熶竴娆★級
 	 */
-	@Scheduled(cron = "0 0/1 * * * ? ")
-	public void updateSoonOrder() {
-		JDOrderResult result = JDApiUtil.getOrderList(1, 200, new Date(), JDApiUtil.ORDER_TYPE_CREATETIME);
-		if (result != null && result.getOrderList() != null)
-			saveJDOrders(result.getOrderList());
+	@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 * 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() {
 		List<JDOrder> jdOrderList = new ArrayList<>();
 		int pageSize = 200;
 		int page = 1;
 		JDOrderResult result = JDApiUtil.getOrderList(page++, pageSize, new Date(), JDApiUtil.ORDER_TYPE_UPDATETIME);
-		jdOrderList.addAll(result.getOrderList());
-		while (result.isHasMore()) {
-			result = JDApiUtil.getOrderList(page++, pageSize, new Date(), JDApiUtil.ORDER_TYPE_UPDATETIME);
+		if (result != null) {
 			jdOrderList.addAll(result.getOrderList());
+			while (result != null && result.isHasMore()) {
+				result = JDApiUtil.getOrderList(page++, pageSize, new Date(), JDApiUtil.ORDER_TYPE_UPDATETIME);
+				if (result != null)
+					jdOrderList.addAll(result.getOrderList());
+			}
 		}
 		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