From a7bd76dfd00efc7b03999c4559cf8554e34c19cb Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Fri, 02 Aug 2024 16:56:34 +0800
Subject: [PATCH] 1
---
src/main/java/project/project/web/admin/AdminContractOrderController.java | 42 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 42 insertions(+), 0 deletions(-)
diff --git a/src/main/java/project/project/web/admin/AdminContractOrderController.java b/src/main/java/project/project/web/admin/AdminContractOrderController.java
index a9ce3a7..29114ab 100644
--- a/src/main/java/project/project/web/admin/AdminContractOrderController.java
+++ b/src/main/java/project/project/web/admin/AdminContractOrderController.java
@@ -1,6 +1,7 @@
package project.project.web.admin;
import java.math.BigDecimal;
+import java.text.DecimalFormat;
import java.text.MessageFormat;
import java.util.Date;
import java.util.HashMap;
@@ -8,6 +9,7 @@
import java.util.List;
import java.util.Map;
+import javax.persistence.Column;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.ObjectUtils;
@@ -109,6 +111,26 @@
String roleName = map.get("rolename").toString();
map.put("roleNameDesc", Constants.ROLE_MAP.containsKey(roleName) ? Constants.ROLE_MAP.get(roleName) : roleName);
}
+ double currentPrice = Double.parseDouble(map.get("trade_avg_price").toString());
+
+ // 计算仓位总价
+ double positionValue = Double.parseDouble(map.get("deposit_open").toString()) * Double.parseDouble(map.get("lever_rate").toString());
+
+ // 计算数量
+ double quantity = positionValue / currentPrice;
+
+ // 得到强平价格
+ if(null != map.get("direction")){
+ double liquidationPrice;
+ if(map.get("direction").equals("sell")){
+ liquidationPrice = currentPrice + (100 / quantity);
+ }else{
+ liquidationPrice = currentPrice - (100 / quantity);
+ }
+ DecimalFormat df = new DecimalFormat("#.#####");
+ String formattedPrice = df.format(liquidationPrice);
+ map.put("qiangPing",formattedPrice);
+ }
}
List<Item> items = this.itemService.cacheGetAll();
@@ -200,6 +222,26 @@
String roleName = map.get("rolename").toString();
map.put("roleNameDesc", Constants.ROLE_MAP.containsKey(roleName) ? Constants.ROLE_MAP.get(roleName) : roleName);
}
+ double currentPrice = Double.parseDouble(map.get("trade_avg_price").toString());
+
+ // 计算仓位总价
+ double positionValue = Double.parseDouble(map.get("deposit_open").toString()) * Double.parseDouble(map.get("lever_rate").toString());
+
+ // 计算数量
+ double quantity = positionValue / currentPrice;
+
+ // 得到强平价格
+ if(null != map.get("direction")){
+ double liquidationPrice;
+ if(map.get("direction").equals("sell")){
+ liquidationPrice = currentPrice + (100 / quantity);
+ }else{
+ liquidationPrice = currentPrice - (100 / quantity);
+ }
+ DecimalFormat df = new DecimalFormat("#.#####");
+ String formattedPrice = df.format(liquidationPrice);
+ map.put("qiangPing",formattedPrice);
+ }
}
} catch (BusinessException e) {
--
Gitblit v1.9.3