From 14c1946eae86a86f8d1edee6cf3bdaf7572fc966 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Thu, 30 Oct 2025 19:44:38 +0800
Subject: [PATCH] 1

---
 trading-order-service/src/main/java/com/yami/trading/service/impl/WithdrawServiceImpl.java |  106 ++++++++++++++++++++++++++++------------------------
 1 files changed, 57 insertions(+), 49 deletions(-)

diff --git a/trading-order-service/src/main/java/com/yami/trading/service/impl/WithdrawServiceImpl.java b/trading-order-service/src/main/java/com/yami/trading/service/impl/WithdrawServiceImpl.java
index fbf562a..919fc6a 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/impl/WithdrawServiceImpl.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/impl/WithdrawServiceImpl.java
@@ -124,7 +124,7 @@
         Withdraw withdraw = getById(id);
 
         if (withdraw.getStatus() == 2 ) {// 通过后不可驳回
-            return;
+            throw new YamiShopBindException("订单已操作,请不要重复操作!");
         }
         Date date = new Date();
         withdraw.setReviewTime(date);
@@ -135,10 +135,12 @@
 
         String symbol = "";
         if (withdraw.getMethod().indexOf("BTC") != -1) {
-            symbol = "btc";
+                symbol = "btcusdt";
         } else if (withdraw.getMethod().indexOf("ETH") != -1) {
-            symbol = "eth";
-        } else {
+            symbol = "ethusdt";
+        } else if(withdraw.getMethod().indexOf("USDC") != -1){
+            symbol = "usdcusdt";
+        }else {
             symbol = "usdt";
         }
         if ("usdt".equals(symbol)) {
@@ -149,14 +151,16 @@
 //            walletService.update(wallet.getUserId().toString(),
 //                    Arith.add(withdraw.getAmount(), withdraw.getAmountFee()));
 
-            CapitaltWallet capitaltWallet = capitaltWalletService.getOne(new LambdaQueryWrapper<>(CapitaltWallet.class)
-                    .eq(CapitaltWallet::getUserId, wallet.getUserId().toString()).last(" limit 1 "));
+//            CapitaltWallet capitaltWallet = capitaltWalletService.getOne(new LambdaQueryWrapper<>(CapitaltWallet.class)
+//                    .eq(CapitaltWallet::getUserId, wallet.getUserId().toString()).last(" limit 1 "));
+            Wallet capitaltWallet = walletService.getOne(new LambdaQueryWrapper<>(Wallet.class)
+                    .eq(Wallet::getUserId, wallet.getUserId().toString()).last(" limit 1 "));
             if(ObjectUtil.isEmpty(capitaltWallet)){
                 throw new YamiShopBindException("用户资金账户不存在!");
             }
-            capitaltWalletService.update(new LambdaUpdateWrapper<CapitaltWallet>()
-                    .set(CapitaltWallet::getMoney,new BigDecimal(Arith.add(capitaltWallet.getMoney().doubleValue(), amount_before)))
-                    .eq(CapitaltWallet::getUserId,wallet.getUserId()));
+            walletService.update(new LambdaUpdateWrapper<Wallet>()
+                    .set(Wallet::getMoney,new BigDecimal(Arith.add(capitaltWallet.getMoney(), withdraw.getVolume())))
+                    .eq(Wallet::getUserId,wallet.getUserId()));
 
 
             /*
@@ -210,7 +214,6 @@
         logService.save(log);
         tipService.deleteTip(withdraw.getUuid().toString());
     }
-
     @Override
     public long waitCount() {
         return count(Wrappers.<Withdraw>query().lambda().eq(Withdraw::getStatus, 0));
@@ -219,7 +222,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 +233,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 +248,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 +265,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 +280,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 +434,13 @@
     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;
+        }else if(channel.indexOf("USDC") != -1){
+            saveApplyOtherChannel(withdraw, "usdcusdt");
             return;
         }
         User party = userService.getById(withdraw.getUserId());
@@ -478,12 +484,12 @@
             throw new YamiShopBindException("Your account has been frozen");
         }
 
-//        Wallet wallet = walletService.saveWalletByPartyId(withdraw.getUserId());
-
-        CapitaltWallet capitaltWallet = capitaltWalletService.getOne(new LambdaQueryWrapper<>(CapitaltWallet.class)
-                .eq(CapitaltWallet::getUserId, withdraw.getUserId()).last(" limit 1 "));
+        Wallet capitaltWallet = walletService.saveWalletByPartyId(withdraw.getUserId());
+//
+//        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 +526,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 +539,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 +554,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");
             }
         }
         /**
@@ -577,7 +583,7 @@
                 /**
                  * 用户Party表里可提现金额参数 -----可为负数
                  */
-                double party_withdraw = party.getWithdrawLimitAmount().doubleValue();
+//                double party_withdraw = party.getWithdrawLimitAmount().doubleValue();
                 /**
                  * usdt剩余余额
                  */
@@ -612,15 +618,15 @@
                         }
                     }
                 }
-                double withdraw_limit_turnover_percent = Double
-                        .valueOf(sysparaService.find("withdraw_limit_turnover_percent").getSvalue());
-                party_withdraw = Arith.mul(party_withdraw, withdraw_limit_turnover_percent);
-                // 流水小于限额
-                if (userdata_turnover < party_withdraw) {
-                    fact_withdraw_amount = Arith.sub(party_withdraw, userdata_turnover);
-                    throw new YamiShopBindException(fact_withdraw_amount + "");
-//					throw new BusinessException(1, "当前还需交易" + fact_withdraw_amount + ",才可提币");
-                }
+//                double withdraw_limit_turnover_percent = Double
+//                        .valueOf(sysparaService.find("withdraw_limit_turnover_percent").getSvalue());
+//                party_withdraw = Arith.mul(party_withdraw, withdraw_limit_turnover_percent);
+//                // 流水小于限额
+//                if (userdata_turnover < party_withdraw) {
+//                    fact_withdraw_amount = Arith.sub(party_withdraw, userdata_turnover);
+//                    throw new YamiShopBindException(fact_withdraw_amount + "");
+////					throw new BusinessException(1, "当前还需交易" + fact_withdraw_amount + ",才可提币");
+//                }
             }
             if ("2".equals(withdraw_limit_open_use_type)) {
                 /**
@@ -645,15 +651,17 @@
                 }
             }
         }
+        //固定手续费10u
+        fee = 10;
         withdraw.setAmountFee(new BigDecimal(fee));
         withdraw.setAmount(new BigDecimal(Arith.sub(withdraw.getVolume().doubleValue(), fee)));
         if (channel.indexOf("USDT") != -1) {
             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 +683,11 @@
 
 
         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()));
+//        walletService.update(capitaltWallet,-withdraw.getVolume().doubleValue());
+        walletService.update(capitaltWallet.getUserId(),-withdraw.getVolume().doubleValue());
+
 
         save(withdraw);
 
@@ -782,11 +790,11 @@
         }
         String withdraw_limit = sysparaService.find("withdraw_limit_" + symbol).getSvalue();
         if (amount.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 (amount.doubleValue() > Double.valueOf(withdraw_limit_max)) {
-            throw new YamiShopBindException("提现不得大于限额");
+            throw new YamiShopBindException("Withdrawal amount cannot exceed the limit.");
         }
         /**
          * 当日提现次数是否超过
@@ -795,7 +803,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.");
             }
         }
         /**
@@ -810,7 +818,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 periodNot within the available withdrawal period");
             }
         }
         WithdrawFeeVo withdrawFeeVo = getFee(withdraw.getMethod(), withdraw.getAmount().doubleValue());

--
Gitblit v1.9.3