From 5c7fa04ebbe54d7bf5050c7f02d3dfadd0fbaf7d Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 19 May 2026 10:40:14 +0800
Subject: [PATCH] feat(ws): 添加订单更新ID日志记录功能
---
src/main/java/com/xcong/excoin/modules/gateApi/GateTradeExecutor.java | 17 ++++++++++++-----
1 files changed, 12 insertions(+), 5 deletions(-)
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 9f155e6..991a260 100644
--- a/src/main/java/com/xcong/excoin/modules/gateApi/GateTradeExecutor.java
+++ b/src/main/java/com/xcong/excoin/modules/gateApi/GateTradeExecutor.java
@@ -108,7 +108,7 @@
* @param onSuccess 成交成功回调(可为 null)
* @param onFailure 成交失败回调(可为 null)
*/
- public void openLong(String quantity, Runnable onSuccess, Runnable onFailure) {
+ public void openLong(String quantity, Consumer<String> onSuccess, Runnable onFailure) {
openPosition(quantity, "t-grid-long", "开多", onSuccess, onFailure);
}
@@ -119,7 +119,7 @@
* @param onSuccess 成交成功回调(可为 null)
* @param onFailure 成交失败回调(可为 null)
*/
- public void openShort(String quantity, Runnable onSuccess, Runnable onFailure) {
+ public void openShort(String quantity, Consumer<String> onSuccess, Runnable onFailure) {
openPosition(quantity, "t-grid-short", "开空", onSuccess, onFailure);
}
@@ -132,7 +132,7 @@
* @param onSuccess 成功回调
* @param onFailure 失败回调
*/
- private void openPosition(String size, String text, String label, Runnable onSuccess, Runnable onFailure) {
+ private void openPosition(String size, String text, String label, Consumer<String> onSuccess, Runnable onFailure) {
executor.execute(() -> {
try {
FuturesOrder order = new FuturesOrder();
@@ -143,8 +143,9 @@
order.setText(text);
FuturesOrder result = futuresApi.createFuturesOrder(SETTLE, order, null);
log.info("[TradeExec] {}成功, 价格:{}, id:{}", label, result.getFillPrice(), result.getId());
+ String orderId = String.valueOf(result.getId());
if (onSuccess != null) {
- onSuccess.run();
+ onSuccess.accept(orderId);
}
} catch (Exception e) {
log.error("[TradeExec] {}失败", label, e);
@@ -175,13 +176,18 @@
public void placeTakeProfit(BigDecimal triggerPrice,
FuturesPriceTrigger.RuleEnum rule,
String orderType,
- String size) {
+ String size,
+ Consumer<String> onSuccess) {
executor.execute(() -> {
FuturesPriceTriggeredOrder order = buildTriggeredOrder(triggerPrice, rule, orderType, size);
try {
TriggerOrderResponse response = futuresApi.createPriceTriggeredOrder(SETTLE, order);
log.info("[TradeExec] 止盈单已创建, 触发价:{}, 类型:{}, size:{}, id:{}",
triggerPrice, orderType, size, response.getId());
+ String orderId = String.valueOf(response.getId());
+ if (onSuccess != null) {
+ onSuccess.accept(orderId);
+ }
} catch (Exception e) {
log.error("[TradeExec] 止盈单创建失败, 触发价:{}, size:{}, 立即市价止盈", triggerPrice, size, e);
marketClose(size);
@@ -317,6 +323,7 @@
TriggerOrderResponse response = futuresApi.createPriceTriggeredOrder(SETTLE, order);
String orderId = String.valueOf(response.getId());
+ String orderIdStr = response.getIdString();
log.info("[TradeExec] 条件开仓单已创建, trigger:{}, rule:{}, size:{}, id:{}",
triggerPrice, rule, size, orderId);
if (onSuccess != null) {
--
Gitblit v1.9.1