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/impl/MemberProfitServiceImpl.java |   16 ++++++++++++++--
 1 files changed, 14 insertions(+), 2 deletions(-)

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