From a9d18fe810001b735d68f352a28abf48d6c04bf3 Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Fri, 17 Oct 2025 17:21:38 +0800
Subject: [PATCH] U盾充值

---
 trading-order-service/src/main/java/com/yami/trading/service/impl/CapitaltWalletServiceImpl.java               |   10 +++++++++-
 trading-order-common/src/main/java/com/yami/trading/common/constants/Constants.java                            |    2 ++
 trading-order-admin/src/main/java/com/yami/trading/api/UD/UdunClient.java                                      |   11 +++++++++--
 trading-order-service/src/main/java/com/yami/trading/service/impl/RechargeBlockchainOrderServiceImpl.java      |    8 +++++---
 trading-order-admin/src/main/resources/config/system.properties                                                |    2 ++
 trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiChannelBlockchainController.java |   13 ++++++++-----
 trading-order-common/src/main/java/com/yami/trading/common/constants/RedisKeys.java                            |    5 +++++
 7 files changed, 40 insertions(+), 11 deletions(-)

diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/UD/UdunClient.java b/trading-order-admin/src/main/java/com/yami/trading/api/UD/UdunClient.java
index e07ff6e..a77df60 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/UD/UdunClient.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/api/UD/UdunClient.java
@@ -4,6 +4,7 @@
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.http.HttpStatus;
 import cn.hutool.json.JSONUtil;
+import com.yami.trading.common.constants.Constants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
@@ -35,12 +36,12 @@
     /**
      * Callback 充值
      */
-    private final String defaultCallBackUrl =  "https://syjysapi.yanshiz.com/api/channelBlockchain!rechargeCallback.action";
+    private final String defaultCallBackUrl = Constants.API_HTTP + "api/channelBlockchain!rechargeCallback.action";
 
     /**
      * Callback 提币
      */
-    private final String withdrawCallBackUrl =  "https://syjysapi.yanshiz.com/api/withdraw/withdrawCallback.action";
+    private final String withdrawCallBackUrl =  Constants.API_HTTP + "api/withdraw/withdrawCallback.action";
 
 
 
@@ -132,6 +133,12 @@
         return JSONUtil.toList(JSONUtil.parseArray(result.getData()), Coin.class);
     }
 
+    public static void main(String[] args) {
+        UdunClient udunClient = new UdunClient();
+        List<Coin> list =udunClient.listSupportCoin(false);
+        System.out.println(list);
+    }
+
     public boolean checkSign(String timestamp, String nonce, String body, String sign) {
         String checkSign = UdunUtils.sign(merchantKey, timestamp, nonce, body);
         return checkSign.equals(sign);
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 cf9391b..ea19b96 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
@@ -10,6 +10,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.yami.trading.bean.vo.RechargeAddressVo;
+import com.yami.trading.common.constants.RedisKeys;
 import com.yami.trading.security.common.enums.CryptoCurrencyEnum;
 import com.yami.trading.security.common.util.LocalKeyStorageAESUtil;
 import com.yami.trading.api.UD.*;
@@ -213,13 +214,13 @@
                     ChannelBlockchain rechargeAddressVo = new ChannelBlockchain();
                     //创建地址
                     Address address;
-                    String ress = (String)redisTemplate.opsForValue().get(partyId + coinName);
+                    String ress = (String)redisTemplate.opsForValue().get(RedisKeys.BLOCKCHAIN_ADDRESS + partyId + coinName);
                     if(StringUtils.isNotEmpty(ress)){
                         rechargeAddressVo.setAddress(ress);
                     }else{
                         address = udunClient.createAddress(c.getMainCoinType());
                         rechargeAddressVo.setAddress(address.getAddress());
-                        redisTemplate.opsForValue().set(partyId + coinName, address.getAddress());
+                        redisTemplate.opsForValue().set(RedisKeys.BLOCKCHAIN_ADDRESS + partyId + coinName, address.getAddress());
                     }
                     //rechargeAddressVo.setAddress("test" + coinName);
                     rechargeAddressVo.setCoin(currencyEnum.getCoin());
@@ -270,11 +271,13 @@
                 return resultMsg;
             }
             Integer status = Integer.valueOf(map.get("status").toString());
-            SysUser user = sysUserService.getSysUserById( Long.getLong(blockchainOrder.getPartyId()));
+            User user = userService.getById(blockchainOrder.getPartyId());
+
+            log.info("===rechargeCallback==d=blockchainOrder:{}", blockchainOrder);
             if (status == 3) { //交易成功
-                rechargeBlockchainOrderService.manualReceipt(1,blockchainOrder.getPartyId(), BigDecimal.valueOf(success_amount),user.getUsername());
+                rechargeBlockchainOrderService.manualReceipt(1,blockchainOrder.getOrderNo(), BigDecimal.valueOf(success_amount),user.getUserName());
             } else if(status == 2) {   //驳回
-                rechargeBlockchainOrderService.refusalApply(blockchainOrder.getUuid(), "订单失败:" + status, user.getUsername());
+                rechargeBlockchainOrderService.refusalApply(blockchainOrder.getUuid(), "订单失败:" + status, user.getUserName());
             }
 
             resultMsg.setCode(200);
diff --git a/trading-order-admin/src/main/resources/config/system.properties b/trading-order-admin/src/main/resources/config/system.properties
index 2281568..c91c070 100644
--- a/trading-order-admin/src/main/resources/config/system.properties
+++ b/trading-order-admin/src/main/resources/config/system.properties
@@ -4,6 +4,8 @@
 web_url=http://127.0.0.1:8080/wap/
 
 images_http=https://sysimg.yanshiz.com/
+api_http=https://api.metaequityex.com/
+
 loca.images.dir=/www/wwwroot/img
 email.host=smtp.gmail.com
 email.username=coinzne.com@gmail.com
diff --git a/trading-order-common/src/main/java/com/yami/trading/common/constants/Constants.java b/trading-order-common/src/main/java/com/yami/trading/common/constants/Constants.java
index c5fab7b..bbc890a 100644
--- a/trading-order-common/src/main/java/com/yami/trading/common/constants/Constants.java
+++ b/trading-order-common/src/main/java/com/yami/trading/common/constants/Constants.java
@@ -15,6 +15,8 @@
 
 	public static final String IMAGES_HTTP = PropertiesUtil.getProperty("images_http");
 
+	public static final String API_HTTP = PropertiesUtil.getProperty("api_http");
+
 	/**
 	 * c2c卖币
 	 */
diff --git a/trading-order-common/src/main/java/com/yami/trading/common/constants/RedisKeys.java b/trading-order-common/src/main/java/com/yami/trading/common/constants/RedisKeys.java
index d050cb8..30d3f13 100644
--- a/trading-order-common/src/main/java/com/yami/trading/common/constants/RedisKeys.java
+++ b/trading-order-common/src/main/java/com/yami/trading/common/constants/RedisKeys.java
@@ -50,6 +50,11 @@
 	public final static String WITHDRAW_ORDERNO = "WITHDRAW_ORDERNO_";
 
 	/**
+	 * 充值地址缓存
+	 */
+	public final static String BLOCKCHAIN_ADDRESS = "BLOCKCHAIN_ADDRESS";
+
+	/**
 	 * 钱包 partyid 做key
 	 */
 	public final static String WALLET_PARTY_ID = "WALLET_PARTY_ID_";
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/impl/CapitaltWalletServiceImpl.java b/trading-order-service/src/main/java/com/yami/trading/service/impl/CapitaltWalletServiceImpl.java
index 513522b..fdccbd0 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/impl/CapitaltWalletServiceImpl.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/impl/CapitaltWalletServiceImpl.java
@@ -39,8 +39,16 @@
 
     @Override
     public CapitaltWallet getUserIdWallet(String userId) {
-        return getOne(new LambdaQueryWrapper<>(CapitaltWallet.class)
+        CapitaltWallet capitaltWallet = getOne(new LambdaQueryWrapper<>(CapitaltWallet.class)
                 .eq(CapitaltWallet::getUserId,userId).last(" limit 1"));
+        if (capitaltWallet != null) {
+            return capitaltWallet;
+        } else {
+            capitaltWallet = new CapitaltWallet();
+            capitaltWallet.setUserId(userId);
+            save(capitaltWallet);
+            return capitaltWallet;
+        }
     }
 
     /**
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/impl/RechargeBlockchainOrderServiceImpl.java b/trading-order-service/src/main/java/com/yami/trading/service/impl/RechargeBlockchainOrderServiceImpl.java
index ee52404..91540ff 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/impl/RechargeBlockchainOrderServiceImpl.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/impl/RechargeBlockchainOrderServiceImpl.java
@@ -89,7 +89,10 @@
 //        Date now = new Date();
         RechargeBlockchainOrder recharge = getById(id);
         if (recharge == null) {
-            throw new YamiShopBindException("参数错误!");
+            recharge = findByOrderNo(id);
+            if (recharge == null) {
+                throw new YamiShopBindException("参数错误!");
+            }
         }
         User party = userService.getById(recharge.getPartyId());
         if (party == null) {
@@ -135,8 +138,7 @@
 //
 //            walletService.update(wallet.getUserId(), amount1);
 
-            CapitaltWallet capitaltWallet = capitaltWalletService.getOne(new LambdaQueryWrapper<>(CapitaltWallet.class)
-                    .eq(CapitaltWallet::getUserId, recharge.getPartyId()).last(" limit 1 "));
+            CapitaltWallet capitaltWallet = capitaltWalletService.getUserIdWallet(recharge.getPartyId());
             double amount_before = capitaltWallet.getMoney().doubleValue();
             capitaltWalletService.update(capitaltWallet,amount1);
 

--
Gitblit v1.9.3