From 7621191445c6f37f0d8253657560be6202778395 Mon Sep 17 00:00:00 2001
From: peternameyakj <908253177@qq.com>
Date: Thu, 24 Oct 2024 16:43:47 +0800
Subject: [PATCH] 强平价

---
 src/main/java/project/contract/internal/ContractOrderServiceImpl.java |   29 ++++++++++++++++++++---------
 1 files changed, 20 insertions(+), 9 deletions(-)

diff --git a/src/main/java/project/contract/internal/ContractOrderServiceImpl.java b/src/main/java/project/contract/internal/ContractOrderServiceImpl.java
index 1b7b665..86559a3 100644
--- a/src/main/java/project/contract/internal/ContractOrderServiceImpl.java
+++ b/src/main/java/project/contract/internal/ContractOrderServiceImpl.java
@@ -1,13 +1,8 @@
 package project.contract.internal;
 
 import java.text.DecimalFormat;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.text.SimpleDateFormat;
+import java.util.*;
 import java.util.Map.Entry;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -465,14 +460,16 @@
 	}
 
 	public Map<String, Object> bulidOne(ContractOrder order) {
+		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd  hh:mm:ss  a", Locale.ENGLISH);
+		simpleDateFormat.setTimeZone(TimeZone.getTimeZone("America/New_York"));
 		DecimalFormat df = new DecimalFormat("#.##");
 		Map<String, Object> map = new HashMap<String, Object>();
 		map.put("order_no", order.getOrder_no());
 		map.put("name", itemService.cacheBySymbol(order.getSymbol(), false).getName());
 		map.put("symbol", order.getSymbol());
-		map.put("create_time", DateUtils.format(order.getCreate_time(), DateUtils.DF_yyyyMMddHHmmss));
+		map.put("create_time", simpleDateFormat.format(order.getCreate_time()));
 		if (order.getClose_time() != null) {
-			map.put("close_time", DateUtils.format(order.getClose_time(), DateUtils.DF_yyyyMMddHHmmss));
+			map.put("close_time", simpleDateFormat.format(order.getClose_time()));
 		} else {
 			map.put("close_time", "");
 		}
@@ -504,7 +501,21 @@
 		} else {
 			map.put("profit", df.format(Arith.sub(Arith.add(order.getAmount_close(), order.getDeposit()), order.getDeposit_open())));
 		}
+		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);
+		}
 		map.put("volume", order.getVolume());
 		map.put("volume_open", order.getVolume_open());
 

--
Gitblit v1.9.3