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