feat(device): 添加设备策略信息管理功能
新增设备策略信息表 sys_sn_device_policy 及对应实体、Mapper、Converter、VO、Req 模型,并在设备端、家属端、管理端分别提供策略查询、全量更新和单独开关设置接口。同时修正设备菜单按钮权限命名(add/edit → create/update),并调整删除设备与解绑接口的权限和返回值。
This commit is contained in:
@@ -31,22 +31,29 @@ SET @menu_id = (SELECT `id` FROM `sys_menu` WHERE `component` = 'devices/sn/in
|
||||
-- 计算按钮的 tree_path = 菜单 tree_path + ',' + 菜单 id
|
||||
SET @tree_path = (SELECT CONCAT(`tree_path`, ',', `id`) FROM `sys_menu` WHERE `id` = @menu_id);
|
||||
|
||||
-- 1. 插入按钮权限(不存在才插入);权限字符串用 CONCAT 拼接,避免 :token 被客户端误判
|
||||
-- 1. 清理旧命名按钮权限(add/edit → create/update),保证幂等可重跑
|
||||
-- 旧的 sys:device:add / sys:device:edit 若存在则删除,避免与标准命名并存
|
||||
DELETE FROM `sys_menu`
|
||||
WHERE `perm` IN (CONCAT('sys', ':', 'device', ':', 'add'), CONCAT('sys', ':', 'device', ':', 'edit'))
|
||||
AND `type` = 'B';
|
||||
|
||||
-- 2. 插入按钮权限(不存在才插入);权限字符串用 CONCAT 拼接,避免 :token 被客户端误判
|
||||
-- 命名遵循系统标准(前端 buttonConfig 与后端代码生成器统一):list / create / update / delete
|
||||
INSERT INTO `sys_menu` (`parent_id`, `tree_path`, `name`, `type`, `route_name`, `route_path`, `component`,
|
||||
`perm`, `always_show`, `keep_alive`, `visible`, `sort`, `icon`, `redirect`,
|
||||
`create_time`, `update_time`, `params`)
|
||||
SELECT @menu_id, @tree_path, t.`name`, 'B', NULL, NULL, NULL,
|
||||
t.`perm`, NULL, NULL, 1, t.`sort`, NULL, NULL, now(), now(), NULL
|
||||
FROM (
|
||||
SELECT '查询' AS `name`, CONCAT('sys', ':', 'device', ':', 'list') AS `perm`, 1 AS `sort` UNION ALL
|
||||
SELECT '新增', CONCAT('sys', ':', 'device', ':', 'add'), 2 UNION ALL
|
||||
SELECT '编辑', CONCAT('sys', ':', 'device', ':', 'edit'), 3 UNION ALL
|
||||
SELECT '删除', CONCAT('sys', ':', 'device', ':', 'delete'), 4
|
||||
SELECT '查询' AS `name`, CONCAT('sys', ':', 'device', ':', 'list') AS `perm`, 1 AS `sort` UNION ALL
|
||||
SELECT '新增', CONCAT('sys', ':', 'device', ':', 'create'), 2 UNION ALL
|
||||
SELECT '编辑', CONCAT('sys', ':', 'device', ':', 'update'), 3 UNION ALL
|
||||
SELECT '删除', CONCAT('sys', ':', 'device', ':', 'delete'), 4
|
||||
) t
|
||||
WHERE @menu_id IS NOT NULL
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_menu` m WHERE m.`perm` = t.`perm`);
|
||||
|
||||
-- 2. 授权给 ADMIN 角色(role_id = 2;如实际角色 id 不同请修改)
|
||||
-- 3. 授权给 ADMIN 角色(role_id = 2;如实际角色 id 不同请修改)
|
||||
-- 直接授权该菜单下的全部按钮,避免 SQL 文本中出现带冒号的权限字符串
|
||||
INSERT IGNORE INTO `sys_role_menu` (`role_id`, `menu_id`)
|
||||
SELECT 2, `id`
|
||||
|
||||
42
sql/sn_device_policy.sql
Normal file
42
sql/sn_device_policy.sql
Normal file
@@ -0,0 +1,42 @@
|
||||
-- =============================================================================
|
||||
-- 设备策略信息表(sys_sn_device_policy)
|
||||
-- 说明:存储设备的策略开关状态,与设备 SN 绑定,每个 SN 唯一一条。
|
||||
-- 所有开关字段默认值均为 1(开启)。
|
||||
-- =============================================================================
|
||||
CREATE TABLE IF NOT EXISTS `sys_sn_device_policy`
|
||||
(
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`serialno` VARCHAR(64) NOT NULL COMMENT '设备序列号(关联 sys_sn.serialno)',
|
||||
|
||||
-- ===================== 策略开关 =====================
|
||||
`usb_data` TINYINT NOT NULL DEFAULT 1 COMMENT 'USB偏好设置(0关闭 1开启)',
|
||||
`time_setting` TINYINT NOT NULL DEFAULT 1 COMMENT '时间设置管控(0关闭 1开启)',
|
||||
`storage_card` TINYINT NOT NULL DEFAULT 1 COMMENT '存储卡(0关闭 1开启)',
|
||||
`factory_reset` TINYINT NOT NULL DEFAULT 1 COMMENT '恢复出厂(0关闭 1开启)',
|
||||
`wifi_hotspot` TINYINT NOT NULL DEFAULT 1 COMMENT 'WiFi热点开关(0关闭 1开启)',
|
||||
`bluetooth_switch` TINYINT NOT NULL DEFAULT 1 COMMENT '蓝牙开关(0关闭 1开启)',
|
||||
`wallpaper` TINYINT NOT NULL DEFAULT 1 COMMENT '壁纸功能(0关闭 1开启)',
|
||||
`notification_bar` TINYINT NOT NULL DEFAULT 1 COMMENT '通知栏显示(0关闭 1开启)',
|
||||
`status_bar_pull_down` TINYINT NOT NULL DEFAULT 1 COMMENT '状态栏下拉开关(0关闭 1开启)',
|
||||
`system_nav_bar_show` TINYINT NOT NULL DEFAULT 1 COMMENT '系统导航条显示(0关闭 1开启)',
|
||||
`system_nav_bar_setting` TINYINT NOT NULL DEFAULT 1 COMMENT '系统导航栏设置(0关闭 1开启)',
|
||||
`nav_bar_options` TINYINT NOT NULL DEFAULT 1 COMMENT '导航条选项(0关闭 1开启)',
|
||||
`bluetooth_function` TINYINT NOT NULL DEFAULT 1 COMMENT '蓝牙功能开关(0关闭 1开启)',
|
||||
`ota_upgrade` TINYINT NOT NULL DEFAULT 1 COMMENT 'OTA升级管控(0关闭 1开启)',
|
||||
`app_install` TINYINT NOT NULL DEFAULT 1 COMMENT '应用安装开关(0关闭 1开启)',
|
||||
`auto_rotate` TINYINT NOT NULL DEFAULT 1 COMMENT '自动旋转(0关闭 1开启)',
|
||||
`auto_brightness` TINYINT NOT NULL DEFAULT 1 COMMENT '自动亮度(0关闭 1开启)',
|
||||
`eye_protection` TINYINT NOT NULL DEFAULT 1 COMMENT '护眼模式(0关闭 1开启)',
|
||||
`dark_mode` TINYINT NOT NULL DEFAULT 1 COMMENT '深色模式(0关闭 1开启)',
|
||||
|
||||
-- ===================== 通用字段 =====================
|
||||
`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