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