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 |   18 +++++++++++++++++-
 1 files changed, 17 insertions(+), 1 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 c3dce79..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
@@ -26,6 +26,7 @@
 import javax.servlet.http.HttpServletRequest;
 import java.io.IOException;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.*;
 
 /**
@@ -81,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);
@@ -99,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();
@@ -133,7 +147,9 @@
             // 此处返回的 closeTime 是时间戳类型
             data = this.contractOrderService.getPaged(page_no, 10, partyId, symbol, type, startTime, endTime, symbolType);
         }
-
+        if(ObjectUtils.isEmpty(data)){
+            return Result.ok(new ArrayList<>());
+        }
         String symbolsStr = "";
         Set<String> symbols = new HashSet<>();
         for (int i = 0; i < data.size(); i++) {

--
Gitblit v1.9.3