设备列表 视频流服务器
This commit is contained in:
@@ -140,3 +140,62 @@ ALTER TABLE sys_user MODIFY COLUMN phone_number varchar(11) DEFAULT NULL COMMENT
|
||||
|
||||
-- 步骤 2:邮箱列默认值改为 NULL
|
||||
ALTER TABLE sys_user MODIFY COLUMN email varchar(50) DEFAULT NULL COMMENT '用户邮箱';
|
||||
|
||||
|
||||
-- ----------------------------------------------------------------------------
|
||||
-- 补丁 4:为 bm_device 增加「设备级低电告警阈值」两列
|
||||
-- (hood_battery_threshold / ring_battery_threshold)
|
||||
-- ----------------------------------------------------------------------------
|
||||
-- 背景:
|
||||
-- 低电告警阈值原先是**全局配置**(application.yml 的 device.mqtt.low-battery-threshold=20),
|
||||
-- 全平台共用一个数。但 PRD Q9「头套/脚环低电阈值」至今未决,且不同型号设备的电池容量与
|
||||
-- 放电特性并不相同,单一全局值无法覆盖,故改为按设备配置。
|
||||
--
|
||||
-- ★ 口径说明(重要)
|
||||
-- 1) 本列 = **触发阈值**;**恢复阈值不落库**,由应用层派生:
|
||||
-- recover = trigger + (low-battery-recover-threshold - low-battery-threshold)
|
||||
-- 工程默认即 20 / 25 ⇒ 回差 5。不把恢复阈值也暴露给用户,
|
||||
-- 是为了从根上杜绝「恢复 ≤ 触发」这种会让设备卡死在告警态、再也恢复不了的配置。
|
||||
-- 2) 取值语义:电量 ≤ 该值即触发低电告警。**0 表示不触发**(等同对该设备关闭低电保护),
|
||||
-- 因为「电量 ≤ 0」实际不可能成立。同一取值**同时**作用于「低电拒绝遮盖指令」的拦截判定——
|
||||
-- 两者刻意共用同一阈值,避免出现「已经告警了却还能遮盖」的口径撕裂。
|
||||
-- 3) 头套与脚环**各自独立**取值,互不影响。
|
||||
--
|
||||
-- ★ 为什么是 NOT NULL DEFAULT 20,而不是可空(NULL = 未配置)
|
||||
-- a) ALTER 时一次性把存量行回填为 20,与改造前的全局行为**逐字一致**,升级零行为变化;
|
||||
-- b) 前端列表要按行判定「电量是否低于阈值并标红」(PRD §7.1),若列可空,
|
||||
-- 前端还得再知道一次全局默认值 —— 又变成「两处真相」;后端也得额外输出 effective 字段
|
||||
-- 并遍历列表回填。NOT NULL 直接把这个问题消灭在 DDL 层;
|
||||
-- c) 与本表 status / hood_connected / signal_level 等列的既有风格一致(均 NOT NULL 带默认值)。
|
||||
-- 注:新增设备时若请求体不带该字段,MP 全局 insertStrategy=NOT_NULL 会**省略该列**,
|
||||
-- 此时生效的正是本处的列默认值 20,符合预期。
|
||||
--
|
||||
-- ★ 执行前必读 · 前置检查(确认列尚不存在,避免重复执行报 1060)
|
||||
-- SELECT column_name, column_type, is_nullable, column_default
|
||||
-- FROM information_schema.columns
|
||||
-- WHERE table_schema = 'bird_monitoring' AND table_name = 'bm_device'
|
||||
-- AND column_name IN ('hood_battery_threshold', 'ring_battery_threshold');
|
||||
-- → 期望返回 0 行。
|
||||
--
|
||||
-- ★ 重复执行本文件时的预期报错(可忽略)
|
||||
-- ERROR 1060 (42S21): Duplicate column name 'hood_battery_threshold'
|
||||
--
|
||||
-- ★ 影响面提示
|
||||
-- 两列为 tinyint(有符号,范围 -128~127),取值域由应用层 @Min(0)/@Max(100) 校验;
|
||||
-- 本补丁只做「加列 + 回填默认值」,不改动任何既有业务数据。
|
||||
--
|
||||
-- ★ 回滚
|
||||
-- ALTER TABLE bm_device
|
||||
-- DROP COLUMN hood_battery_threshold,
|
||||
-- DROP COLUMN ring_battery_threshold;
|
||||
-- ----------------------------------------------------------------------------
|
||||
|
||||
-- 步骤 1:头套低电告警阈值(存量行回填 20,与改造前的全局默认一致)
|
||||
ALTER TABLE bm_device
|
||||
ADD COLUMN hood_battery_threshold tinyint NOT NULL DEFAULT 20
|
||||
COMMENT '头套低电告警阈值0-100(≤该值触发,0=不触发)';
|
||||
|
||||
-- 步骤 2:脚环低电告警阈值(存量行同样回填 20)
|
||||
ALTER TABLE bm_device
|
||||
ADD COLUMN ring_battery_threshold tinyint NOT NULL DEFAULT 20
|
||||
COMMENT '脚环低电告警阈值0-100(≤该值触发,0=不触发)';
|
||||
|
||||
Reference in New Issue
Block a user