From befbf57e4112d07003bff18102f556a1e5a154de Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Wed, 22 Apr 2026 10:53:37 +0800
Subject: [PATCH] 1

---
 trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiContractOrderController.java |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiContractOrderController.java b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiContractOrderController.java
index 898fd8a..66aa96b 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiContractOrderController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiContractOrderController.java
@@ -82,6 +82,10 @@
     @RequestMapping(action + "close.action")
     public Result<String> close(@RequestParam String order_no) {
         try {
+            ContractOrder order = contractOrderService.findByOrderNo(order_no);
+            if (order != null && ContractOrder.ORDER_FOLLOW == order.getFollow()) {
+                return Result.failed("跟单订单不支持手动平仓,请先停止跟单");
+            }
             // 建议使用线程池 TODO
             CloseDelayThread lockDelayThread = new CloseDelayThread(SecurityUtils.getCurrentUserId(), order_no, this.contractOrderService, false);
             Thread t = new Thread(lockDelayThread);
@@ -100,6 +104,15 @@
     @RequestMapping(action + "closeAll.action")
     public Result<String> closeAll() {
         try {
+            String partyId = SecurityUtils.getCurrentUserId();
+            List<ContractOrder> submittedOrders = contractOrderService.findSubmitted(partyId);
+            if (submittedOrders != null) {
+                for (ContractOrder one : submittedOrders) {
+                    if (ContractOrder.ORDER_FOLLOW == one.getFollow()) {
+                        return Result.failed("包含跟单订单,不能手动一键平仓,请先停止跟单");
+                    }
+                }
+            }
             CloseDelayThread lockDelayThread = new CloseDelayThread(SecurityUtils.getCurrentUserId(), "", this.contractOrderService, true);
             Thread t = new Thread(lockDelayThread);
             t.start();

--
Gitblit v1.9.3