From bf6c08e0b9f18cca48cc616729387e5885d067f2 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Sun, 02 Mar 2025 18:08:19 +0800
Subject: [PATCH] 项目提交

---
 trading-order-service/src/main/java/com/yami/trading/service/contract/ContractOrderCalculationServiceImpl.java |   33 ++++++++++++++++++++++++++-------
 1 files changed, 26 insertions(+), 7 deletions(-)

diff --git a/trading-order-service/src/main/java/com/yami/trading/service/contract/ContractOrderCalculationServiceImpl.java b/trading-order-service/src/main/java/com/yami/trading/service/contract/ContractOrderCalculationServiceImpl.java
index d7bbba7..c8ee441 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/contract/ContractOrderCalculationServiceImpl.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/contract/ContractOrderCalculationServiceImpl.java
@@ -263,17 +263,36 @@
             this.contractOrderService.updateByIdBuffer(order);
 
 //            if (profit.add(wallet.getMoney()).compareTo(BigDecimal.ZERO) <= 0) {
-            if (currentPrice.toString().compareTo(order.getForceClosePrice()) <= 0) {//达到强平价
-                /**
-                 * 触发全仓强平
-                 */
-                this.contractOrderService.allClose(order.getPartyId());
+            //判断买涨还是买跌"buy":买(多) "sell":卖(空)
+            if(order.getDirection().equals("buy")){
+                if (currentPrice.toString().compareTo(order.getForceClosePrice()) <= 0) {//达到强平价
+                    /**
+                     * 触发全仓强平
+                     */
+                    this.contractOrderService.allClose(order.getPartyId());
 
+                }
+            }else{
+                if (currentPrice.toString().compareTo(order.getForceClosePrice())>= 0) {//达到强平价
+                    /**
+                     * 触发全仓强平
+                     */
+                    this.contractOrderService.allClose(order.getPartyId());
+
+                }
             }
+
         } else {
-            if (currentPrice.toString().compareTo(order.getForceClosePrice()) <= 0) {//达到强平价
-                this.contractOrderService.saveClose(order.getPartyId().toString(), order.getOrderNo(),"强平");
+            if(order.getDirection().equals("buy")){
+                if (currentPrice.toString().compareTo(order.getForceClosePrice()) <= 0) {//达到强平价
+                    this.contractOrderService.saveClose(order.getPartyId().toString(), order.getOrderNo(),"强平");
+                }
+            }else{
+                if (currentPrice.toString().compareTo(order.getForceClosePrice()) >= 0) {//达到强平价
+                    this.contractOrderService.saveClose(order.getPartyId().toString(), order.getOrderNo(),"强平");
+                }
             }
+
         }
 
     }

--
Gitblit v1.9.3