From 65068e1ac598872a4a7ab5b80934f21f35a2f62b Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 10 Jun 2026 22:43:13 +0800
Subject: [PATCH] fix(gateApi): 修复网格交易订单取消时的日志记录问题

---
 src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java |   25 ++++++++++++++-----------
 1 files changed, 14 insertions(+), 11 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 acc0ce9..9803a54 100644
--- a/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
+++ b/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
@@ -14,11 +14,7 @@
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 import com.xcong.excoin.modules.gateApi.wsHandler.handler.CandlestickChannelHandler;
 import com.xcong.excoin.modules.gateApi.wsHandler.handler.PositionClosesChannelHandler;
@@ -458,6 +454,8 @@
                     longPositionSize = size;
                     longEntryPrice = entryPrice;
                 } else {
+
+                    log.info("[Gate-0]多仓: {}", shortBaseEntryPrice);
                     longActive = false;
                     longPositionSize = BigDecimal.ZERO;
                     longEntryPrice = BigDecimal.ZERO;
@@ -468,6 +466,8 @@
                     shortPositionSize = size.abs();
                     shortEntryPrice = entryPrice;
                 } else {
+
+                    log.info("[Gate-0]空仓: {}", shortBaseEntryPrice);
                     shortActive = false;
                     shortPositionSize = BigDecimal.ZERO;
                     shortEntryPrice = BigDecimal.ZERO;
@@ -741,7 +741,9 @@
         longPriceQueue.sort(BigDecimal::compareTo);
         log.info("[Gate] 多队列:{}", longPriceQueue);
         totalShortPriceQueue.sort((a, b) -> b.compareTo(a));
+        log.info("[Gate] 队列从大到小:{}", totalShortPriceQueue);
         totalLongPriceQueue.sort(BigDecimal::compareTo);
+        log.info("[Gate] 队列从小到大:{}", totalLongPriceQueue);
     }
 
     /**
@@ -852,16 +854,17 @@
         log.info("[Gate] 网格元素列表已构建, 共{}个元素 (空仓:{} 位置:0 多仓:{})", elements.size(), shortSize, longSize);
     }
 
+
     private void processShortGrid(BigDecimal currentPrice) {
         BigDecimal matched = BigDecimal.ZERO;
         synchronized (totalLongPriceQueue) {
             for (BigDecimal p : totalLongPriceQueue) {
                 if (p.compareTo(currentPrice) >= 0) {
                     matched =  p;
-                } else {
                     break;
                 }
             }
+            log.info("[Gate-1] 多仓仓位归零 空仓队列触发, 匹配:{},当前价:{}", matched, currentPrice);
             if (BigDecimal.ZERO.compareTo( matched) == 0) {
                 return;
             }
@@ -873,7 +876,7 @@
                     GridElement newEntryGrid = GridElement.findById(upId);
 
                     if (newEntryGrid != null) {
-                        log.info("[Gate] 多仓仓位归零 空仓队列触发, 匹配:{},当前价:{}", matched, currentPrice);
+                        log.info("[Gate-2] 多仓仓位归零 空仓队列触发, 匹配:{},当前价:{}", matched, currentPrice);
                         if (!newEntryGrid.isHasLongOrder()) {
                             BigDecimal triggerPrice = newEntryGrid.getGridPrice();
                             String size = config.getBaseQuantity();
@@ -888,8 +891,8 @@
                         GridElement cancelGridElement = GridElement.findById(newEntryGrid.getUpId());
                         if (cancelGridElement != null && cancelGridElement.isHasLongOrder()) {
                             String longOrderId = cancelGridElement.getLongOrderId();
-                            longEntryTraderIdParam(cancelGridElement, null, false);
                             executor.cancelConditionalOrder(longOrderId, oid -> {
+                                longEntryTraderIdParam(cancelGridElement, null, false);
                                 log.info("[Gate] 多仓仓位归零, 取消gridId:{}的多单,{}", cancelGridElement.getId(),longOrderId);
                             });
                         }
@@ -906,10 +909,10 @@
             for (BigDecimal p : totalShortPriceQueue) {
                 if (p.compareTo(currentPrice) <= 0) {
                     matched = p;
-                } else {
                     break;
                 }
             }
+            log.info("[Gate-3] 空仓仓位归零 多仓队列触发, 匹配:{},当前价:{}", matched, currentPrice);
             if (BigDecimal.ZERO.compareTo( matched) == 0) {
                 return;
             }
@@ -921,7 +924,7 @@
                     GridElement newEntryGrid = GridElement.findById(downId);
 
                     if (newEntryGrid != null) {
-                        log.info("[Gate] 空仓仓位归零 多仓队列触发, 匹配:{},当前价:{}", matched, currentPrice);
+                        log.info("[Gate-4] 空仓仓位归零 多仓队列触发, 匹配:{},当前价:{}", matched, currentPrice);
                         if (!newEntryGrid.isHasShortOrder()){
                             BigDecimal triggerPrice = newEntryGrid.getGridPrice();
                             String size = config.getBaseQuantity();
@@ -938,8 +941,8 @@
                          */
                         if (cancelGridElement != null && cancelGridElement.isHasShortOrder()) {
                             String shortOrderId = cancelGridElement.getShortOrderId();
-                            shortEntryTraderIdParam(cancelGridElement, null, false);
                             executor.cancelConditionalOrder(shortOrderId, oid -> {
+                                shortEntryTraderIdParam(cancelGridElement, null, false);
                                 log.info("[Gate] 空仓仓位归零, 取消gridId:{}的多单{}", cancelGridElement.getId(),shortOrderId);
                             });
                         }

--
Gitblit v1.9.1