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