KKSU
2024-12-19 eddc5253fd590be82fe689fb6eceea3f6c4fbb6b
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,9 +228,10 @@
        }
        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){
                if(BigDecimal.ZERO.compareTo(rebateCoinGrandpa) < 0){
                //返利给上上级
                walletService.addBalance(rebateCoinGrandpa,grandpa.getId());
                mallMemberService.runVipMoneyFlowAdd(
@@ -242,7 +244,8 @@
                        StrUtil.format(RunVipMoneyFlowTypeEnum.BUY_VIP_REBATE.getDescription(),mallMember.getPhone(),runVip.getVipName(),rebateCoinGrandpa),
                        YesOrNoEnum.YES.getValue()
                );
                rebateCoin = rebateCoin.subtract(rebateCoinGrandpa);
                    rebateCoin = rebateCoin.subtract(rebateCoinGrandpa).setScale(2, RoundingMode.DOWN);
                }
            }
        }
        //返利给上级