From 6169d137461b01b47def5e3ab6353bbdcddbcc97 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 30 Dec 2024 17:18:39 +0800
Subject: [PATCH] feat(mall): 添加节点身份管理和显示功能

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java |   22 +++++++++++++++++-----
 1 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
index ae21ac8..9b9e219 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -288,6 +288,7 @@
         mallMemberVo.setLevelPng(runVip.getVipPng());
         mallMemberVo.setChangeState(runVip.getChangeState());
         mallMemberVo.setWithdrawState(runVip.getWithdrawState());
+        mallMemberVo.setInsideState(runVip.getInsideState());
 
         MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(mallMemberVo.getId());
         mallMemberVo.setBalance(wallet.getBalance());
@@ -495,7 +496,7 @@
          * 用户的等级level是否允许兑换碳币
          */
         RunVip runVip = runVipMapper.selectOne(new LambdaQueryWrapper<RunVip>().eq(RunVip::getVipCode, loginMember.getLevel()));
-        if(ObjectUtil.isEmpty(runVip) || runVip.getWithdrawState() != YesOrNoEnum.YES.getValue()){
+        if(ObjectUtil.isEmpty(runVip) || runVip.getInsideState() != YesOrNoEnum.YES.getValue()){
             throw new FebsException("请先升级会员");
         }
 
@@ -580,15 +581,21 @@
                 dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                         RunVipDataDictionaryEnum.RUN_VIP_BALANCE_TO_COIN_PERCENT.getType(),
                         RunVipDataDictionaryEnum.RUN_VIP_BALANCE_TO_COIN_PERCENT.getCode()).getValue()
-        ).setScale(4, BigDecimal.ROUND_DOWN);
+        ).setScale(2, BigDecimal.ROUND_DOWN);
+
+        BigDecimal withdrawalAmount = withdrawalDto.getAmount().multiply(balanceToCoin).setScale(2, BigDecimal.ROUND_DOWN);
+        BigDecimal fee = balanceToCoinPercent;
+//        BigDecimal fee = balanceToCoinPercent.multiply(withdrawalAmount).setScale(2, BigDecimal.ROUND_DOWN);
+        BigDecimal withdrawalAmountReal = withdrawalAmount.subtract(fee);
+        if(BigDecimal.ZERO.compareTo(withdrawalAmountReal) >= 0){
+            throw new FebsException(minCnt+"手续费不足");
+        }
+
         /**
          *  减少碳币,增加进行中提现记录
          */
         walletService.reduceBalance(withdrawalDto.getAmount(), loginMember.getId());
 
-        BigDecimal withdrawalAmount = withdrawalDto.getAmount().multiply(balanceToCoin).setScale(2, BigDecimal.ROUND_DOWN);
-        BigDecimal fee = balanceToCoinPercent.multiply(withdrawalAmount).setScale(2, BigDecimal.ROUND_DOWN);
-        BigDecimal withdrawalAmountReal = withdrawalAmount.subtract(fee);
         String orderNo = MallUtils.getOrderNum("TX");
         MallMemberWithdraw withdraw = new MallMemberWithdraw();
         withdraw.setWithdrawNo(orderNo);
@@ -642,6 +649,11 @@
             throw new FebsException("请先升级会员");
         }
 
+        MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(memberId);
+        if(minScore.compareTo(mallMemberWallet.getScore()) > 0){
+            throw new FebsException("碳积分不足");
+        }
+
         BigDecimal scoreBalancePercent = new BigDecimal(
                 dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                         RunVipDataDictionaryEnum.RUN_VIP_SCORE_TO_BALANCE.getType(),

--
Gitblit v1.9.1