From 45a8a42e3eec8feca80dfdc6b3a433c22c9012bc Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 20 May 2026 09:57:34 +0800
Subject: [PATCH] fix(trade): 修复条件单取消逻辑并添加回调支持
---
src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java | 4 ++--
src/main/java/com/xcong/excoin/modules/gateApi/GateTradeExecutor.java | 5 ++++-
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java b/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
index 88a5545..b746605 100644
--- a/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
+++ b/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
@@ -421,7 +421,7 @@
List<GridElement> allShortOrders = GridElement.findAllShortOrders(longEntryPrice);
if (CollUtil.isNotEmpty(allShortOrders)){
for (GridElement e : allShortOrders) {
- executor.cancelOrder(
+ executor.cancelConditionalOrder(
e.getShortOrderId(),
orderId -> {
shortEntryTraderIdParam(
@@ -454,7 +454,7 @@
List<GridElement> allLongOrders = GridElement.findAllLongOrders(shortEntryPrice);
if (CollUtil.isNotEmpty(allLongOrders)){
for (GridElement e : allLongOrders) {
- executor.cancelOrder(
+ executor.cancelConditionalOrder(
e.getLongOrderId(),
orderId -> {
shortEntryTraderIdParam(
diff --git a/src/main/java/com/xcong/excoin/modules/gateApi/GateTradeExecutor.java b/src/main/java/com/xcong/excoin/modules/gateApi/GateTradeExecutor.java
index 9984cf9..8e500a0 100644
--- a/src/main/java/com/xcong/excoin/modules/gateApi/GateTradeExecutor.java
+++ b/src/main/java/com/xcong/excoin/modules/gateApi/GateTradeExecutor.java
@@ -338,7 +338,7 @@
*
* @param orderId 条件单 ID,为 null 时跳过
*/
- public void cancelConditionalOrder(String orderId) {
+ public void cancelConditionalOrder(String orderId,Consumer<String> onSuccess) {
if (orderId == null) {
return;
}
@@ -346,6 +346,9 @@
try {
futuresApi.cancelPriceTriggeredOrder(SETTLE, Long.parseLong(orderId));
log.info("[TradeExec] 条件单已取消, id:{}", orderId);
+ if (onSuccess != null) {
+ onSuccess.accept(orderId);
+ }
} catch (Exception e) {
log.warn("[TradeExec] 取消条件单失败(可能已触发), id:{}", orderId);
}
--
Gitblit v1.9.1