From 2acf043f0518d89b8bb35a5e1044219940b7810a Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Mon, 15 Sep 2025 17:59:48 +0800
Subject: [PATCH] 1

---
 trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiWithdrawController.java |   44 ++++++++++++++++++++++++++------------------
 1 files changed, 26 insertions(+), 18 deletions(-)

diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiWithdrawController.java b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiWithdrawController.java
index 28b9557..6ec4118 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiWithdrawController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiWithdrawController.java
@@ -1,5 +1,7 @@
 package com.yami.trading.api.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.yami.trading.bean.model.CapitaltWallet;
 import com.yami.trading.bean.model.Withdraw;
 import com.yami.trading.common.constants.Constants;
 import com.yami.trading.common.domain.Result;
@@ -8,6 +10,7 @@
 import com.yami.trading.common.util.DateUtils;
 import com.yami.trading.common.util.StringUtils;
 import com.yami.trading.security.common.util.SecurityUtils;
+import com.yami.trading.service.CapitaltWalletService;
 import com.yami.trading.service.SessionTokenService;
 import com.yami.trading.service.WithdrawService;
 import com.yami.trading.service.syspara.SysparaService;
@@ -44,6 +47,8 @@
     private SysparaService sysparaService;
     @Autowired
     protected WalletLogService walletLogService;
+    @Autowired
+    CapitaltWalletService capitaltWalletService;
 
     /**
      * 首次进入页面,传递session_token
@@ -73,7 +78,6 @@
                                 String amount, String from, String currency,
                                 String channel){
         String partyId = SecurityUtils.getUser().getUserId();
-        boolean lock = false;
         String error = this.verif(amount);
         if (!StringUtils.isNullOrEmpty(error)) {
             throw new YamiShopBindException(error);
@@ -86,24 +90,28 @@
             throw new YamiShopBindException("系统参数错误");
         }
 
-        if ("true".equals(exchange_withdraw_need_safeword)) {
-
-            if (StringUtils.isEmptyString(safeword)) {
-                throw new YamiShopBindException("资金密码不能为空");
-            }
-
-            if (safeword.length() < 6 || safeword.length() > 12) {
-                throw new YamiShopBindException("资金密码必须6-12位");
-            }
-            if (!userService.checkLoginSafeword(SecurityUtils.getUser().getUserId(),safeword)){
-                throw new YamiShopBindException("资金密码错误");
-            }
-        }
-        Object object = this.sessionTokenService.cacheGet(session_token);
-        this.sessionTokenService.del(session_token);
-//        if (null == object || !SecurityUtils.getUser().getUserId().equals((String) object)) {
-//            throw new YamiShopBindException("请稍后再试");
+//        if ("true".equals(exchange_withdraw_need_safeword)) {
+//
+//            if (StringUtils.isEmptyString(safeword)) {
+//                throw new YamiShopBindException("资金密码不能为空");
+//            }
+//
+//            if (safeword.length() < 6 || safeword.length() > 12) {
+//                throw new YamiShopBindException("资金密码必须6-12位");
+//            }
+//            if (!userService.checkLoginSafeword(SecurityUtils.getUser().getUserId(),safeword)){
+//                throw new YamiShopBindException("资金密码错误");
+//            }
 //        }
+
+        // 获取资金账户(capital)
+        CapitaltWallet capitaltWallet = capitaltWalletService.getOne(new LambdaQueryWrapper<>(CapitaltWallet.class)
+                .eq(CapitaltWallet::getUserId, partyId).last(" limit 1 "));
+        if(capitaltWallet.getMoney().compareTo(new BigDecimal(amount)) < 0){
+            throw new YamiShopBindException("Insufficient available balance for withdrawal!");
+        }
+
+        this.sessionTokenService.del(session_token);
         Withdraw withdraw = new Withdraw();
         withdraw.setUserId(partyId);
         withdraw.setVolume(new BigDecimal(amount_double));

--
Gitblit v1.9.3