Administrator
2026-06-10 305c085fd92fe752709db81edb1d8f46e8638757
fix(gateApi): 修复网格交易止损触发和日志记录问题

- 添加 tradeId 非空检查防止止损订单误触发
- 修复日志中 gridId 输出错误的问题
- 确保只有在有效交易 ID 存在时才处理止损逻辑
1 files modified
8 ■■■■ changed files
src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java 8 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
@@ -543,12 +543,12 @@
        }
        GridElement longStopLossElem = GridElement.findByLongStopLossOrderId(orderId);
        if (longStopLossElem != null && longPositionSize.compareTo(BigDecimal.ZERO) > 0) {
        if (longStopLossElem != null && longPositionSize.compareTo(BigDecimal.ZERO) > 0 && StrUtil.isNotEmpty(tradeId) && !tradeId.equals("0")) {
            handleLongStopLossTriggered(longStopLossElem);
            return;
        }
        GridElement shortStopLossElem = GridElement.findByShortStopLossOrderId(orderId);
        if (shortStopLossElem != null && shortPositionSize.compareTo(BigDecimal.ZERO) > 0) {
        if (shortStopLossElem != null && shortPositionSize.compareTo(BigDecimal.ZERO) > 0 && StrUtil.isNotEmpty(tradeId) && !tradeId.equals("0")) {
            handleShortStopLossTriggered(shortStopLossElem);
            return;
        }
@@ -875,7 +875,7 @@
                    if (cancelGridElement != null && cancelGridElement.isHasLongOrder()) {
                        longEntryTraderIdParam(cancelGridElement, null, false);
                        executor.cancelConditionalOrder(cancelGridElement.getLongOrderId(), oid -> {
                            log.info("[Gate] 多仓仓位归零, 取消gridId:{}的多单", cancelGridElement);
                            log.info("[Gate] 多仓仓位归零, 取消gridId:{}的多单", cancelGridElement.getId());
                        });
                    }
                }
@@ -924,7 +924,7 @@
                    if (cancelGridElement != null && cancelGridElement.isHasShortOrder()) {
                        shortEntryTraderIdParam(cancelGridElement, null, false);
                        executor.cancelConditionalOrder(cancelGridElement.getShortOrderId(), oid -> {
                            log.info("[Gate] 空仓仓位归零, 取消gridId:{}的多单", cancelGridElement);
                            log.info("[Gate] 空仓仓位归零, 取消gridId:{}的多单", cancelGridElement.getId());
                        });
                    }