fix(video): P0 修复 @TableName 映射错误、字段命名、补缺列与 exist=false

@TableName 修正:
- CommonGBChannel: "video_device_channel" → "video_common_gb_channel"
- DeviceChannel: 显式加 @TableName("video_device_channel")
- PlatformChannel: 补充 @TableName("video_platform_channel")
  避免因继承 CommonGBChannel 而写入错误表

字段命名规范化(修复驼峰转 snake_case 错位):
- CommonGBChannel.recordPLan → recordPlanId(对应 record_plan_id)
- MediaServer.httpSSlPort / flvSSLPort / wsFlvSSLPort
  → httpSslPort / flvSslPort / wsFlvSslPort
  (原命名 L 大写/双大写导致转 snake 变 http_s_sl_port)
- 同步更新 Mapper SQL 中的 #{xxx} 引用和 ZLM/ABL 节点服务调用点

@TableField(exist=false) 标注(JOIN 显示字段/业务计算值/内存对象):
- DeviceChannel: parentDeviceId、parentName、ptzTypeText
- DeviceAlarm: deviceName、alarmPriorityDescription、alarmMethodDescription、
  alarmTypeDescription
- AiAlert: cameraName、roiName
- Device: sipTransactionInfo
- MobilePosition: channelDeviceId
- StreamPush: uniqueKey

补齐 SQL 缺失列(需持久化的业务状态字段):
- video_device: channel_count
- video_platform: channel_count / catalog_subscribe / alarm_subscribe
  / mobile_position_subscribe
- video_media_server: status / last_keepalive_time
- video_cloud_record: reserve
- video_device_mobile_position.channel_id: varchar(50) → bigint
  (DO 字段是 Long,作为外键引用 video_device_channel.id)

补齐 DO 缺失字段:
- AiAlgorithm: 新增 globalParams(对应 SQL global_params)
- StreamPush: 新增 status(对应 SQL status)

编译通过(mvn compile BUILD SUCCESS)。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
lzh
2026-04-21 12:07:47 +08:00
parent 43becf998c
commit 1698c71d84
16 changed files with 77 additions and 38 deletions

View File

@@ -72,6 +72,7 @@ CREATE TABLE `video_device` (
`heart_beat_interval` int NULL COMMENT '心跳间隔',
`heart_beat_count` int NULL COMMENT '心跳失败次数',
`position_capability` int NULL COMMENT '定位能力标识',
`channel_count` int NOT NULL DEFAULT 0 COMMENT '通道数量',
`broadcast_push_after_ack` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'ACK后是否自动推流',
`server_id` varchar(50) NULL COMMENT '所属信令服务器ID',
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
@@ -219,7 +220,7 @@ DROP TABLE IF EXISTS `video_device_mobile_position`;
CREATE TABLE `video_device_mobile_position` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`device_id` varchar(50) NOT NULL COMMENT '设备ID',
`channel_id` varchar(50) NOT NULL COMMENT '通道ID',
`channel_id` bigint NULL COMMENT '通道表主键FK→video_device_channel.id',
`device_name` varchar(255) NULL COMMENT '设备名称',
`time` varchar(50) NULL COMMENT '上报时间',
`longitude` double NULL COMMENT '经度',
@@ -376,6 +377,10 @@ CREATE TABLE `video_platform` (
`ptz` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否支持PTZ',
`rtcp` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否开启RTCP',
`status` tinyint(1) NOT NULL DEFAULT 0 COMMENT '注册状态',
`channel_count` int NOT NULL DEFAULT 0 COMMENT '已同步通道数量',
`catalog_subscribe` tinyint(1) NOT NULL DEFAULT 0 COMMENT '已被订阅目录信息',
`alarm_subscribe` tinyint(1) NOT NULL DEFAULT 0 COMMENT '已被订阅报警信息',
`mobile_position_subscribe` tinyint(1) NOT NULL DEFAULT 0 COMMENT '已被订阅移动位置信息',
`catalog_group` int NULL COMMENT '目录分组方式',
`register_way` int NULL COMMENT '注册方式',
`secrecy` int NULL COMMENT '保密级别',
@@ -527,6 +532,8 @@ CREATE TABLE `video_media_server` (
`record_day` int NOT NULL DEFAULT 7 COMMENT '录像保留天数',
`transcode_suffix` varchar(255) NULL COMMENT '转码指令后缀',
`server_id` varchar(50) NULL COMMENT '对应信令服务器ID',
`status` tinyint(1) NOT NULL DEFAULT 0 COMMENT '媒体服务器在线状态0离线,1在线',
`last_keepalive_time` varchar(50) NULL COMMENT '最近心跳时间',
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
@@ -621,6 +628,7 @@ CREATE TABLE `video_cloud_record` (
`folder` varchar(500) NULL COMMENT '目录',
`file_path` varchar(500) NULL COMMENT '完整路径',
`collect` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否收藏',
`reserve` tinyint(1) NULL DEFAULT 0 COMMENT '是否保留(保留的文件不自动清除)',
`file_size` bigint NULL COMMENT '文件大小',
`time_len` double NULL COMMENT '时长',
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',