From fd7b8fb7c89832c28a838b0449bbb8a392433ee2 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期二, 22 四月 2025 14:33:02 +0800 Subject: [PATCH] 将华为云短信替换成阿里云短信 --- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WalletServiceImpl.java | 76 ++++++++++++++++++++++++++++++++++++++ 1 files changed, 76 insertions(+), 0 deletions(-) diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WalletServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WalletServiceImpl.java new file mode 100644 index 0000000..490b9c6 --- /dev/null +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WalletServiceImpl.java @@ -0,0 +1,76 @@ +package com.ruoyi.account.service.impl; + +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.*; +import com.ruoyi.account.vo.WalletVO; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.other.api.domain.VipSetting; +import com.ruoyi.other.api.enums.WithdrawalAuditStatus; +import com.ruoyi.other.api.feignClient.RemoteVipSettingClient; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.List; + +@Service +public class WalletServiceImpl implements WalletService { + @Resource + private AppUserService appUserService; + @Resource + private RemoteVipSettingClient remoteVipSettingClient; + @Resource + private WithdrawalRequestsService withdrawalRequestsService; + @Resource + private IAppUserGiveawayTemporaryService appUserGiveawayTemporaryService; + + + @Override + public WalletVO getWalletByUserId(Long userId) { + AppUser appUser = appUserService.getById(userId); + if (appUser == null) { + throw new RuntimeException("用户不存在"); + } + Integer vipId = appUser.getVipId(); + R<VipSetting> r = remoteVipSettingClient.getVipSettingById(vipId); + VipSetting data = r.getData(); + if (data == null) { + throw new RuntimeException("会员设置信息为空"); + } + + + 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>() + .eq(WithdrawalRequests::getAppUserId, userId) + .eq(WithdrawalRequests::getAuditStatus, WithdrawalAuditStatus.WAIT_AUDIT.getCode())); + BigDecimal reduce = waitAuditList.stream().map(WithdrawalRequests::getWithdrawalAmount).reduce(BigDecimal.ZERO, BigDecimal::add); + + + WalletVO walletVO = new WalletVO(); + BigDecimal balance = appUser.getBalance(); + 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().add(commissionAmount).setScale(2, RoundingMode.HALF_UP)); + walletVO.setAuditAmount(reduce); + walletVO.setBalance(balance); + return walletVO; + } + + + +} -- Gitblit v1.7.1