From ff2845059d92bb71c7901e18a4936a246b7aa1e5 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 23 Dec 2024 18:13:28 +0800
Subject: [PATCH] perf(mall): 优化节点助力功能
---
src/main/java/cc/mrbird/febs/mall/service/AsyncService.java | 2 +-
src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java | 16 ++++++++++++++--
src/main/java/cc/mrbird/febs/mall/service/impl/AsyncServiceImpl.java | 4 ++--
3 files changed, 17 insertions(+), 5 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/service/AsyncService.java b/src/main/java/cc/mrbird/febs/mall/service/AsyncService.java
index dbedd8a..f913a72 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/AsyncService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/AsyncService.java
@@ -13,5 +13,5 @@
void releaseScore(BigDecimal amount,Long memberId);
@Async(FebsConstant.ASYNC_POOL)
- void releaseNodeCoin(BigDecimal amount,BigDecimal percent,BigDecimal balanceToCoin,Long memberId);
+ void releaseNodeCoin(BigDecimal amount, BigDecimal percent, BigDecimal balanceToCoin, Long memberId);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AsyncServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AsyncServiceImpl.java
index d661692..c3585fd 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AsyncServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AsyncServiceImpl.java
@@ -43,8 +43,8 @@
}
@Override
- public void releaseNodeCoin(BigDecimal amount, BigDecimal percent, BigDecimal balanceToCoin,Long memberId) {
- //实际节点返利的金额
+ public void releaseNodeCoin(BigDecimal amount, BigDecimal percent, BigDecimal balanceToCoin, Long memberId) {
+ //实际节点助力的碳币
BigDecimal multiply = amount.multiply(percent);
if(BigDecimal.ZERO.compareTo(multiply) >=0){
return;
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
index c7e69f2..ad680eb 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
@@ -710,15 +710,25 @@
RunVipDataDictionaryEnum.RUN_VIP_BALANCE_TO_COIN.getType(),
RunVipDataDictionaryEnum.RUN_VIP_BALANCE_TO_COIN.getCode()).getValue()
).setScale(2, BigDecimal.ROUND_DOWN);
+
+ DateTime endTime = DateUtil.date();
for (MallMember item : mallMembers) {
//获取总业绩
- BigDecimal achieve = getDirectAchieve(item.getInviteId());
+ BigDecimal achieve = getDirectAchieve(item.getInviteId(),item.getDirectorTime(),endTime);
+ if(BigDecimal.ZERO.compareTo(achieve) >= 0){
+ continue;
+ }
BigDecimal nodePercent = getNodePercent(runNodeSets, achieve);
+ if(BigDecimal.ZERO.compareTo(nodePercent) >= 0){
+ continue;
+ }
asyncService.releaseNodeCoin(achieve,nodePercent,balanceToCoin,item.getId());
+ item.setDirectorTime(endTime);
+ mallMemberMapper.updateById(item);
}
}
- private BigDecimal getDirectAchieve(String inviteId) {
+ private BigDecimal getDirectAchieve(String inviteId,Date startTime,Date endTime) {
try {
// 获取直推成员和团队成员的ID集合
@@ -733,6 +743,8 @@
new LambdaQueryWrapper<MallCharge>()
.in(MallCharge::getMemberId, memberIds)
.eq(MallCharge::getState, YesOrNoEnum.YES.getValue())
+ .ge(MallCharge::getCreatedTime, startTime)
+ .lt(MallCharge::getCreatedTime, endTime)
);
if (CollUtil.isEmpty(mallCharges)) {
--
Gitblit v1.9.1