Pu Zhibing
2025-04-22 fd7b8fb7c89832c28a838b0449bbb8a392433ee2
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WalletServiceImpl.java
@@ -2,12 +2,10 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.account.api.model.AppUser;
import com.ruoyi.account.api.model.AppUserGiveawayTemporary;
import com.ruoyi.account.api.model.BalanceChangeRecordCopy;
import com.ruoyi.account.api.model.WithdrawalRequests;
import com.ruoyi.account.service.AppUserService;
import com.ruoyi.account.service.BalanceChangeRecordCopyService;
import com.ruoyi.account.service.WalletService;
import com.ruoyi.account.service.WithdrawalRequestsService;
import com.ruoyi.account.service.*;
import com.ruoyi.account.vo.WalletVO;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.other.api.domain.VipSetting;
@@ -17,6 +15,7 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.List;
@Service
@@ -28,7 +27,7 @@
    @Resource
    private WithdrawalRequestsService withdrawalRequestsService;
    @Resource
    private BalanceChangeRecordCopyService balanceChangeRecordCopyService;
    private IAppUserGiveawayTemporaryService appUserGiveawayTemporaryService;
    @Override
@@ -44,14 +43,12 @@
            throw new RuntimeException("会员设置信息为空");
        }
        List<BalanceChangeRecordCopy> recordCopies = balanceChangeRecordCopyService.list(new LambdaQueryWrapper<BalanceChangeRecordCopy>()
                .eq(BalanceChangeRecordCopy::getAppUserId, userId)
                .eq(BalanceChangeRecordCopy::getChangeType, 4));
        BigDecimal commissionAmount = recordCopies.stream()
                .map(BalanceChangeRecordCopy::getChangeAmount)
                .reduce(BigDecimal.ZERO, BigDecimal::add);
        List<AppUserGiveawayTemporary> list = appUserGiveawayTemporaryService.list(new LambdaQueryWrapper<AppUserGiveawayTemporary>().eq(AppUserGiveawayTemporary::getAppUserId, userId));
        BigDecimal commissionAmount = BigDecimal.ZERO;
        if(!list.isEmpty()){
            commissionAmount = list.stream().map(AppUserGiveawayTemporary::getTotalDistributionAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
        }
        // 获取提现审核中的金额
        List<WithdrawalRequests> waitAuditList = withdrawalRequestsService.list(new LambdaQueryWrapper<WithdrawalRequests>()
@@ -62,13 +59,13 @@
        WalletVO walletVO = new WalletVO();
        BigDecimal balance = appUser.getBalance();
        walletVO.setCommissionAmount(commissionAmount);
        walletVO.setCommissionAmount(appUser.getTotalDistributionAmount().add(commissionAmount).setScale(2, RoundingMode.HALF_UP));
        walletVO.setWithdrawalAmount(appUser.getWithdrawableAmount());
        walletVO.setWithdrawnAmount(appUser.getWithdrawnAmount().subtract(reduce));
        walletVO.setVipWithdrawalMinAmount(data.getVipWithdrawalMinAmount());
        walletVO.setTotalRechargeAmount(appUser.getTotalRechargeAmount());
        walletVO.setTotalRedPacketAmount(appUser.getTotalRedPacketAmount());
        walletVO.setTotalDistributionAmount(appUser.getTotalDistributionAmount());
        walletVO.setTotalDistributionAmount(appUser.getTotalDistributionAmount().add(commissionAmount).setScale(2, RoundingMode.HALF_UP));
        walletVO.setAuditAmount(reduce);
        walletVO.setBalance(balance);
        return walletVO;