From 4575ae4dbedd7046f4b7aeeb79b49059676e2201 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Mon, 22 Jul 2024 16:18:21 +0800 Subject: [PATCH] 逻辑 --- src/main/java/cc/mrbird/febs/job/ProfitDailyJob.java | 32 +++++++++++++++++++++++++++++--- 1 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/job/ProfitDailyJob.java b/src/main/java/cc/mrbird/febs/job/ProfitDailyJob.java index 41fb610..7e64049 100644 --- a/src/main/java/cc/mrbird/febs/job/ProfitDailyJob.java +++ b/src/main/java/cc/mrbird/febs/job/ProfitDailyJob.java @@ -11,6 +11,7 @@ import cc.mrbird.febs.dapp.mapper.DappStorageMapper; import cc.mrbird.febs.dapp.mapper.DataDictionaryCustomMapper; import cc.mrbird.febs.dapp.service.DappSystemService; +import cc.mrbird.febs.dapp.vo.ApidirectNumVo; import cc.mrbird.febs.rabbit.producer.ChainProducer; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateTime; @@ -319,11 +320,36 @@ .limit(10) .collect(Collectors.toList()); - int startNum = 1; + List<ApidirectNumVo> apiDirectInfoVos = new ArrayList<>(); for (Map.Entry<Long, BigDecimal> entry : topTenEntries) { - Long memberId = entry.getKey(); - BigDecimal directAchieve = entry.getValue(); + BigDecimal directCnt = entry.getValue(); + ApidirectNumVo apiDirectInfoVo = new ApidirectNumVo(); + apiDirectInfoVo.setMemberId(memberId); + apiDirectInfoVo.setDirectCnt(directCnt); + DappStorage dappStorage = dappStorageMapper.selectNewRecordByRefMemberId(memberId); + apiDirectInfoVo.setCreateTime(dappStorage.getCreateTime()); + apiDirectInfoVos.add(apiDirectInfoVo); + } + + if(CollUtil.isNotEmpty(apiDirectInfoVos)){ + apiDirectInfoVos = apiDirectInfoVos.stream() + .sorted((a, b) -> { + // 先按照amount从大到小排序 + int compare = b.getDirectCnt().compareTo(a.getDirectCnt()); + if (compare != 0) { + return compare; + } + // 如果amount相同,则按照createTime从小到大排序 + return a.getCreateTime().compareTo(b.getCreateTime()); + }) + .collect(Collectors.toList()); + } + + int startNum = 1; + for (ApidirectNumVo numVo : apiDirectInfoVos) { + Long memberId = numVo.getMemberId(); + BigDecimal directAchieve = numVo.getDirectCnt(); //第一名 if(startNum == 1){ BigDecimal bigDecimal = directTotal.multiply(new BigDecimal("0.4")).setScale(2, BigDecimal.ROUND_DOWN); -- Gitblit v1.9.1