From 566a1b9fda0276e2cc4a35f7ba322c0e599a2c84 Mon Sep 17 00:00:00 2001
From: peter <14100000001@qq.com>
Date: Wed, 26 Nov 2025 16:03:05 +0800
Subject: [PATCH] 修改
---
src/main/java/com/nq/service/impl/UserPositionServiceImpl.java | 18 ++++++++++++++----
1 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
index 8dde425..c6f7764 100644
--- a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
@@ -715,13 +715,15 @@
BigDecimal all_sell_amt = now_price.multiply(new BigDecimal(buy_num.intValue()));
BigDecimal profitLoss = new BigDecimal("0");
- if ("買漲".equals(userPosition.getOrderDirection())) {
+ if ("买涨".equals(userPosition.getOrderDirection())) {
log.info("買賣方向:{}", "漲");
- profitLoss = all_sell_amt.subtract(all_buy_amt).multiply(new BigDecimal(userPosition.getOrderLever())).setScale(2,4);
+// profitLoss = all_sell_amt.subtract(all_buy_amt).multiply(new BigDecimal(userPosition.getOrderLever())).setScale(2,4);
+ profitLoss = all_sell_amt.subtract(all_buy_amt).setScale(2,4);
} else {
log.info("買賣方向:{}", "跌");
- profitLoss = all_buy_amt.subtract(all_sell_amt).multiply(new BigDecimal(userPosition.getOrderLever())).setScale(2,4);
+// profitLoss = all_buy_amt.subtract(all_sell_amt).multiply(new BigDecimal(userPosition.getOrderLever())).setScale(2,4);
+ profitLoss = all_buy_amt.subtract(all_sell_amt).setScale(2,4);
}
log.info("買入總金額 = {} , 賣出總金額 = {} , 盈虧 = {}", new Object[]{all_buy_amt, all_sell_amt, profitLoss});
@@ -813,6 +815,7 @@
return ServerResponse.createBySuccessMsg("平倉成功!");
}
+
//用户追加保证金操作
public ServerResponse addmargin(String positionSn, int doType, BigDecimal marginAdd) throws Exception {
@@ -1629,6 +1632,7 @@
userPositionVO.setProfitAndLose(positionProfitVO.getProfitAndLose());
userPositionVO.setAllProfitAndLose(positionProfitVO.getAllProfitAndLose());
userPositionVO.setNow_price(positionProfitVO.getNowPrice());
+ userPositionVO.setAllProfitAndLoseStr(positionProfitVO.getAllProfitAndLoseStr());
return userPositionVO;
@@ -1637,12 +1641,14 @@
public PositionProfitVO getPositionProfitVO(UserPosition position) {
BigDecimal profitAndLose = new BigDecimal("0");
BigDecimal allProfitAndLose = new BigDecimal("0");
+ String allProfitAndLoseStr = "";
String nowPrice = "";
if (position.getSellOrderId() != null) {
BigDecimal subPrice = position.getSellOrderPrice().subtract(position.getBuyOrderPrice());
- profitAndLose = subPrice.multiply(new BigDecimal(position.getOrderNum().intValue())).multiply(new BigDecimal(position.getOrderLever())).setScale(2,4);
+// profitAndLose = subPrice.multiply(new BigDecimal(position.getOrderNum().intValue())).multiply(new BigDecimal(position.getOrderLever())).setScale(2,4);
+ profitAndLose = subPrice.multiply(new BigDecimal(position.getOrderNum().intValue())).setScale(2,4);
if ("买跌".equals(position.getOrderDirection())) {
profitAndLose = profitAndLose.negate();
}
@@ -1671,10 +1677,14 @@
//总盈亏= 浮动盈亏 – 手续费 – 印花税 – 留仓费 – 点差费
allProfitAndLose = profitAndLose.subtract(position.getOrderFee()).subtract(position.getOrderSpread()).subtract(position.getOrderStayFee()).subtract(position.getSpreadRatePrice());
+ //改成盈亏百分比
+ BigDecimal allProfitAndLoseStrTemp = new BigDecimal(nowPrice).subtract(position.getBuyOrderPrice()).divide(position.getBuyOrderPrice(), 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).setScale(2,4);
+ allProfitAndLoseStr = allProfitAndLoseStrTemp.toString() + "%";
}
PositionProfitVO positionProfitVO = new PositionProfitVO();
positionProfitVO.setProfitAndLose(profitAndLose);
positionProfitVO.setAllProfitAndLose(allProfitAndLose);
+ positionProfitVO.setAllProfitAndLoseStr(allProfitAndLoseStr);
positionProfitVO.setNowPrice(nowPrice);
return positionProfitVO;
--
Gitblit v1.9.3