refactor(device): 重构设备信息模块,按面板拆分数据存储和接口

将原 SnDeviceSystemInfo 单一实体拆分为基本信息、硬件、网络、安全、其他信息五个独立子表和服务,重构 DeviceController 和 MobileController 接口以支持分面板查询和上传
This commit is contained in:
TongTongStudio
2026-08-05 02:09:38 +08:00
parent 537644ab2e
commit 3608c205b9
39 changed files with 2447 additions and 164 deletions

77
sql/sn_system_info.sql Normal file
View File

@@ -0,0 +1,77 @@
-- =============================================================================
-- 设备基本信息表sys_sn_system_info
-- 说明:仅存放设备【基本信息】面板数据;
-- 硬件信息 / 网络信息 / 安全信息 / 其他信息 已拆分至下列独立表。
-- 脚本遵循项目规范:不直连库,由 DBA 执行。
--
-- 重要:部署环境中若已存在【旧结构】的 sys_sn_system_info列名为 sn_model、
-- sn_brand 等CREATE TABLE IF NOT EXISTS 不会重建,会导致实体查询报
-- "Unknown column 'device_name'"。因此此处先 DROP 再 CREATE确保表结构与
-- 实体SnDeviceSystemInfo完全一致。
-- 注意DROP 会清空该表历史数据,设备数据可由端上重新上报补齐。
-- =============================================================================
DROP TABLE IF EXISTS `sys_sn_system_info`;
CREATE TABLE `sys_sn_system_info`
(
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`serialno` VARCHAR(64) NOT NULL COMMENT '设备序列号(关联 sys_sn.serialno',
-- ===================== 基本信息面板 =====================
`device_name` VARCHAR(128) DEFAULT NULL COMMENT '设备名称',
`device_brand` VARCHAR(64) DEFAULT NULL COMMENT '设备品牌',
`device_model` VARCHAR(64) DEFAULT NULL COMMENT '设备型号',
`device_board` VARCHAR(64) DEFAULT NULL COMMENT '主板名称',
`device_manufacturer` VARCHAR(64) DEFAULT NULL COMMENT '制造商',
`hardware` VARCHAR(64) DEFAULT NULL COMMENT '硬件信息',
`host` VARCHAR(64) DEFAULT NULL COMMENT '主机名',
`android_version` VARCHAR(32) DEFAULT NULL COMMENT 'Android 版本',
`android_api` INT DEFAULT NULL COMMENT 'Android API 级别',
`android_id` VARCHAR(64) DEFAULT NULL COMMENT 'Android ID',
`build_id` VARCHAR(64) DEFAULT NULL COMMENT 'Build ID',
`build_display_id` VARCHAR(128) DEFAULT NULL COMMENT 'Build Display ID',
`build_fingerprint` VARCHAR(255) DEFAULT NULL COMMENT 'Build 指纹',
`build_type` VARCHAR(32) DEFAULT NULL COMMENT 'Build 类型user/userdebug/eng',
`build_user` VARCHAR(64) DEFAULT NULL COMMENT 'Build 用户',
`build_host` VARCHAR(64) DEFAULT NULL COMMENT 'Build 主机',
`build_tags` VARCHAR(64) DEFAULT NULL COMMENT 'Build 标签',
`build_time` DATETIME DEFAULT NULL COMMENT 'Build 时间',
`language` VARCHAR(32) DEFAULT NULL COMMENT '系统语言',
`timezone` VARCHAR(64) DEFAULT NULL COMMENT '时区',
`boot_time` DATETIME DEFAULT NULL COMMENT '开机时间',
`screen_resolution` VARCHAR(32) DEFAULT NULL COMMENT '屏幕分辨率',
`screen_density` INT DEFAULT NULL COMMENT '屏幕密度',
`kernel_version` VARCHAR(128) DEFAULT NULL COMMENT '内核版本',
`rom_version` VARCHAR(128) DEFAULT NULL COMMENT 'ROM 版本',
-- ===================== 补充基本信息字段 =====================
`product_name` VARCHAR(128) DEFAULT NULL COMMENT '产品名称',
`product_model` VARCHAR(64) DEFAULT NULL COMMENT '产品型号',
`product_device` VARCHAR(64) DEFAULT NULL COMMENT '产品设备名',
`board_platform` VARCHAR(64) DEFAULT NULL COMMENT '主板平台',
`device_type` VARCHAR(32) DEFAULT NULL COMMENT '设备类型phone/tablet/tv等',
`is_tablet` TINYINT DEFAULT 0 COMMENT '是否平板0否 1是',
`release_version` VARCHAR(32) DEFAULT NULL COMMENT 'Android 发布版本号',
`display_version` VARCHAR(64) DEFAULT NULL COMMENT '显示版本号',
`bootloader` VARCHAR(64) DEFAULT NULL COMMENT 'Bootloader 版本',
`baseband_version` VARCHAR(64) DEFAULT NULL COMMENT '基带版本',
`radio_version` VARCHAR(64) DEFAULT NULL COMMENT 'Radio 版本',
`screen_size` VARCHAR(16) DEFAULT NULL COMMENT '屏幕尺寸(英寸,文本)',
`screen_inch` DECIMAL(4,2) DEFAULT NULL COMMENT '屏幕尺寸(数值,英寸)',
`refresh_rate` INT DEFAULT NULL COMMENT '屏幕刷新率Hz',
`os_type` VARCHAR(32) DEFAULT NULL COMMENT '操作系统类型',
`os_version` VARCHAR(32) DEFAULT NULL COMMENT '操作系统版本',
`firmware_version` VARCHAR(64) DEFAULT NULL COMMENT '固件版本',
-- ===================== 通用字段 =====================
`create_time` DATETIME DEFAULT NULL COMMENT '创建时间',
`update_time` DATETIME DEFAULT NULL COMMENT '更新时间',
`is_deleted` TINYINT DEFAULT 0 COMMENT '逻辑删除0未删 1已删',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_serialno` (`serialno`),
KEY `idx_is_deleted` (`is_deleted`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COMMENT = '设备基本信息表';