From 8f3d68cfbd98254f92d5c83be9ee52764936377f Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 22 Sep 2026 17:47:06 +0800
Subject: [PATCH] feat(station): 扩展止盈模式配置功能

---
 src/main/resources/db/station-schema.sql |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/src/main/resources/db/station-schema.sql b/src/main/resources/db/station-schema.sql
index 537b242..39280f9 100644
--- a/src/main/resources/db/station-schema.sql
+++ b/src/main/resources/db/station-schema.sql
@@ -21,7 +21,7 @@
     `add_position_quantity`       INT(11)      DEFAULT 0  COMMENT '加仓数量',
     `max_position_per_side`       INT(11)      DEFAULT 0  COMMENT '单边最大仓位',
     `add_position_start_threshold` INT(11)     DEFAULT 0  COMMENT '加仓启动阈值',
-    `place_excess_take_profit`    TINYINT(1)   DEFAULT 0  COMMENT '超额止盈开关',
+    `place_excess_take_profit`    VARCHAR(16)  DEFAULT 'off' COMMENT '止盈挂单模式:off / concentrated / dispersed',
     `price_drive_enabled`        TINYINT(1)   DEFAULT 1  COMMENT '价格驱动开关',
     `dual_stop_loss_enabled`     TINYINT(1)   DEFAULT 0  COMMENT '双开止损触发开关',
     `long_stop_loss_price`       VARCHAR(32)  DEFAULT NULL COMMENT '多头止损触发价',
@@ -87,3 +87,13 @@
     ADD COLUMN `dual_stop_loss_enabled` TINYINT(1)  DEFAULT 0    COMMENT '双开止损触发开关' AFTER `price_drive_enabled`,
     ADD COLUMN `long_stop_loss_price`   VARCHAR(32) DEFAULT NULL COMMENT '多头止损触发价' AFTER `dual_stop_loss_enabled`,
     ADD COLUMN `short_stop_loss_price`  VARCHAR(32) DEFAULT NULL COMMENT '空头止损触发价' AFTER `long_stop_loss_price`;
+
+-- ============================================================
+-- 升级脚本:止盈挂单模式从布尔开关升级为三态字符串(2026-09 新增)
+-- off=关闭 / concentrated=集中止盈 / dispersed=分散止盈
+-- ============================================================
+ALTER TABLE `strategy_status`
+    MODIFY COLUMN `place_excess_take_profit` VARCHAR(16) DEFAULT 'off' COMMENT '止盈挂单模式:off / concentrated / dispersed';
+-- 旧数据迁移:1(开启)→concentrated,0(关闭)→off
+UPDATE `strategy_status` SET `place_excess_take_profit` = 'concentrated' WHERE `place_excess_take_profit` = '1';
+UPDATE `strategy_status` SET `place_excess_take_profit` = 'off' WHERE `place_excess_take_profit` = '0';

--
Gitblit v1.9.1