From 5e57de9b12ee136e45ce5754c7fe2e7eb12af05a Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Fri, 12 Jun 2026 18:35:45 +0800
Subject: [PATCH] 1
---
trading-order-service/src/main/java/com/yami/trading/service/exchange/job/ExchangeApplyOrderHandleJob.java | 21 +++++++++++++++++----
1 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/exchange/job/ExchangeApplyOrderHandleJob.java b/trading-order-service/src/main/java/com/yami/trading/service/exchange/job/ExchangeApplyOrderHandleJob.java
index c1264c3..7a50715 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/exchange/job/ExchangeApplyOrderHandleJob.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/exchange/job/ExchangeApplyOrderHandleJob.java
@@ -6,9 +6,9 @@
import com.yami.trading.bean.purchasing.dto.ExchangeLock;
import com.yami.trading.common.exception.YamiShopBindException;
import com.yami.trading.common.util.ThreadUtils;
-import com.yami.trading.service.MarketOpenChecker;
import com.yami.trading.service.data.DataService;
import com.yami.trading.service.exchange.ExchangeApplyOrderService;
+import com.yami.trading.service.item.ItemPreMarketService;
import com.yami.trading.service.item.ItemService;
import com.yami.trading.service.syspara.SysparaService;
import lombok.extern.slf4j.Slf4j;
@@ -31,6 +31,8 @@
@Autowired
ItemService itemService;
@Autowired
+ ItemPreMarketService itemPreMarketService;
+ @Autowired
SysparaService sysparaService;
public void start() {
@@ -51,14 +53,25 @@
if (bySymbol == null) {
throw new YamiShopBindException("当前币对不存在");
}
- boolean isOpen = MarketOpenChecker.isMarketOpenByItemCloseType(bySymbol.getOpenCloseType());
+ boolean isOpen = itemService.isOpen(order.getSymbol());
if (!isOpen) {
continue;
}
Realtime realtime = this.dataService.realtime(order.getSymbol()).get(0);
+ Double fillPrice = realtime.getClose();
+ boolean preMarketActive = itemPreMarketService != null
+ && itemPreMarketService.isPreMarketTradingActive(order.getSymbol());
+ if (preMarketActive) {
+ Double prePrice = itemPreMarketService.getActivePreMarketPrice(order.getSymbol());
+ if (prePrice != null) {
+ fillPrice = prePrice;
+ }
+ }
// 限价单
if (ExchangeApplyOrder.ORDER_PRICE_TYPE_LIMIT.equals(order.getOrderPriceType())) {
- if (ExchangeApplyOrder.OFFSET_OPEN.equals(order.getOffset())) {
+ if (preMarketActive) {
+ this.handle(order, fillPrice);
+ } else if (ExchangeApplyOrder.OFFSET_OPEN.equals(order.getOffset())) {
if (realtime.getClose() <= order.getPrice()) {
this.handle(order, realtime.getClose());
}
@@ -70,7 +83,7 @@
}
// 市价单
else {
- this.handle(order, realtime.getClose());
+ this.handle(order, fillPrice);
}
}
} catch (Exception e) {
--
Gitblit v1.9.3