From eddc5253fd590be82fe689fb6eceea3f6c4fbb6b Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Thu, 19 Dec 2024 18:10:26 +0800
Subject: [PATCH] fix(mall): 修复跑路会员返利计算逻辑
---
src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java | 35 +++++++++++++++++++----------------
src/main/resources/templates/febs/views/modules/runVip/buyVipList.html | 4 ++--
2 files changed, 21 insertions(+), 18 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
index e4fbf32..ee71133 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
@@ -24,6 +24,7 @@
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.util.List;
/**
@@ -209,7 +210,7 @@
RunVip runVip = runVipMapper.selectOne(new LambdaQueryWrapper<RunVip>().eq(RunVip::getVipCode, vipCode));
BigDecimal rebatePercent = runVip.getRebatePercent();
BigDecimal amount = mallCharge.getAmount();
- BigDecimal rebateAmount = amount.multiply(rebatePercent).setScale(2, BigDecimal.ROUND_DOWN);
+ BigDecimal rebateAmount = amount.multiply(rebatePercent).setScale(2, RoundingMode.DOWN);
BigDecimal balanceToCoin =
new BigDecimal(
dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
@@ -217,7 +218,7 @@
RunVipDataDictionaryEnum.RUN_VIP_BALANCE_TO_COIN.getCode()
).getValue()
);
- BigDecimal rebateCoin = rebateAmount.divide(balanceToCoin, 2, BigDecimal.ROUND_DOWN);
+ BigDecimal rebateCoin = rebateAmount.divide(balanceToCoin, 2, RoundingMode.DOWN);
if(BigDecimal.ZERO.compareTo(rebateCoin) >= 0){
return;
}
@@ -227,22 +228,24 @@
}
String orderNo = MallUtils.getOrderNum("FL");
if(null != parent.getReferrerId()){
- BigDecimal rebateCoinGrandpa = rebateCoin.multiply(rebatePercent);
+ BigDecimal rebateCoinGrandpa = rebateCoin.multiply(rebatePercent).setScale(2, RoundingMode.DOWN);
MallMember grandpa = mallMemberMapper.selectInfoByInviteId(parent.getReferrerId());
if(null != grandpa){
- //返利给上上级
- walletService.addBalance(rebateCoinGrandpa,grandpa.getId());
- mallMemberService.runVipMoneyFlowAdd(
- grandpa.getId(),
- mallMember.getId(),
- orderNo,
- FlowTypeEnum.BALANCE.getValue(),
- RunVipMoneyFlowTypeEnum.BUY_VIP_REBATE.getValue(),
- rebateCoinGrandpa,
- StrUtil.format(RunVipMoneyFlowTypeEnum.BUY_VIP_REBATE.getDescription(),mallMember.getPhone(),runVip.getVipName(),rebateCoinGrandpa),
- YesOrNoEnum.YES.getValue()
- );
- rebateCoin = rebateCoin.subtract(rebateCoinGrandpa);
+ if(BigDecimal.ZERO.compareTo(rebateCoinGrandpa) < 0){
+ //返利给上上级
+ walletService.addBalance(rebateCoinGrandpa,grandpa.getId());
+ mallMemberService.runVipMoneyFlowAdd(
+ grandpa.getId(),
+ mallMember.getId(),
+ orderNo,
+ FlowTypeEnum.BALANCE.getValue(),
+ RunVipMoneyFlowTypeEnum.BUY_VIP_REBATE.getValue(),
+ rebateCoinGrandpa,
+ StrUtil.format(RunVipMoneyFlowTypeEnum.BUY_VIP_REBATE.getDescription(),mallMember.getPhone(),runVip.getVipName(),rebateCoinGrandpa),
+ YesOrNoEnum.YES.getValue()
+ );
+ rebateCoin = rebateCoin.subtract(rebateCoinGrandpa).setScale(2, RoundingMode.DOWN);
+ }
}
}
//返利给上级
diff --git a/src/main/resources/templates/febs/views/modules/runVip/buyVipList.html b/src/main/resources/templates/febs/views/modules/runVip/buyVipList.html
index 79512a9..faa2c5b 100644
--- a/src/main/resources/templates/febs/views/modules/runVip/buyVipList.html
+++ b/src/main/resources/templates/febs/views/modules/runVip/buyVipList.html
@@ -61,8 +61,8 @@
<script type="text/html" id="commissionOption">
{{# if(d.state == 2){ }}
- <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" shiro:hasPermission="user:update" lay-event="chargeAgreeEvent">确认</button>
- <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" shiro:hasPermission="user:update" lay-event="chargeDisAgreeEvent">取消</button>
+ <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" shiro:hasPermission="charge:update" lay-event="chargeAgreeEvent">确认</button>
+ <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" shiro:hasPermission="charge:update" lay-event="chargeDisAgreeEvent">取消</button>
{{# } }}
</script>
<script data-th-inline="none" type="text/javascript">
--
Gitblit v1.9.1