From d869f01aa59927d0b4c93c908dfdfb9ca6fb326f Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Fri, 11 Apr 2025 17:36:01 +0800
Subject: [PATCH] 1

---
 src/main/java/project/contract/internal/ContractOrderServiceImpl.java |   31 +++++++------------------------
 1 files changed, 7 insertions(+), 24 deletions(-)

diff --git a/src/main/java/project/contract/internal/ContractOrderServiceImpl.java b/src/main/java/project/contract/internal/ContractOrderServiceImpl.java
index 99badb6..63378f2 100644
--- a/src/main/java/project/contract/internal/ContractOrderServiceImpl.java
+++ b/src/main/java/project/contract/internal/ContractOrderServiceImpl.java
@@ -240,12 +240,6 @@
 
 		moneyLogService.save(moneylog);
 
-		order.setState(ContractOrder.STATE_CREATED);
-		order.setVolume(0D);
-		order.setDeposit(0);
-		order.setClose_time(new Date());
-		update(order);
-
 		/**
 		 * 合约产品平仓后添加当前流水
 		 */
@@ -329,7 +323,11 @@
 		 */
 		double rate = Arith.div(volume, order.getVolume_open());
 
-		//profit = Arith.mul(Arith.add(order.getDeposit(), order.getProfit()), rate);
+		//平仓收益
+//		double mul = Arith.mul(order.getDeposit_open(), order.getLever_rate());//仓位
+//		double div = Arith.div(mul, order.getTrade_avg_price());//持有币的数量
+//		double amount = Arith.mul(div, Arith.sub(order.getClose_avg_price(), order.getTrade_avg_price()));
+
 		profit = Arith.add(Arith.mul(order.getDeposit_open(),rate),Arith.mul(order.getProfit(),rate));
 		order.setAmount_close(Arith.add(order.getAmount_close(), profit));
 		order.setVolume(Arith.sub(order.getVolume(), volume));
@@ -339,7 +337,7 @@
 			order.setState(ContractOrder.STATE_CREATED);
 			order.setClose_time(new Date());
 		}
-
+		update(order);
 		return profit;
 
 	}
@@ -516,23 +514,8 @@
 							Arith.add(Arith.add(order.getAmount_close(),Arith.mul(order.getProfit(),rate)), order.getDeposit()),
 							order.getDeposit_open())));
 		} else {
-			map.put("profit", df.format(Arith.sub(Arith.add(order.getAmount_close(), order.getDeposit()), order.getDeposit_open())));
+			map.put("profit", df.format(order.getProfit()));
 		}
-//		double currentPrice = Double.parseDouble(map.get("trade_avg_price").toString());
-//
-//		double leve = Double.parseDouble(map.get("lever_rate").toString());
-//		//得到强平价格
-//		if(null != map.get("direction")){
-//			double liquidationPrice;
-//			if(map.get("direction").equals("sell")){
-//				liquidationPrice = currentPrice * (1 + (1 / leve));
-//			}else{
-//				liquidationPrice = currentPrice * (1 - 1 / leve);
-//			}
-//			DecimalFormat dfs = new DecimalFormat("#.#####");
-//			String formattedPrice = dfs.format(liquidationPrice);
-//			map.put("qiangPing",formattedPrice);
-//		}
 
 		double depositOpen =  Double.parseDouble(map.get("deposit_open").toString());
 		double leverRate = Double.parseDouble(map.get("lever_rate").toString());

--
Gitblit v1.9.3