新版仿ok交易所-后端
1
zj
2025-09-30 d4be4cc69f18b01cc39bd3f9dc9497a828848ca8
trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiWithdrawController.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yami.trading.bean.model.CapitaltWallet;
import com.yami.trading.bean.model.User;
import com.yami.trading.bean.model.Wallet;
import com.yami.trading.bean.model.Withdraw;
import com.yami.trading.common.constants.Constants;
import com.yami.trading.common.domain.Result;
@@ -12,6 +14,7 @@
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.WalletService;
import com.yami.trading.service.WithdrawService;
import com.yami.trading.service.syspara.SysparaService;
import com.yami.trading.service.user.UserService;
@@ -49,6 +52,8 @@
    protected WalletLogService walletLogService;
    @Autowired
    CapitaltWalletService capitaltWalletService;
    @Autowired
    WalletService walletService;
    /**
     * 首次进入页面,传递session_token
@@ -82,6 +87,10 @@
        if (!StringUtils.isNullOrEmpty(error)) {
            throw new YamiShopBindException(error);
        }
        User user = userService.getById(partyId);
        if(user.isWithdrawAuthority() == false){
            throw new YamiShopBindException("Account is abnormal and has been restricted from making withdrawals.");
        }
        double amount_double = Double.valueOf(amount).doubleValue();
        // 交易所提现是否需要资金密码
@@ -105,10 +114,17 @@
//        }
        // 获取资金账户(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!");
        if(channel.contains("USDT")){
//            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!");
//            }
            Wallet wallet = walletService.getOne(new LambdaQueryWrapper<>(Wallet.class)
                    .eq(Wallet::getUserId, partyId).last(" limit 1 "));
            if(wallet.getMoney().compareTo(new BigDecimal(amount)) < 0){
                throw new YamiShopBindException("Insufficient available balance for withdrawal!");
            }
        }
        this.sessionTokenService.del(session_token);