From faaf907706c62c81c2a91092b950b30c89159afc Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 17 Mar 2025 17:37:52 +0800
Subject: [PATCH] refactor(common): 优化文件上传逻辑

---
 src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java |   22 +++++++++++++++++++---
 1 files changed, 19 insertions(+), 3 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 39b108d..275e13c 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
@@ -625,7 +625,11 @@
                 BigDecimal V3 = BigDecimal.ZERO;
                 if (flag) {
                     V2 = V1.divide(new BigDecimal("2"), 0, RoundingMode.DOWN);
-                    V3 = new BigDecimal(RandomUtil.randomInt(V2.intValue(),V1.intValue())).setScale(0,RoundingMode.DOWN);
+                    if(V1.intValue() <= V2.intValue()){
+                        V3 = new BigDecimal(RandomUtil.randomInt(V1.intValue(),V2.intValue()+1)).setScale(0,RoundingMode.DOWN);
+                    }else{
+                        V3 = new BigDecimal(RandomUtil.randomInt(V2.intValue(),V1.intValue())).setScale(0,RoundingMode.DOWN);
+                    }
                 }else{
                     List<MallMoneyFlow> mallMoneyFlows = mallMoneyFlowMapper.selectList(
                             new LambdaQueryWrapper<MallMoneyFlow>()
@@ -642,7 +646,13 @@
                     }else{
                         V2 = V1.multiply(new BigDecimal("2")).setScale(0,RoundingMode.DOWN);
                     }
-                    V3 = new BigDecimal(RandomUtil.randomInt(V1.intValue(),V2.intValue())).setScale(0,RoundingMode.DOWN);
+                    if(V1.intValue() < V2.intValue()){
+                        V3 = new BigDecimal(RandomUtil.randomInt(V1.intValue(),V2.intValue())).setScale(0,RoundingMode.DOWN);
+                    }else if(V1.intValue() == V2.intValue()){
+                        V3 = new BigDecimal(RandomUtil.randomInt(V1.intValue(),V2.intValue()+1)).setScale(0,RoundingMode.DOWN);
+                    }else{
+                        V3 = new BigDecimal(RandomUtil.randomInt(V2.intValue(),V1.intValue())).setScale(0,RoundingMode.DOWN);
+                    }
                 }
                 //会员权益的收益
                 RunVipGrow runVipGrow = runVipGrowMapper.selectList(
@@ -655,7 +665,10 @@
                     BigDecimal amountNow = runVipGrow.getAmountNow();
                     RunVip runVipNext = runVips.stream().filter(vipItem -> vipItem.getOrderNumber() == runVip.getOrderNumber() + 1).findFirst().orElse(null);
                     if(runVipNext != null){
+
                         BigDecimal presentPrice = runVip.getPresentPrice();
+                        amountNow = amountNow.subtract(presentPrice);
+
                         BigDecimal presentPriceNext = runVipNext.getPresentPrice();
                         BigDecimal subtract = presentPriceNext.subtract(presentPrice);
 
@@ -667,7 +680,9 @@
 
                         BigDecimal growthAmountTotal = divide.multiply(new BigDecimal(growthNum));
                         BigDecimal growthAmount = growthAmountTotal.divide(new BigDecimal(C1), 0, RoundingMode.DOWN);
-                        V3 = V3.add(growthAmount);
+                        if(growthAmount.intValue() > 0){
+                            V3 = V3.add(growthAmount);
+                        }
                     }
                 }
                 //更新钱包数据
@@ -728,6 +743,7 @@
                     .collect(Collectors.toMap(MallMember::getId, member -> member));
             // 缓存直推成员
             Map<String, Set<MallMember>> directMembersCache = mallMembers.stream()
+                    .filter(member -> StrUtil.isNotBlank(member.getReferrerId()))
                     .collect(Collectors.groupingBy(MallMember::getReferrerId, Collectors.toSet()));
 
 

--
Gitblit v1.9.1