From a8d2cb07f6440dc54dc4005b0b06d5a47cb1517d Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期一, 16 十二月 2024 13:34:03 +0800
Subject: [PATCH] 12.16

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WalletServiceImpl.java |   61 ++++++++++++++++++++++++++++++
 1 files changed, 61 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..06caeb7
--- /dev/null
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WalletServiceImpl.java
@@ -0,0 +1,61 @@
+package com.ruoyi.account.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.account.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));
+
+        WalletVO walletVO = new WalletVO();
+        walletVO.setWithdrawalAmount(appUser.getWithdrawableAmount());
+        walletVO.setWithdrawnAmount(appUser.getWithdrawnAmount());
+        walletVO.setVipWithdrawalMinAmount(data.getVipWithdrawalMinAmount());
+        walletVO.setTotalRechargeAmount(appUser.getTotalRechargeAmount());
+        walletVO.setTotalRedPacketAmount(appUser.getTotalRedPacketAmount());
+        walletVO.setTotalDistributionAmount(appUser.getTotalDistributionAmount());
+        walletVO.setAuditAmount(waitAuditList.stream()
+                .map(WithdrawalRequests::getWithdrawalAmount)
+                .reduce(BigDecimal.ZERO, BigDecimal::add));
+        walletVO.setBalance(appUser.getBalance());
+        return walletVO;
+    }
+
+}

--
Gitblit v1.7.1