From 2c99eb1b27b9fbad752aaeab8783399af32514e6 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 15 一月 2025 21:00:38 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WalletServiceImpl.java | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 59 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..146fbb7
--- /dev/null
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WalletServiceImpl.java
@@ -0,0 +1,59 @@
+package com.ruoyi.account.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.other.api.enums.WithdrawalAuditStatus;
+import com.ruoyi.account.api.model.AppUser;
+import com.ruoyi.account.api.model.WithdrawalRequests;
+import com.ruoyi.account.service.AppUserService;
+import com.ruoyi.account.service.WalletService;
+import com.ruoyi.account.service.WithdrawalRequestsService;
+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.feignClient.RemoteVipSettingClient;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.List;
+
+@Service
+public class WalletServiceImpl implements WalletService {
+ @Resource
+ private AppUserService appUserService;
+ @Resource
+ private RemoteVipSettingClient remoteVipSettingClient;
+ @Resource
+ private WithdrawalRequestsService withdrawalRequestsService;
+
+ @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<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();
+ 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.setAuditAmount(reduce);
+ walletVO.setBalance(appUser.getBalance());
+ return walletVO;
+ }
+
+}
--
Gitblit v1.7.1