refactor(device): 重构设备信息模块,按面板拆分数据存储和接口
将原 SnDeviceSystemInfo 单一实体拆分为基本信息、硬件、网络、安全、其他信息五个独立子表和服务,重构 DeviceController 和 MobileController 接口以支持分面板查询和上传
This commit is contained in:
47
sql/sn_hardware_info.sql
Normal file
47
sql/sn_hardware_info.sql
Normal file
@@ -0,0 +1,47 @@
|
||||
-- =============================================================================
|
||||
-- 设备硬件信息表(sys_sn_hardware_info)
|
||||
-- 说明:设备【硬件信息】面板独立分表,与基本信息表分离存储。
|
||||
-- =============================================================================
|
||||
CREATE TABLE IF NOT EXISTS `sys_sn_hardware_info`
|
||||
(
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`serialno` VARCHAR(64) NOT NULL COMMENT '设备序列号(关联 sys_sn.serialno)',
|
||||
|
||||
-- ===================== 硬件信息面板 =====================
|
||||
`cpu_abi` VARCHAR(128) DEFAULT NULL COMMENT 'CPU ABI 列表(逗号分隔)',
|
||||
`cpu_abi2` VARCHAR(128) DEFAULT NULL COMMENT 'CPU ABI2',
|
||||
`cpu_min` VARCHAR(64) DEFAULT NULL COMMENT '最小 CPU ABI',
|
||||
`cpu_model` VARCHAR(128) DEFAULT NULL COMMENT 'CPU 型号',
|
||||
`cpu_cores` INT DEFAULT NULL COMMENT 'CPU 核心数',
|
||||
`cpu_max_freq` VARCHAR(32) DEFAULT NULL COMMENT 'CPU 最大频率',
|
||||
`cpu_min_freq` VARCHAR(32) DEFAULT NULL COMMENT 'CPU 最小频率',
|
||||
`total_ram` VARCHAR(32) DEFAULT NULL COMMENT '总内存',
|
||||
`available_ram` VARCHAR(32) DEFAULT NULL COMMENT '可用内存',
|
||||
`internal_storage` VARCHAR(32) DEFAULT NULL COMMENT '内部存储',
|
||||
`available_storage` VARCHAR(32) DEFAULT NULL COMMENT '可用存储',
|
||||
`external_storage` VARCHAR(32) DEFAULT NULL COMMENT '外部存储(SD卡)',
|
||||
`battery_capacity` VARCHAR(32) DEFAULT NULL COMMENT '电池容量',
|
||||
`battery_level` INT DEFAULT NULL COMMENT '电池电量(0-100)',
|
||||
`battery_status` VARCHAR(32) DEFAULT NULL COMMENT '电池状态',
|
||||
`battery_health` VARCHAR(32) DEFAULT NULL COMMENT '电池健康度',
|
||||
`battery_temp` VARCHAR(32) DEFAULT NULL COMMENT '电池温度',
|
||||
`battery_voltage` VARCHAR(32) DEFAULT NULL COMMENT '电池电压',
|
||||
`battery_technology` VARCHAR(32) DEFAULT NULL COMMENT '电池技术',
|
||||
`gpu_renderer` VARCHAR(128) DEFAULT NULL COMMENT 'GPU 渲染器',
|
||||
`gpu_vendor` VARCHAR(64) DEFAULT NULL COMMENT 'GPU 厂商',
|
||||
`gpu_version` VARCHAR(64) DEFAULT NULL COMMENT 'GPU 版本',
|
||||
`sensors` TEXT DEFAULT NULL COMMENT '传感器列表(JSON)',
|
||||
`support_abi` VARCHAR(128) DEFAULT NULL COMMENT '支持的应用二进制接口',
|
||||
`support_abi64` VARCHAR(128) DEFAULT NULL COMMENT '支持的 64 位 ABI',
|
||||
|
||||
-- ===================== 通用字段 =====================
|
||||
`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 = '设备硬件信息表';
|
||||
47
sql/sn_network_info.sql
Normal file
47
sql/sn_network_info.sql
Normal file
@@ -0,0 +1,47 @@
|
||||
-- =============================================================================
|
||||
-- 设备网络信息表(sys_sn_network_info)
|
||||
-- 说明:设备【网络信息】面板独立分表,与基本信息表分离存储。
|
||||
-- =============================================================================
|
||||
CREATE TABLE IF NOT EXISTS `sys_sn_network_info`
|
||||
(
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`serialno` VARCHAR(64) NOT NULL COMMENT '设备序列号(关联 sys_sn.serialno)',
|
||||
|
||||
-- ===================== 网络信息面板 =====================
|
||||
`network_type` VARCHAR(32) DEFAULT NULL COMMENT '网络类型(WIFI/MOBILE/ETHERNET等)',
|
||||
`network_subtype` VARCHAR(32) DEFAULT NULL COMMENT '网络子类型',
|
||||
`is_connected` TINYINT DEFAULT NULL COMMENT '是否联网(0否 1是)',
|
||||
`wifi_ssid` VARCHAR(128) DEFAULT NULL COMMENT 'WiFi SSID',
|
||||
`wifi_bssid` VARCHAR(64) DEFAULT NULL COMMENT 'WiFi BSSID',
|
||||
`wifi_ip` VARCHAR(64) DEFAULT NULL COMMENT 'WiFi IP 地址',
|
||||
`wifi_mac` VARCHAR(64) DEFAULT NULL COMMENT 'WiFi MAC 地址',
|
||||
`wifi_gateway` VARCHAR(64) DEFAULT NULL COMMENT 'WiFi 网关',
|
||||
`wifi_netmask` VARCHAR(64) DEFAULT NULL COMMENT 'WiFi 子网掩码',
|
||||
`wifi_dns` VARCHAR(128) DEFAULT NULL COMMENT 'WiFi DNS',
|
||||
`wifi_rssi` INT DEFAULT NULL COMMENT 'WiFi 信号强度',
|
||||
`wifi_speed` VARCHAR(32) DEFAULT NULL COMMENT 'WiFi 连接速度',
|
||||
`mobile_ip` VARCHAR(64) DEFAULT NULL COMMENT '移动网络 IP',
|
||||
`mobile_mac` VARCHAR(64) DEFAULT NULL COMMENT '移动网络 MAC',
|
||||
`mobile_imei` VARCHAR(64) DEFAULT NULL COMMENT 'IMEI',
|
||||
`mobile_imsi` VARCHAR(64) DEFAULT NULL COMMENT 'IMSI',
|
||||
`mobile_operator` VARCHAR(64) DEFAULT NULL COMMENT '运营商名称',
|
||||
`mobile_sim_serial` VARCHAR(64) DEFAULT NULL COMMENT 'SIM 序列号',
|
||||
`mobile_network_type` VARCHAR(32) DEFAULT NULL COMMENT '移动网络类型',
|
||||
`bluetooth_mac` VARCHAR(64) DEFAULT NULL COMMENT '蓝牙 MAC 地址',
|
||||
`bluetooth_name` VARCHAR(128) DEFAULT NULL COMMENT '蓝牙名称',
|
||||
`is_vpn` TINYINT DEFAULT NULL COMMENT '是否 VPN(0否 1是)',
|
||||
`is_proxy` TINYINT DEFAULT NULL COMMENT '是否代理(0否 1是)',
|
||||
`proxy_host` VARCHAR(64) DEFAULT NULL COMMENT '代理主机',
|
||||
`proxy_port` VARCHAR(16) 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 = '设备网络信息表';
|
||||
44
sql/sn_other_info.sql
Normal file
44
sql/sn_other_info.sql
Normal file
@@ -0,0 +1,44 @@
|
||||
-- =============================================================================
|
||||
-- 设备其他信息表(sys_sn_other_info)
|
||||
-- 说明:设备【其他信息】面板独立分表,与基本信息表分离存储。
|
||||
-- =============================================================================
|
||||
CREATE TABLE IF NOT EXISTS `sys_sn_other_info`
|
||||
(
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`serialno` VARCHAR(64) NOT NULL COMMENT '设备序列号(关联 sys_sn.serialno)',
|
||||
|
||||
-- ===================== 其他信息面板 =====================
|
||||
`app_version` VARCHAR(32) DEFAULT NULL COMMENT 'App 版本',
|
||||
`app_version_code` INT DEFAULT NULL COMMENT 'App 版本号',
|
||||
`install_time` DATETIME DEFAULT NULL COMMENT 'App 安装时间',
|
||||
`update_time_app` DATETIME DEFAULT NULL COMMENT 'App 更新时间',
|
||||
`package_name` VARCHAR(128) DEFAULT NULL COMMENT '应用包名',
|
||||
`channel` VARCHAR(64) DEFAULT NULL COMMENT '渠道',
|
||||
`device_id` VARCHAR(64) DEFAULT NULL COMMENT '设备 ID(应用层)',
|
||||
`gaid` VARCHAR(64) DEFAULT NULL COMMENT 'Google Advertising ID',
|
||||
`oaid` VARCHAR(64) DEFAULT NULL COMMENT 'OAID',
|
||||
`phone_number` VARCHAR(32) DEFAULT NULL COMMENT '手机号(脱敏)',
|
||||
`iccid` VARCHAR(32) DEFAULT NULL COMMENT 'ICCID',
|
||||
`imsi` VARCHAR(64) DEFAULT NULL COMMENT 'IMSI',
|
||||
`camera_info` TEXT DEFAULT NULL COMMENT '摄像头信息(JSON)',
|
||||
`sensor_count` INT DEFAULT NULL COMMENT '传感器数量',
|
||||
`app_list_md5` VARCHAR(64) DEFAULT NULL COMMENT '应用列表 MD5',
|
||||
`is_charging` TINYINT DEFAULT NULL COMMENT '是否充电中(0否 1是)',
|
||||
`charging_type` VARCHAR(32) DEFAULT NULL COMMENT '充电类型',
|
||||
`temperature` VARCHAR(32) DEFAULT NULL COMMENT '设备温度',
|
||||
`free_storage` VARCHAR(32) DEFAULT NULL COMMENT '剩余存储',
|
||||
`total_storage` VARCHAR(32) DEFAULT NULL COMMENT '总存储',
|
||||
`free_ram` VARCHAR(32) DEFAULT NULL COMMENT '剩余内存',
|
||||
`total_ram` VARCHAR(32) 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 = '设备其他信息表';
|
||||
43
sql/sn_security_info.sql
Normal file
43
sql/sn_security_info.sql
Normal file
@@ -0,0 +1,43 @@
|
||||
-- =============================================================================
|
||||
-- 设备安全信息表(sys_sn_security_info)
|
||||
-- 说明:设备【安全信息】面板独立分表,与基本信息表分离存储。
|
||||
-- =============================================================================
|
||||
CREATE TABLE IF NOT EXISTS `sys_sn_security_info`
|
||||
(
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`serialno` VARCHAR(64) NOT NULL COMMENT '设备序列号(关联 sys_sn.serialno)',
|
||||
|
||||
-- ===================== 安全信息面板 =====================
|
||||
`is_root` TINYINT DEFAULT NULL COMMENT '是否已 Root(0否 1是)',
|
||||
`is_jailbreak` TINYINT DEFAULT NULL COMMENT '是否已越狱(0否 1是)',
|
||||
`root_status` TINYINT DEFAULT NULL COMMENT 'Root/越狱状态(0否 1是)',
|
||||
`has_su_binary` TINYINT DEFAULT NULL COMMENT '是否存在 su 二进制(0否 1是)',
|
||||
`has_busybox` TINYINT DEFAULT NULL COMMENT '是否存在 BusyBox(0否 1是)',
|
||||
`is_emulator` TINYINT DEFAULT NULL COMMENT '是否模拟器(0否 1是)',
|
||||
`is_debuggable` TINYINT DEFAULT NULL COMMENT '是否可调试(0否 1是)',
|
||||
`is_usb_debug` TINYINT DEFAULT NULL COMMENT '是否开启 USB 调试(0否 1是)',
|
||||
`is_unknown_sources` TINYINT DEFAULT NULL COMMENT '是否允许未知来源(0否 1是)',
|
||||
`is_verify_apps` TINYINT DEFAULT NULL COMMENT '是否验证应用(0否 1是)',
|
||||
`is_encrypted` TINYINT DEFAULT NULL COMMENT '是否加密(0否 1是)',
|
||||
`lock_screen_type` VARCHAR(32) DEFAULT NULL COMMENT '锁屏类型',
|
||||
`has_password` TINYINT DEFAULT NULL COMMENT '是否设置密码(0否 1是)',
|
||||
`password_type` VARCHAR(32) DEFAULT NULL COMMENT '密码类型',
|
||||
`security_patch` VARCHAR(32) DEFAULT NULL COMMENT '安全补丁级别',
|
||||
`google_play_protect` TINYINT DEFAULT NULL COMMENT 'Google Play 保护(0否 1是)',
|
||||
`adb_status` TINYINT DEFAULT NULL COMMENT 'ADB 状态(0关 1开)',
|
||||
`is_vpn_active` TINYINT DEFAULT NULL COMMENT 'VPN 是否激活(0否 1是)',
|
||||
`is_device_owner` TINYINT DEFAULT NULL COMMENT '是否设备所有者(0否 1是)',
|
||||
`android_version` VARCHAR(32) DEFAULT NULL COMMENT 'Android 版本(安全相关)',
|
||||
`kernel_version` VARCHAR(128) 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 = '设备安全信息表';
|
||||
77
sql/sn_system_info.sql
Normal file
77
sql/sn_system_info.sql
Normal 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 = '设备基本信息表';
|
||||
Reference in New Issue
Block a user