新版仿ok交易所-后端
1
zj
2025-08-13 78262545593c52fa75aa1072b864121cb918897c
trading-order-service/src/main/java/com/yami/trading/service/impl/WithdrawServiceImpl.java
@@ -219,7 +219,7 @@
    public void saveApplyOtherChannel(Withdraw withdraw, String symbol) {
        User party = userService.getById(withdraw.getUserId());
        if (Constants.SECURITY_ROLE_TEST.equals(party.getRoleName())) {
            throw new YamiShopBindException("无权限");
            throw new YamiShopBindException("no access");
        }
        RealNameAuthRecord party_kyc = realNameAuthRecordService.getByUserId(withdraw.getUserId());
        HighLevelAuthRecord party_kycHighLevel = highLevelAuthRecordService.findByUserId(withdraw.getUserId());
@@ -230,12 +230,12 @@
            party_kyc=new  RealNameAuthRecord();
        }
        if (!(party_kyc.getStatus() == 2) && "true".equals(sysparaService.find("withdraw_by_kyc").getSvalue())) {
            throw new YamiShopBindException("未基础认证");
            throw new YamiShopBindException("Not yet certified at the basic level");
        }
        double withdraw_by_high_kyc = Double.valueOf(sysparaService.find("withdraw_by_high_kyc").getSvalue());
        if (withdraw_by_high_kyc > 0 && withdraw.getVolume().doubleValue() > withdraw_by_high_kyc
                && !(party_kycHighLevel.getStatus() == 2)) {
            throw new YamiShopBindException("请先通过高级认证");
            throw new YamiShopBindException("Please go through the advanced certification process first.");
        }
//        if (!party.isWithdrawAuthority()) {
//            throw new YamiShopBindException("无权限");
@@ -245,15 +245,15 @@
        }
        WalletExtend walletExtend = walletService.saveExtendByPara(party.getUserId(), symbol);
        if (walletExtend.getAmount() < withdraw.getVolume().doubleValue()) {
            throw new YamiShopBindException("余额不足");
            throw new YamiShopBindException("not sufficient funds");
        }
        String withdraw_limit = sysparaService.find("withdraw_limit_" + symbol).getSvalue();
        if (withdraw.getVolume().doubleValue() < Double.valueOf(withdraw_limit)) {
            throw new YamiShopBindException("提现不得小于限额");
            throw new YamiShopBindException("Withdrawal amount must not be less than the limit.");
        }
        String withdraw_limit_max = sysparaService.find("withdraw_limit_max").getSvalue();
        if (withdraw.getVolume().doubleValue() > Double.valueOf(withdraw_limit_max)) {
            throw new YamiShopBindException("提现不得大于限额");
            throw new YamiShopBindException("Withdrawal amount cannot exceed the limit.");
        }
        /**
         * 当日提现次数是否超过
@@ -262,7 +262,7 @@
        List<Withdraw> withdraw_days = findAllByDate(withdraw.getUserId().toString());
        if (withdraw_limit_num > 0 && withdraw_days != null) {
            if (withdraw_days.size() >= withdraw_limit_num) {
                throw new YamiShopBindException("当日可提现次数不足");
                throw new YamiShopBindException("The number of times funds can be withdrawn on the same day is insufficient.");
            }
        }
        /**
@@ -277,7 +277,7 @@
            //
            String dateString = sdf.format(date);
            if (dateString.compareTo(withdraw_time[0]) < 0 || dateString.compareTo(withdraw_time[1]) > 0) {
                throw new YamiShopBindException("不在可提现时间内");
                throw new YamiShopBindException("Not within the available withdrawal period");
            }
        }
        /**
@@ -431,10 +431,10 @@
    public void saveApply(Withdraw withdraw, String channel, String method_id) {
        withdraw.setMethod(channel);
        if (channel.indexOf("BTC") != -1) {
            saveApplyOtherChannel(withdraw, "btc");
            saveApplyOtherChannel(withdraw, "btcusdt");
            return;
        } else if (channel.indexOf("ETH") != -1) {
            saveApplyOtherChannel(withdraw, "eth");
            saveApplyOtherChannel(withdraw, "ethusdt");
            return;
        }
        User party = userService.getById(withdraw.getUserId());
@@ -483,7 +483,7 @@
        CapitaltWallet capitaltWallet = capitaltWalletService.getOne(new LambdaQueryWrapper<>(CapitaltWallet.class)
                .eq(CapitaltWallet::getUserId, withdraw.getUserId()).last(" limit 1 "));
        if (capitaltWallet.getMoney().doubleValue() < withdraw.getVolume().doubleValue()) {
            throw new YamiShopBindException("余额不足");
            throw new YamiShopBindException("not sufficient funds");
        }
        // 手续费(USDT)
        /**
@@ -520,11 +520,11 @@
        }
        String withdraw_limit = sysparaService.find("withdraw_limit").getSvalue();
        if (withdraw.getVolume().doubleValue() < Double.valueOf(withdraw_limit)) {
            throw new YamiShopBindException("提现不得小于限额");
            throw new YamiShopBindException("Withdrawal amount must not be less than the limit.");
        }
        String withdraw_limit_max = sysparaService.find("withdraw_limit_max").getSvalue();
        if (withdraw.getVolume().doubleValue() > Double.valueOf(withdraw_limit_max)) {
            throw new YamiShopBindException("提现不得大于限额");
            throw new YamiShopBindException("Withdrawal amount must not be less than the withdrawal limit and must not exceed the withdrawal limit.");
        }
        /**
         * 当日提现次数是否超过
@@ -533,7 +533,7 @@
        List<Withdraw> withdraw_days = findAllByDate(withdraw.getUserId().toString());
        if (withdraw_limit_num > 0 && withdraw_days != null) {
            if (withdraw_days.size() >= withdraw_limit_num) {
                throw new YamiShopBindException("当日可提现次数不足");
                throw new YamiShopBindException("The number of times funds can be withdrawn on the same day is insufficient.");
            }
        }
        /**
@@ -548,7 +548,7 @@
            //
            String dateString = sdf.format(date);
            if (dateString.compareTo(withdraw_time[0]) < 0 || dateString.compareTo(withdraw_time[1]) > 0) {
                throw new YamiShopBindException("不在可提现时间内");
                throw new YamiShopBindException("Not within the available withdrawal period");
            }
        }
        /**
@@ -651,9 +651,9 @@
            withdraw.setMethod(channel);
        }
        else if ("OTC".equals(channel)) {
            throw new YamiShopBindException("渠道未开通");
            throw new YamiShopBindException("Channel not activated");
        } else {
            throw new YamiShopBindException("渠道未开通");
            throw new YamiShopBindException("Channel not activated");
        }
        log.info("========================getOrderNo=======11111111=============================================");
@@ -675,11 +675,9 @@
        if(ObjectUtil.isEmpty(capitaltWallet)){
            throw new YamiShopBindException("用户资金账户不存在!");
            throw new YamiShopBindException("The user's funds account does not exist!");
        }
        capitaltWalletService.update(new LambdaUpdateWrapper<CapitaltWallet>()
                .set(CapitaltWallet::getMoney,new BigDecimal(Arith.sub(capitaltWallet.getMoney().doubleValue(), amount_before)))
                .eq(CapitaltWallet::getUserId,capitaltWallet.getUserId()));
        capitaltWalletService.update(capitaltWallet,-withdraw.getAmount().doubleValue());
        save(withdraw);