From f5ad4a8171b20ab75eaac90c9717fe7fd801d6cd Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 08 三月 2019 16:18:25 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 fanli/src/main/java/com/yeshi/fanli/job/UpdateRelationAndSpecialOrderJob.java |  190 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 185 insertions(+), 5 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/job/UpdateRelationAndSpecialOrderJob.java b/fanli/src/main/java/com/yeshi/fanli/job/UpdateRelationAndSpecialOrderJob.java
index ffe5d56..e8dd32c 100644
--- a/fanli/src/main/java/com/yeshi/fanli/job/UpdateRelationAndSpecialOrderJob.java
+++ b/fanli/src/main/java/com/yeshi/fanli/job/UpdateRelationAndSpecialOrderJob.java
@@ -1,5 +1,8 @@
 package com.yeshi.fanli.job;
 
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -19,6 +22,7 @@
 import com.yeshi.fanli.util.TimeUtil;
 import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil;
 import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
+import com.yeshi.fanli.util.taobao.TaoKeOrderApiUtil;
 
 /**
  * 娣樺疂娓犻亾璁㈠崟鏇存柊
@@ -35,18 +39,169 @@
 	@Resource
 	private RedisManager redisManager;
 
+	@Resource
+	private UpdateOrderJob updateOrderJob;
+
+	/**
+	 * 鏇存柊娓犻亾璁㈠崟(鏈�澶�20鍒嗛挓)
+	 * 
+	 * @param startTime
+	 */
 	private void updateRelationOrder(long startTime) {
 		String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd HH:mm:ss");
-		List<TaoBaoOrder> orderList = TaoKeApiUtil.getTaoBaoRelationOrder(startTimeStr, Constant.TAOBAO_AUTH_APPKEY,
+		List<TaoBaoOrder> orderList = TaoKeOrderApiUtil.getTaoBaoRelationOrder(startTimeStr, 1, Constant.TAOBAO_AUTH_APPKEY,
 				Constant.TAOBAO_AUTH_APPSECRET);
 		addRelationAndSpecialOrder(orderList);
 	}
 
+	/**
+	 * 鏇存柊娓犻亾璁㈠崟
+	 * 
+	 * @param fromPage
+	 *            寮�濮嬮〉鐮�
+	 * @param toPage
+	 *            缁撴潫椤电爜锛堟瘡椤�100鏉℃暟鎹級
+	 */
+	private void updateRelationOrder(int fromPage, int toPage) {
+		// 鏈�杩�90澶╃殑璁㈠崟
+		String startTimeStr = TimeUtil.getGernalTime(System.currentTimeMillis() - 1000 * 60 * 60 * 24 * 90L,
+				"yyyy-MM-dd HH:mm:ss");
+
+		Comparator<TaoBaoOrder> cm = new Comparator<TaoBaoOrder>() {
+			@Override
+			public int compare(TaoBaoOrder o1, TaoBaoOrder o2) {
+				long span = TimeUtil.convertToTimeTemp(o2.getCreateTime(), "yyyy-MM-dd HH:mm:ss")
+						- TimeUtil.convertToTimeTemp(o1.getCreateTime(), "yyyy-MM-dd HH:mm:ss");
+				if (span > 0)
+					return 1;
+				else if (span == 0)
+					return 0;
+				else
+					return -1;
+			}
+		};
+
+		for (int p = fromPage; p < toPage; p++) {
+			// 鐖彇2鏂硅鍗�
+			List<TaoBaoOrder> orderList = TaoKeOrderApiUtil.getTaoBaoRelationOrder(startTimeStr, p,
+					Constant.TAOBAO_AUTH_APPKEY, Constant.TAOBAO_AUTH_APPSECRET);
+			Collections.sort(orderList, cm);
+			List<TaoBaoOrder> commonOrderList = UpdateOrderJob.getCommonOrder(
+					TimeUtil.convertToTimeTemp(orderList.get(orderList.size() - 1).getCreateTime(),
+							"yyyy-MM-dd HH:mm:ss"),
+					TimeUtil.convertToTimeTemp(orderList.get(0).getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
+
+			List<TaoBaoOrder> list = UpdateOrderJob.mixTaoBaoOrder(commonOrderList, orderList);
+			Collections.sort(list, cm);
+			addRelationAndSpecialOrder(list);
+
+			orderList = TaoKeOrderApiUtil.getTaoBaoRelationThirdOrder(startTimeStr, p, Constant.TAOBAO_AUTH_APPKEY,
+					Constant.TAOBAO_AUTH_APPSECRET);
+			Collections.sort(orderList, cm);
+			// 鐖彇涓夋柟璁㈠崟
+			commonOrderList = UpdateOrderJob.getThirdCommonOrder(
+					TimeUtil.convertToTimeTemp(orderList.get(orderList.size() - 1).getCreateTime(),
+							"yyyy-MM-dd HH:mm:ss"),
+					TimeUtil.convertToTimeTemp(orderList.get(0).getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
+			list = UpdateOrderJob.mixTaoBaoOrder(commonOrderList, orderList);
+			Collections.sort(list, cm);
+			addRelationAndSpecialOrder(list);
+		}
+	}
+
+	/**
+	 * 鎸夊ぉ鏇存柊
+	 * 
+	 * @param day
+	 */
+	private void updateRelationOrderByDay(String day) {
+		long timestamp = TimeUtil.convertToTimeTemp(day, "yyyy-MM-dd");
+		for (int i = 0; i < 72; i++) {
+			updateRelationOrder(timestamp + 1000 * 60 * 20L * i);
+		}
+	}
+
+	/**
+	 * 鏇存柊浼氬憳璁㈠崟(鏈�澶�20鍒嗛挓)
+	 * 
+	 * @param startTime
+	 */
 	private void updateSpecialOrder(long startTime) {
 		String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd HH:mm:ss");
-		List<TaoBaoOrder> orderList = TaoKeApiUtil.getTaoBaoSpecialOrder(startTimeStr, Constant.TAOBAO_AUTH_APPKEY,
+		List<TaoBaoOrder> orderList = TaoKeOrderApiUtil.getTaoBaoSpecialOrder(startTimeStr, 1, Constant.TAOBAO_AUTH_APPKEY,
 				Constant.TAOBAO_AUTH_APPSECRET);
 		addRelationAndSpecialOrder(orderList);
+
+		orderList = TaoKeOrderApiUtil.getTaoBaoSpecialThirdOrder(startTimeStr, 1, Constant.TAOBAO_AUTH_APPKEY,
+				Constant.TAOBAO_AUTH_APPSECRET);
+		addRelationAndSpecialOrder(orderList);
+	}
+
+	/**
+	 * 鏇存柊浼氬憳璁㈠崟锛堬級
+	 * 
+	 * @param fromPage-寮�濮嬮〉鐮�
+	 * @param toPage-缁撴潫椤电爜锛堟瘡椤�20鏉℃暟鎹級
+	 */
+	private void updateSpecialOrder(int fromPage, int toPage) {
+		// 鏈�杩�90澶╃殑璁㈠崟
+		String startTimeStr = TimeUtil.getGernalTime(System.currentTimeMillis() - 1000 * 60 * 60 * 24 * 90L,
+				"yyyy-MM-dd HH:mm:ss");
+
+		Comparator<TaoBaoOrder> cm = new Comparator<TaoBaoOrder>() {
+			@Override
+			public int compare(TaoBaoOrder o1, TaoBaoOrder o2) {
+				long span = TimeUtil.convertToTimeTemp(o2.getCreateTime(), "yyyy-MM-dd HH:mm:ss")
+						- TimeUtil.convertToTimeTemp(o1.getCreateTime(), "yyyy-MM-dd HH:mm:ss");
+				if (span > 0)
+					return 1;
+				else if (span == 0)
+					return 0;
+				else
+					return -1;
+			}
+		};
+
+		for (int p = fromPage; p < toPage; p++) {
+			// 鐖彇2鏂硅鍗�
+			List<TaoBaoOrder> orderList = TaoKeOrderApiUtil.getTaoBaoSpecialOrder(startTimeStr, p,
+					Constant.TAOBAO_AUTH_APPKEY, Constant.TAOBAO_AUTH_APPSECRET);
+			Collections.sort(orderList, cm);
+			List<TaoBaoOrder> commonOrderList = UpdateOrderJob.getCommonOrder(
+					TimeUtil.convertToTimeTemp(orderList.get(orderList.size() - 1).getCreateTime(),
+							"yyyy-MM-dd HH:mm:ss"),
+					TimeUtil.convertToTimeTemp(orderList.get(0).getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
+
+			List<TaoBaoOrder> list = UpdateOrderJob.mixTaoBaoOrder(commonOrderList, orderList);
+			Collections.sort(list, cm);
+			addRelationAndSpecialOrder(list);
+
+			
+			// 鐖彇涓夋柟璁㈠崟
+			orderList = TaoKeOrderApiUtil.getTaoBaoSpecialThirdOrder(startTimeStr, p, Constant.TAOBAO_AUTH_APPKEY,
+					Constant.TAOBAO_AUTH_APPSECRET);
+			Collections.sort(orderList, cm);
+			
+			commonOrderList = UpdateOrderJob.getThirdCommonOrder(
+					TimeUtil.convertToTimeTemp(orderList.get(orderList.size() - 1).getCreateTime(),
+							"yyyy-MM-dd HH:mm:ss"),
+					TimeUtil.convertToTimeTemp(orderList.get(0).getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
+			list = UpdateOrderJob.mixTaoBaoOrder(commonOrderList, orderList);
+			Collections.sort(list, cm);
+			addRelationAndSpecialOrder(list);
+		}
+	}
+
+	/**
+	 * 鎸夊ぉ鏇存柊
+	 * 
+	 * @param day
+	 */
+	private void updateSpecialOrderByDay(String day) {
+		long timestamp = TimeUtil.convertToTimeTemp(day, "yyyy-MM-dd");
+		for (int i = 0; i < 72; i++) {
+			updateSpecialOrder(timestamp + 1000 * 60 * 20L * i);
+		}
 	}
 
 	private void addRelationAndSpecialOrder(List<TaoBaoOrder> orderList) {
@@ -102,9 +257,34 @@
 	public void doJob1() {
 		if (!Constant.IS_TASK)
 			return;
-		long currentTime = System.currentTimeMillis();
-		updateRelationOrder(currentTime);
-		updateSpecialOrder(currentTime);
+		// 鐖彇鏈�杩�3椤垫暟鎹�
+		updateRelationOrder(1, 3);
+		updateSpecialOrder(1, 3);
+	}
+
+	// 姣�5鍒嗛挓鏇存柊锛�3-10椤垫暟鎹級
+	@Scheduled(cron = "0 0/5 * * * ? ")
+	public void doJob2() {
+		if (!Constant.IS_TASK)
+			return;
+		updateRelationOrder(3, 11);
+		updateSpecialOrder(3, 11);
+	}
+
+	// 姣忎釜灏忔椂鏇存柊10-1000椤垫暟鎹�
+	@Scheduled(cron = "0 0 0/1 * * ? ")
+	public void doJob3() {
+		if (!Constant.IS_TASK)
+			return;
+		Calendar calendar = Calendar.getInstance();
+		int h = calendar.get(Calendar.HOUR_OF_DAY);
+		// 姣忎釜灏忔椂鏇存柊100椤垫暟鎹�
+		int fromPage = h * 100;
+		if (fromPage <= 0)
+			fromPage = 11;
+		int toPage = h * 100 + 100;
+		updateRelationOrder(fromPage, toPage);
+		updateSpecialOrder(fromPage, toPage);
 	}
 
 }

--
Gitblit v1.8.0