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 |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
index 0431205..5c9e9d9 100644
--- a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
@@ -35,6 +35,7 @@
 
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.sql.Timestamp;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
@@ -188,7 +189,7 @@
                 return ServerResponse.createByErrorMsg("报价0,请稍后再试", request);
             }
 
-            BigDecimal buyAmt = nowPrice.multiply(new BigDecimal(buyNum)).divide(new BigDecimal(lever));
+            BigDecimal buyAmt = nowPrice.multiply(new BigDecimal(buyNum)).divide(new BigDecimal(lever), 5, RoundingMode.HALF_UP);
             BigDecimal orderFree = siteSettingBuyFee.multiply(buyAmt);
 
             BigDecimal   fundratio = new BigDecimal(String.valueOf(user.getFundRatio().isEmpty() ? 100 : user.getFundRatio())).divide(new BigDecimal(100));
@@ -415,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);

--
Gitblit v1.9.3