From 0ebdfd97b5400c864584147bd72a0de768172d6e Mon Sep 17 00:00:00 2001
From: dd <gitluke@outlook.com>
Date: Tue, 27 Jan 2026 10:19:48 +0800
Subject: [PATCH] 1

---
 src/main/java/com/nq/service/impl/UserAssetsServices.java  |    4 +-
 src/main/java/com/nq/controller/protol/UserController.java |   10 +++-
 src/main/java/com/nq/service/IUserService.java             |    2 
 src/main/java/com/nq/service/impl/UserServiceImpl.java     |   49 +++++++++++-------------
 4 files changed, 33 insertions(+), 32 deletions(-)

diff --git a/src/main/java/com/nq/controller/protol/UserController.java b/src/main/java/com/nq/controller/protol/UserController.java
index 1b6461a..bc5b9b3 100644
--- a/src/main/java/com/nq/controller/protol/UserController.java
+++ b/src/main/java/com/nq/controller/protol/UserController.java
@@ -356,10 +356,14 @@
     @ResponseBody
     public ServerResponse transfer(@RequestParam("fromType") String fromType, @RequestParam("toType") String toType,
                                    @RequestParam("amt") String amt,  HttpServletRequest request) {
-        if (fromType.equals(toType)) {
-            return ServerResponse.createByErrorMsg("货币类型不能相同", request);
+        try {
+            if (fromType.equals(toType)) {
+                return ServerResponse.createByErrorMsg("货币类型不能相同", request);
+            }
+            return  iUserService.transfer(fromType, toType, amt,request);
+        } catch (Exception e) {
+            return ServerResponse.createByErrorMsg(e.getMessage());
         }
-        return  iUserService.transfer(fromType, toType, amt,request);
     }
 
 
diff --git a/src/main/java/com/nq/service/IUserService.java b/src/main/java/com/nq/service/IUserService.java
index d2a14aa..6c8cf30 100644
--- a/src/main/java/com/nq/service/IUserService.java
+++ b/src/main/java/com/nq/service/IUserService.java
@@ -43,7 +43,7 @@
 
   ServerResponse getMoney(Integer  userId);
 
-  ServerResponse transfer(String fromType,String toType,String amt,HttpServletRequest paramHttpServletRequest);
+  ServerResponse transfer(String fromType,String toType,String amt,HttpServletRequest paramHttpServletRequest) throws Exception;
 
   void ForceSellTask();
   void ForceSellOneStockTask();
diff --git a/src/main/java/com/nq/service/impl/UserAssetsServices.java b/src/main/java/com/nq/service/impl/UserAssetsServices.java
index 975cc10..6f22fd7 100644
--- a/src/main/java/com/nq/service/impl/UserAssetsServices.java
+++ b/src/main/java/com/nq/service/impl/UserAssetsServices.java
@@ -441,8 +441,8 @@
 
     @Override
     public BigDecimal exchangeAmountByRate(String fromType, String toType, BigDecimal amount) throws Exception {
-        EStockType stockType = EStockType.getEStockTypeBySymbol(fromType);
-        EStockType toStockType = EStockType.getEStockTypeBySymbol(toType);
+        EStockType stockType = EStockType.getEStockTypeByCode(fromType);
+        EStockType toStockType = EStockType.getEStockTypeByCode(toType);
         ExchangeRate exchangeRate = exchangeRateRepository.findExchangeRateByCurrencyAndConversionCurrency(
                 stockType.getSymbol(), toStockType.getSymbol()).orElse(null);
         if (exchangeRate != null) {
diff --git a/src/main/java/com/nq/service/impl/UserServiceImpl.java b/src/main/java/com/nq/service/impl/UserServiceImpl.java
index 4972401..4aaf9f2 100644
--- a/src/main/java/com/nq/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserServiceImpl.java
@@ -632,34 +632,31 @@
     }
 
     @Override
-    public ServerResponse transfer(String fromType, String toType, String amt,HttpServletRequest request) {
-        try {
-            User user =  userService.getCurrentUser(request);
-            UserAssets formAssets = userAssetsServices.assetsByTypeAndUserId(fromType,user.getId());
-            BigDecimal amtBig = new BigDecimal(amt).abs();
+    @Transactional
+    public ServerResponse transfer(String fromType, String toType, String amt,HttpServletRequest request) throws Exception {
+        User user =  userService.getCurrentUser(request);
+        UserAssets formAssets = userAssetsServices.assetsByTypeAndUserId(fromType,user.getId());
+        BigDecimal amtBig = new BigDecimal(amt).abs();
 
-            // 转换手续费率
-            BigDecimal siteSettingBuyFee = new BigDecimal(iStockConfigServices.queryByKey(EConfigKey.EXCHANGE_HANDLING_CHARGE.getCode()).getCValue()) ;
-            BigDecimal orderFree = siteSettingBuyFee.multiply(amtBig);
-            //资金校验
-            BigDecimal needAmt = amtBig.add(orderFree);
-            if(formAssets.getAvailableBalance().compareTo(needAmt)<0){
-                return ServerResponse.createByErrorMsg("余额不足", request);
-            }
-
-            if (orderFree.compareTo(BigDecimal.ZERO) > 0) {
-                userAssetsServices.availablebalanceChange(fromType, user.getId(), EUserAssets.HANDLING_CHARGE, orderFree, "", "");
-            }
-
-            userAssetsServices.availablebalanceChange(fromType, user.getId(), EUserAssets.TRANSFER, amtBig.negate(),fromType+"/"+toType,"");
-            //转换金额
-            amtBig = userAssetsServices.exchangeAmountByRate(fromType, toType, amtBig);
-            userAssetsServices.availablebalanceChange(toType,user.getId(), EUserAssets.TRANSFER, amtBig.setScale(5,RoundingMode.HALF_DOWN),fromType+"/"+toType,"");
-
-            return ServerResponse.createBySuccess("操作成功", request);
-        } catch (Exception e) {
-            return ServerResponse.createByErrorMsg(e.getMessage());
+        // 转换手续费率
+        BigDecimal siteSettingBuyFee = new BigDecimal(iStockConfigServices.queryByKey(EConfigKey.EXCHANGE_HANDLING_CHARGE.getCode()).getCValue()) ;
+        BigDecimal orderFree = siteSettingBuyFee.multiply(amtBig);
+        //资金校验
+        BigDecimal needAmt = amtBig.add(orderFree);
+        if(formAssets.getAvailableBalance().compareTo(needAmt)<0){
+            return ServerResponse.createByErrorMsg("余额不足", request);
         }
+
+        if (orderFree.compareTo(BigDecimal.ZERO) > 0) {
+            userAssetsServices.availablebalanceChange(fromType, user.getId(), EUserAssets.HANDLING_CHARGE, orderFree, "", "");
+        }
+
+        userAssetsServices.availablebalanceChange(fromType, user.getId(), EUserAssets.TRANSFER, amtBig.negate(),fromType+"/"+toType,"");
+        //转换金额
+        amtBig = userAssetsServices.exchangeAmountByRate(fromType, toType, amtBig);
+        userAssetsServices.availablebalanceChange(toType,user.getId(), EUserAssets.TRANSFER, amtBig.setScale(5,RoundingMode.HALF_DOWN),fromType+"/"+toType,"");
+
+        return ServerResponse.createBySuccess("操作成功", request);
     }
 
 

--
Gitblit v1.9.3