From 4d2d2e5e9e296ec6cb15a01ab35f18cca00ce9ec Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Tue, 13 Jan 2026 16:04:24 +0800
Subject: [PATCH] 杠杆

---
 src/main/java/com/nq/service/impl/UserPositionServiceImpl.java |    7 +++----
 src/main/java/com/nq/service/impl/UserServiceImpl.java         |   32 ++++++++++++++++----------------
 2 files changed, 19 insertions(+), 20 deletions(-)

diff --git a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
index f658a7f..5c9e9d9 100644
--- a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
@@ -416,17 +416,16 @@
             position.setId(null);
             position.setPositionSn(KeyUtils.getUniqueKey());
             position.setOrderNum(number);
-            position.setOrderTotalPrice(position.getBuyOrderPrice().multiply(new BigDecimal(number)));
+            position.setOrderTotalPrice(position.getBuyOrderPrice().multiply(new BigDecimal(number)).divide(new BigDecimal(position.getOrderLever()), 5, RoundingMode.HALF_UP));
             position.setBuyOrderId(GeneratePosition.getPositionId());
             //修改拆分订单手续费
             BigDecimal BuyFee = new BigDecimal(iStockConfigServices.queryByKey(EConfigKey.BUY_HANDLING_CHARGE.getCode()).getCValue());
-            BigDecimal buyPrice = position.getBuyOrderPrice().multiply(new BigDecimal(position.getOrderNum()));
-            BigDecimal xsPrice = buyPrice.multiply(BuyFee);
+            BigDecimal xsPrice = position.getOrderTotalPrice().multiply(BuyFee);
             position.setOrderFee(xsPrice);
 
             //修改原订单
             userPosition.setOrderNum(userPosition.getOrderNum()-number);
-            userPosition.setOrderTotalPrice(userPosition.getBuyOrderPrice().multiply(new BigDecimal(userPosition.getOrderNum())));
+            userPosition.setOrderTotalPrice(userPosition.getBuyOrderPrice().multiply(new BigDecimal(userPosition.getOrderNum())).divide(new BigDecimal(position.getOrderLever()), 5, RoundingMode.HALF_UP));
             userPosition.setOrderFee(userPosition.getOrderFee().subtract(position.getOrderFee()));
             userPositionMapper.insert(position);
             userPositionMapper.updateById(userPosition);
diff --git a/src/main/java/com/nq/service/impl/UserServiceImpl.java b/src/main/java/com/nq/service/impl/UserServiceImpl.java
index 4ec9f39..81243c9 100644
--- a/src/main/java/com/nq/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserServiceImpl.java
@@ -478,7 +478,7 @@
     public ServerResponse getMoney(Integer userId) {
         List<UserAssets>  userAssetsList =   userAssetsServices.assetsByUserId(userId);
         List<RUserAssets>  rUserAssetsList = new ArrayList<>();
-        int s= 4;
+        int s= 2;
         /**
          *  浮动盈亏
          * */
@@ -507,7 +507,7 @@
             RUserAssets rUserAssets  = new RUserAssets();
             UserAssets userAssets = userAssetsList.get(i);
             // 浮动盈亏
-            String profitAndLose = getProfitAndLose(userId).toString();
+            String profitAndLose = getProfitAndLose(userId).setScale(s,RoundingMode.UP).toString();
             BigDecimal amt = userAssets.getAvailableBalance();
             BigDecimal totalAssets = userAssets.getAvailableBalance().add(userAssets.getFreezeMoney()).add(new BigDecimal(profitAndLose)).subtract(userAssets.getHandlingChargeWritten());
 //            BigDecimal totalAssets = userAssets.getAvailableBalance().add(userAssets.getFreezeMoney()).subtract(userAssets.getCumulativeProfitAndLoss()).add(profitAndLose);
@@ -515,16 +515,16 @@
             BigDecimal hMoney = userAssets.getHandlingCharge();
             BigDecimal hProfitAndLose = userAssets.getCumulativeProfitAndLoss();
             rUserAssets.setId(userAssets.getId());
-            rUserAssets.setTotalMoney((totalAssets.toString()));
+            rUserAssets.setTotalMoney((totalAssets.setScale(s,RoundingMode.UP).toString()));
             rUserAssets.setAccectType(userAssets.getAccectType());
-            rUserAssets.setAvailableBalance(amt.toString());
-            rUserAssets.setFreezeMoney(freeMoney.toString());
-            rUserAssets.setCumulativeProfitAndLoss(hProfitAndLose.toString());
-            rUserAssets.setHandlingCharge(hMoney.toString());
-            rUserAssets.setProfitAndLoss(profitAndLose.toString());
+            rUserAssets.setAvailableBalance(amt.setScale(s,RoundingMode.UP).toString());
+            rUserAssets.setFreezeMoney(freeMoney.setScale(s,RoundingMode.UP).toString());
+            rUserAssets.setCumulativeProfitAndLoss(hProfitAndLose.setScale(s,RoundingMode.UP).toString());
+            rUserAssets.setHandlingCharge(hMoney.setScale(s, RoundingMode.UP).toString());
+            rUserAssets.setProfitAndLoss(profitAndLose);
             rUserAssets.setIsZf(userAssets.getIsZf());
-            rUserAssets.setAmountToBeCovered((userAssets.getAmountToBeCovered().add(userAssets.getHandlingChargeWritten()).toString()));
-            rUserAssets.setHandlingChargeWritten(userAssets.getHandlingChargeWritten());
+            rUserAssets.setAmountToBeCovered((userAssets.getAmountToBeCovered().add(userAssets.getHandlingChargeWritten())).setScale(s, RoundingMode.UP).toString());
+            rUserAssets.setHandlingChargeWritten(userAssets.getHandlingChargeWritten().setScale(s, RoundingMode.UP));
             BigDecimal rate = rateServices.currencyRate(
                     EStockType.getEStockTypeByCode(userAssets.getAccectType()),EStockType.JP);
 
@@ -559,14 +559,14 @@
 
 
 
-            rUserAssets.setAvailableBalanceUSD(availableBalanceUSD.setScale(s,BigDecimal.ROUND_UP).toString());
-            rUserAssets.setFreezeMoneyUSD(freezeMoneyUSD.setScale(s,BigDecimal.ROUND_UP).toString());
-            rUserAssets.setTotalMoneyUSD(totleMoneyUSD.setScale(s,BigDecimal.ROUND_UP).toString());
+            rUserAssets.setAvailableBalanceUSD(availableBalanceUSD.setScale(s,RoundingMode.UP).toString());
+            rUserAssets.setFreezeMoneyUSD(freezeMoneyUSD.setScale(s,RoundingMode.UP).toString());
+            rUserAssets.setTotalMoneyUSD(totleMoneyUSD.setScale(s,RoundingMode.UP).toString());
             rUserAssets.setSymbol(EStockType.getEStockTypeByCode(userAssets.getAccectType()).getSymbol1());
             rUserAssets.setSymbolCode(EStockType.getEStockTypeByCode(userAssets.getAccectType()).getSymbol());
-            rUserAssets.setCumulativeProfitAndLossUSD(cumulativeProfitAndLossUSD.setScale(s,BigDecimal.ROUND_UP).toString());
-            rUserAssets.setHandlingChargeUSD(handlingChargeUSD.setScale(s,BigDecimal.ROUND_UP).toString());
-            rUserAssets.setProfitAndLossUSD(profitAndLossUSD.setScale(s,BigDecimal.ROUND_UP).toString());
+            rUserAssets.setCumulativeProfitAndLossUSD(cumulativeProfitAndLossUSD.setScale(s,RoundingMode.UP).toString());
+            rUserAssets.setHandlingChargeUSD(handlingChargeUSD.setScale(s,RoundingMode.UP).toString());
+            rUserAssets.setProfitAndLossUSD(profitAndLossUSD.setScale(s,RoundingMode.UP).toString());
             rUserAssets.setProfitAndLoss(profitAndLose);
 //            BigDecimal decimal = new BigDecimal(rUserAssets.getTotalMoney()).add(new BigDecimal(rUserAssets.getProfitAndLoss()));
 //            rUserAssets.setTotalMoney(decimal.toString());

--
Gitblit v1.9.3