From f6a85a3f1f36b412daf60cac6d8ea9278cffa108 Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Mon, 15 Sep 2025 18:09:07 +0800
Subject: [PATCH] 提现充值

---
 trading-order-service/src/main/java/com/yami/trading/service/impl/WithdrawServiceImpl.java                      |    6 ++
 trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiWithdrawController.java                    |   12 +++++-
 trading-order-admin/src/main/java/com/yami/trading/admin/task/IcoTask.java                                      |   51 +++++--------------------
 trading-order-admin/src/main/resources/config/system.properties                                                 |    2 
 trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiChannelBlockchainController.java  |   11 ++++-
 trading-order-security-common/src/main/java/com/yami/trading/security/common/adapter/ResourceServerAdapter.java |    4 +
 6 files changed, 38 insertions(+), 48 deletions(-)

diff --git a/trading-order-admin/src/main/java/com/yami/trading/admin/task/IcoTask.java b/trading-order-admin/src/main/java/com/yami/trading/admin/task/IcoTask.java
index 1be2313..a26758f 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/admin/task/IcoTask.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/admin/task/IcoTask.java
@@ -4,20 +4,26 @@
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.lang.Console;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.http.HttpStatus;
 import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.yami.trading.api.UD.*;
 import com.yami.trading.bean.ico.domain.Ico;
 import com.yami.trading.bean.item.domain.Item;
 import com.yami.trading.bean.model.ChannelBlockchain;
+import com.yami.trading.bean.model.Withdraw;
 import com.yami.trading.common.domain.Result;
 import com.yami.trading.common.util.ApplicationContextUtils;
 import com.yami.trading.common.util.StringUtils;
 import com.yami.trading.huobi.data.internal.KlineInitService;
 import com.yami.trading.security.common.enums.CryptoCurrencyEnum;
 import com.yami.trading.security.common.util.SecurityUtils;
+import com.yami.trading.service.WithdrawService;
 import com.yami.trading.service.ico.IcoService;
 import com.yami.trading.service.item.ItemService;
 import lombok.extern.slf4j.Slf4j;
@@ -53,48 +59,11 @@
     @Autowired
     RedisTemplate redisTemplate;
 
-    //@Scheduled(cron = "*/5 * * * * ?")
-    public void test() {
-        String coin = "usdt";
-        List<ChannelBlockchain> data = new ArrayList<ChannelBlockchain>();
-        Map<String, List<CryptoCurrencyEnum>> allGroupedByCoin = CryptoCurrencyEnum.getAllGroupedByCoin();
-        List<CryptoCurrencyEnum> currencyEnums = allGroupedByCoin.get(coin);
-        try {
-            String partyId = SecurityUtils.getUser().getUserId();
-            //获取u盾地址
-            //获取商户支持币种
-            List<Coin> coinList = udunClient.listSupportCoin(false);
+    @Autowired
+    WithdrawService withdrawService;
 
-            currencyEnums.forEach((currencyEnum) -> {
-                String coinName = currencyEnum.getName();
-                Coin c = coinList.stream().filter(x -> x.getName().equals(coinName)).findFirst().orElse(null);
-                if (c != null) {
-                    ChannelBlockchain rechargeAddressVo = new ChannelBlockchain();
-                    //创建地址
-                    Address address;
-                    String ress = (String)redisTemplate.opsForValue().get(partyId + coinName);
-                    if(StringUtils.isNotEmpty(ress)){
-                        rechargeAddressVo.setAddress(ress);
-                        rechargeAddressVo.setCoin(coinName);
-                        rechargeAddressVo.setBlockchain_name(coinName);
-                        rechargeAddressVo.setAuto(false);
-                        rechargeAddressVo.setImg(null);
-                    }else{
-                        address = udunClient.createAddress(c.getMainCoinType(),null,null);
-                        rechargeAddressVo.setAddress(address.getAddress());
-                        rechargeAddressVo.setCoin(coinName);
-                        rechargeAddressVo.setBlockchain_name(coinName);
-                        rechargeAddressVo.setAuto(false);
-                        rechargeAddressVo.setImg(null);
-                        redisTemplate.opsForValue().set(partyId + coinName, address.getAddress());
-                    }
-                    data.add(rechargeAddressVo);
-                }
-            });
-        }catch (Exception e){
-            e.printStackTrace();
-            log.error("获取充值地址错误:",e);
-        }
+    //@Scheduled(cron = "*/5 * * * * ?")
+    public void test() throws JsonProcessingException {
     }
     /**
      * ico转入产品
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 7a5f2f1..6c46c49 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
@@ -137,7 +137,8 @@
 
             //获取商户支持币种
             List<Coin> coinList = udunClient.listSupportCoin(false);
-            Coin coin = coinList.stream().filter(x -> x.getName().equals(channel)).findFirst().orElse(null);
+            String channelName = channel.replace("_", "");
+            Coin coin = coinList.stream().filter(x -> x.getName().replace("-","").equals(channelName)).findFirst().orElse(null);
             if (coin == null) {
                 throw new YamiShopBindException("不支持的提现币种");
             }
@@ -154,6 +155,7 @@
             resultObject.setCode(1);
             resultObject.setMsg(e.getMessage()); // 直接获取纯业务消息
             log.error("业务异常: {}", e.getMessage());
+            throw e;
         } catch (UdunException e) {
             resultObject.setCode(1);
             resultObject.setMsg(e.getMessage());
@@ -177,6 +179,7 @@
 
         ResultMsg resultMsg = new ResultMsg();
         try{
+            log.info("===withdrawCallback===:{}", body);
             boolean flag = udunClient.checkSign(timestamp, nonce, body, sign);
             log.info("===withdrawCallback===sign:{}", flag);
 
@@ -197,7 +200,12 @@
                 resultMsg.setCode(200);
                 return resultMsg;
             }
-            withdrawService.examineOk(order_no, Long.valueOf(withdraw.getUserId()));
+            Integer status = Integer.valueOf(map.get("status").toString());
+            if (status == 3) { //交易成功
+                withdrawService.examineOk(withdraw.getUuid(), null);
+            } else if(status == 2) {   //驳回
+                withdrawService.reject(withdraw.getUuid(), "订单失败:" + status, "withdrawCallback");
+            }
             resultMsg.setCode(200);
         }catch (Exception e){
             resultMsg.setCode(500);
diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiChannelBlockchainController.java b/trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiChannelBlockchainController.java
index 8c683e1..cf9391b 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiChannelBlockchainController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiChannelBlockchainController.java
@@ -246,6 +246,7 @@
 
         ResultMsg resultMsg = new ResultMsg();
         try{
+            log.info("===rechargeCallback===:{}", body);
             boolean flag = udunClient.checkSign(timestamp, nonce, body, sign);
             log.info("===rechargeCallback===sign:{}", flag);
 
@@ -268,8 +269,14 @@
                 resultMsg.setCode(200);
                 return resultMsg;
             }
-                SysUser user = sysUserService.getSysUserById( Long.getLong(blockchainOrder.getPartyId()));
-            rechargeBlockchainOrderService.manualReceipt(1,blockchainOrder.getPartyId(), BigDecimal.valueOf(success_amount),user.getUsername());
+            Integer status = Integer.valueOf(map.get("status").toString());
+            SysUser user = sysUserService.getSysUserById( Long.getLong(blockchainOrder.getPartyId()));
+            if (status == 3) { //交易成功
+                rechargeBlockchainOrderService.manualReceipt(1,blockchainOrder.getPartyId(), BigDecimal.valueOf(success_amount),user.getUsername());
+            } else if(status == 2) {   //驳回
+                rechargeBlockchainOrderService.refusalApply(blockchainOrder.getUuid(), "订单失败:" + status, user.getUsername());
+            }
+
             resultMsg.setCode(200);
             return resultMsg;
         }catch (Exception e){
diff --git a/trading-order-admin/src/main/resources/config/system.properties b/trading-order-admin/src/main/resources/config/system.properties
index 5f9210c..a4cb7eb 100644
--- a/trading-order-admin/src/main/resources/config/system.properties
+++ b/trading-order-admin/src/main/resources/config/system.properties
@@ -1,5 +1,5 @@
 http.server.host=http://127.0.0.1:8080/images/
-images.dir=/www/wwwroot/8.20/img/qr/
+images.dir=/www/wwwroot/8.20/img/
 admin_url=https://127.0.0.1:8080/admin
 web_url=http://127.0.0.1:8080/wap/
 
diff --git a/trading-order-security-common/src/main/java/com/yami/trading/security/common/adapter/ResourceServerAdapter.java b/trading-order-security-common/src/main/java/com/yami/trading/security/common/adapter/ResourceServerAdapter.java
index 86f5196..8052743 100644
--- a/trading-order-security-common/src/main/java/com/yami/trading/security/common/adapter/ResourceServerAdapter.java
+++ b/trading-order-security-common/src/main/java/com/yami/trading/security/common/adapter/ResourceServerAdapter.java
@@ -62,7 +62,9 @@
             "/api/banner!list.action",
             "/api/news!list_v2_popup.action",
             "/api/news!list.action",
-            "/api/authorizedLogin"
+            "/api/authorizedLogin",
+            "/api/channelBlockchain!rechargeCallback.action",
+            "/api/withdraw/withdrawCallback.action"
     );
 
 
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 222493c..2f746d1 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
@@ -140,8 +140,12 @@
             symbol = "btc";
         } else if (withdraw.getMethod().indexOf("ETH") != -1) {
             symbol = "eth";
-        } else {
+        } else if (withdraw.getMethod().indexOf("USDC") != -1) {
+            symbol = "usdc";
+        } else if (withdraw.getMethod().indexOf("USDT") != -1) {
             symbol = "usdt";
+        } else {
+            return;
         }
         if ("usdt".equals(symbol)) {
             Wallet wallet = walletService.saveWalletByPartyId(withdraw.getUserId());

--
Gitblit v1.9.3