新版仿ok交易所-后端
1
zj
2025-09-15 2acf043f0518d89b8bb35a5e1044219940b7810a
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));