From 403a812d2f47ad124b8ed9e961c1a2f60156e91b Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期一, 29 六月 2020 14:59:59 +0800
Subject: [PATCH] 拉新排行榜

---
 fanli/src/main/java/com/yeshi/fanli/job/UserRankingsJob.java |  114 ++++++++++++++++++++-------------------------------------
 1 files changed, 40 insertions(+), 74 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 eea44d7..c66e370 100644
--- a/fanli/src/main/java/com/yeshi/fanli/job/UserRankingsJob.java
+++ b/fanli/src/main/java/com/yeshi/fanli/job/UserRankingsJob.java
@@ -1,10 +1,7 @@
 package com.yeshi.fanli.job;
 
 import java.math.BigDecimal;
-import java.text.SimpleDateFormat;
 import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
 import java.util.List;
 import java.util.Random;
 
@@ -12,14 +9,11 @@
 
 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.log.LogHelper;
-import com.yeshi.fanli.service.inter.config.ConfigService;
-import com.yeshi.fanli.service.inter.taobao.TaoBaoOrderService;
 import com.yeshi.fanli.service.inter.user.UserRankingsService;
 import com.yeshi.fanli.util.Constant;
-import com.yeshi.fanli.util.StringUtil;
 
 /**
  * 娣樺疂鍟嗗搧鏇寸粏
@@ -32,102 +26,74 @@
 public class UserRankingsJob {
 
 	@Resource
-	private ConfigService configService;
-
-	@Resource
 	private UserRankingsService userRankingsService;
 
-	@Resource
-	private TaoBaoOrderService taoBaoOrderService;
-	
-
-	// 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;
 		}
-
+		
+		// 鏇存柊浜烘暟
+		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("reward_rank_range");
-			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