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/dapp/vo/ApidirectNumVo.java | 20 ++++++++++
src/main/java/cc/mrbird/febs/job/ProfitDailyJob.java | 32 ++++++++++++++-
src/main/java/cc/mrbird/febs/dapp/vo/ApiDirectInfoVo.java | 5 ++
src/main/java/cc/mrbird/febs/dapp/mapper/DappStorageMapper.java | 2 +
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java | 16 +++++++
src/main/resources/mapper/dapp/DappStorageMapper.xml | 27 +++++++++++++
6 files changed, 98 insertions(+), 4 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/dapp/mapper/DappStorageMapper.java b/src/main/java/cc/mrbird/febs/dapp/mapper/DappStorageMapper.java
index 06e4b39..740c2f5 100644
--- a/src/main/java/cc/mrbird/febs/dapp/mapper/DappStorageMapper.java
+++ b/src/main/java/cc/mrbird/febs/dapp/mapper/DappStorageMapper.java
@@ -35,4 +35,6 @@
List<DappStorage> selectListGroupByMemberId();
List<DappStorage> selectSumByAmountDescFiveToFive(@Param("startTime")DateTime startTime, @Param("offset")int offset,@Param("count")int count);
+
+ DappStorage selectNewRecordByRefMemberId(@Param("memberId")Long memberId);
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
index fadf9f2..d04fc98 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
@@ -869,10 +869,24 @@
ApiDirectInfoVo apiDirectInfoVo = new ApiDirectInfoVo();
apiDirectInfoVo.setAddress(dappMemberDao.selectById(memberId).getAddress());
apiDirectInfoVo.setAmount(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.getAmount().compareTo(a.getAmount());
+ if (compare != 0) {
+ return compare;
+ }
+ // 如果amount相同,则按照createTime从小到大排序
+ return a.getCreateTime().compareTo(b.getCreateTime());
+ })
+ .collect(Collectors.toList());
+ }
return apiDirectInfoVos;
diff --git a/src/main/java/cc/mrbird/febs/dapp/vo/ApiDirectInfoVo.java b/src/main/java/cc/mrbird/febs/dapp/vo/ApiDirectInfoVo.java
index e7a4671..ce43153 100644
--- a/src/main/java/cc/mrbird/febs/dapp/vo/ApiDirectInfoVo.java
+++ b/src/main/java/cc/mrbird/febs/dapp/vo/ApiDirectInfoVo.java
@@ -1,10 +1,12 @@
package cc.mrbird.febs.dapp.vo;
+import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
+import java.util.Date;
@Data
@ApiModel(value = "ApiDirectInfoVo", description = "排名")
@@ -15,4 +17,7 @@
@ApiModelProperty(value = "直推人数")
private BigDecimal amount;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date createTime;
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/vo/ApidirectNumVo.java b/src/main/java/cc/mrbird/febs/dapp/vo/ApidirectNumVo.java
new file mode 100644
index 0000000..7671440
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/dapp/vo/ApidirectNumVo.java
@@ -0,0 +1,20 @@
+package cc.mrbird.febs.dapp.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@ApiModel(value = "ApidirectNumVo", description = "排名")
+public class ApidirectNumVo {
+
+ private Long memberId;
+
+ private BigDecimal directCnt;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date createTime;
+}
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);
diff --git a/src/main/resources/mapper/dapp/DappStorageMapper.xml b/src/main/resources/mapper/dapp/DappStorageMapper.xml
index d00880f..276fadf 100644
--- a/src/main/resources/mapper/dapp/DappStorageMapper.xml
+++ b/src/main/resources/mapper/dapp/DappStorageMapper.xml
@@ -158,4 +158,31 @@
</select>
+ <select id="selectNewRecordByRefMemberId" resultType="cc.mrbird.febs.dapp.entity.DappStorage">
+ SELECT
+ *
+ FROM
+ dapp_storage
+ WHERE
+ member_id IN (
+ SELECT
+ id
+ FROM
+ dapp_member
+ WHERE
+ referer_id = (
+ SELECT
+ invite_id
+ FROM
+ dapp_member
+ WHERE
+ member_id = #{memberId}
+ )
+ )
+ ORDER BY
+ create_time DESC
+ LIMIT 1
+ </select>
+
+
</mapper>
\ No newline at end of file
--
Gitblit v1.9.1