From 1e28ac69827ff7578a418a79bd95aff2c6637f5c Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期日, 28 六月 2020 16:47:00 +0800
Subject: [PATCH] 2.1.3

---
 fanli/src/main/java/com/yeshi/fanli/job/UserRankingsJob.java |  105 +++++++++++++++++++++-------------------------------
 1 files changed, 43 insertions(+), 62 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/job/UserRankingsJob.java b/fanli/src/main/java/com/yeshi/fanli/job/UserRankingsJob.java
index 10534ed..be03fbf 100644
--- a/fanli/src/main/java/com/yeshi/fanli/job/UserRankingsJob.java
+++ b/fanli/src/main/java/com/yeshi/fanli/job/UserRankingsJob.java
@@ -12,6 +12,7 @@
 
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
+import org.yeshi.utils.DateUtil;
 
 import com.yeshi.fanli.entity.bus.user.UserRankings;
 import com.yeshi.fanli.entity.system.ConfigKeyEnum;
@@ -46,89 +47,69 @@
 	private UserInfoExtraService userInfoExtraService;
 	
 
-	// 1鍔�,2鍑�
-	private static int ADD = 1;
-
-	// 鍓嶇鏄剧ず涓暟
-	private static int SHOW_NUM = 50;
-
 	// 姣忓ぉ00鐐�10鎵ц 锛� 鏇存敼鎺掕姒滀笂鐨勫閲�
-	@Scheduled(cron = "0 5 0 * * ? ")
+	@Scheduled(cron = "0 15 0 * * ? ")
 	public void updateReward() {
-
-		if (!Constant.IS_TASK) {
-			return;
-		}
-
+//		if (!Constant.IS_TASK) {
+//			return;
+//		}
+		
+		// 鏇存柊浜烘暟
+		int showNum = 15;
+		// 姣忔棩澧炲箙
+		double rangeAmount = 100;
 		try {
-
-			LogHelper.test("------鎵ц涓�--updateReward---------");
+			List<UserRankings> listExist = null;
+			// 姣忔湀1鍙峰綊0
+			int currentDate = DateUtil.getCurrentDate();
+			if (currentDate != 1) 
+				listExist = userRankingsService.getRankList(0, showNum);
 			
 			// 娓呯悊鏁版嵁
-			userRankingsService.updateClearTradeState();
+			userRankingsService.clearShareReward();
 			
-			
-			// 绯荤粺鎬绘潯鏁�
+			// 鍋囩敤鎴锋暟閲�
 			int count = (int) userRankingsService.queryCount(null, null, null);
-
+			// 闅忔満鏄剧ず鏂扮殑浜�
 			Random random = new Random();
-
-			// 闅忔満灏嗘樉绀虹殑50涓汉淇℃伅
 			List<Long> listId = new ArrayList<Long>();
-			while (listId.size() < SHOW_NUM) {
+			while (listId.size() < showNum) {
 				long id = random.nextInt(count);
 				if (!listId.contains(id)) {
 					listId.add(id);
 				}
 			}
-
-			// 鏄剧ず鏂扮殑浜�
 			List<UserRankings> listNew = userRankingsService.listQueryByIds(listId);
-
-			Calendar cal=Calendar.getInstance();
-			cal.add(Calendar.DATE,-1);
-			Date time=cal.getTime();
 			
-			// 鏄ㄦ棩棰勮鎬绘敹鐩�
-			double countEstimate = taoBaoOrderService.countEstimate(new SimpleDateFormat("yyyy-MM-dd").format(time));
-			if (countEstimate == 0) {
-				countEstimate = 600;
-			}
-			// 鍧囧�硷細鎬婚璁℃敹鐩�*50%
-			double avgAmount = countEstimate * 0.5;
-			
-			// 涓婁笅 娴姩閲戦鑼冨洿
-			double rangeAmount = 100;
-			String range = configService.get(ConfigKeyEnum.rewardRankRange.getKey());
-			if (!StringUtil.isNullOrEmpty(range)) {
-				rangeAmount = Double.parseDouble(range);
-			}
-			
-			
-			for (UserRankings userRankings : listNew) {
-				
-				// 鐘舵��
-				userRankings.setTradeState(1);
-				userRankings.setTradeTime(new Date());
-				
-				// 娴姩閲戦
-				double amount = Math.random() * rangeAmount;
-
-				int[] arr = { 1, 2 };
-				int index = random.nextInt(arr.length);
-				if (ADD == arr[index]) {
-					userRankings.setTradeReward(new BigDecimal(avgAmount + amount));
-				} else {
-					while (amount > avgAmount) {
-						amount = Math.random() * rangeAmount;
+			if (listExist == null || listExist.size() == 0) {
+				for (UserRankings user : listNew) {
+					// 娴姩閲戦
+					double amount = Math.random() * rangeAmount;
+					if (amount < 0.5) {
+						amount = 0.5;
 					}
-					userRankings.setTradeReward(new BigDecimal(avgAmount - amount));
+					user.setShareReward(new BigDecimal(amount));
+				}
+			} else {
+				for (int i = 0; i < listNew.size(); i ++) {
+					UserRankings user = listNew.get(i);
+					
+					// 娴姩閲戦
+					BigDecimal shareReward = null;
+					if (i < listExist.size()) {
+						shareReward = listExist.get(i).getShareReward();
+					}
+					
+					if (shareReward == null)
+						shareReward = BigDecimal.ZERO;
+					
+					// 娴姩閲戦
+					double amount = Math.random() * rangeAmount;
+					user.setShareReward(shareReward.add(BigDecimal.valueOf(amount)));
 				}
 			}
-
 			// 鎵归噺鏇存柊鏄ㄦ棩鏁版嵁-绉婚櫎鎺掕姒�
 			userRankingsService.updateBatchSelective(listNew);
-
 		} catch (Exception e) {
 			e.printStackTrace();
 		}

--
Gitblit v1.8.0