From ca21152eec5d609adc0312ca8b67c4f6ac98e838 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Sat, 10 Oct 2026 10:18:47 +0800
Subject: [PATCH] ``` fix(gateApi): 修复止损追单时持仓计算时序竞态问题

---
 src/main/java/com/xcong/excoin/modules/gateApi/GateConfigPersistenceService.java |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/gateApi/GateConfigPersistenceService.java b/src/main/java/com/xcong/excoin/modules/gateApi/GateConfigPersistenceService.java
index 50c8140..78e402e 100644
--- a/src/main/java/com/xcong/excoin/modules/gateApi/GateConfigPersistenceService.java
+++ b/src/main/java/com/xcong/excoin/modules/gateApi/GateConfigPersistenceService.java
@@ -112,9 +112,13 @@
                 .maxPositionPerSide(dto.getMaxPositionPerSide())
                 .addPositionStartThreshold(dto.getAddPositionStartThreshold() >= 0 ? dto.getAddPositionStartThreshold() : 1)
                 .placeExcessTakeProfit(normalizeTakeProfitMode(dto.getPlaceExcessTakeProfit()))
-                .customStopLossEnabled(nvl(dto.getCustomStopLossEnabled(), false))
-                .longCustomStopLossPrice(dto.getLongCustomStopLossPrice())
-                .shortCustomStopLossPrice(dto.getShortCustomStopLossPrice())
+                .dualStopLossEnabled(nvl(dto.getDualStopLossEnabled(), false))
+                .longStopLossPrice(dto.getLongStopLossPrice())
+                .shortStopLossPrice(dto.getShortStopLossPrice())
+                .tpTriggerOppositeAddEnabled(nvl(dto.getTpTriggerOppositeAddEnabled(), false))
+                .tpTriggerOppositeAddQuantity(dto.getTpTriggerOppositeAddQuantity() != null && dto.getTpTriggerOppositeAddQuantity() > 0 ? dto.getTpTriggerOppositeAddQuantity() : 0)
+                .baseTakeProfitPerGrid(dto.getBaseTakeProfitPerGrid() != null && dto.getBaseTakeProfitPerGrid().compareTo(BigDecimal.ZERO) > 0 ? dto.getBaseTakeProfitPerGrid() : BigDecimal.ZERO)
+                .baseTakeProfitGridCount(dto.getBaseTakeProfitGridCount() != null && dto.getBaseTakeProfitGridCount() > 0 ? dto.getBaseTakeProfitGridCount() : 0)
                 .build();
     }
 
@@ -153,6 +157,8 @@
             return GateConfig.EXCESS_TP_OFF;
         }
         switch (raw.trim()) {
+            case "off":
+                return GateConfig.EXCESS_TP_OFF;
             case "true":
             case "concentrated":
                 return GateConfig.EXCESS_TP_CONCENTRATED;

--
Gitblit v1.9.1