Files
jcgl-dev/dev/sql/apt_rev01/35_duty_config_permissions.sql
T
2026-11-14 13:01:21 +08:00

69 lines
4.3 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- =============================================================================
-- 35 值班台测试配置与测试入住权限点(R5 / 应用端/17)
--
-- 五个权限点:
-- duty:config:read 查看测试配置面板(房间/绑定/服务器现状)
-- duty:config:room 录入测试房间(补平台基线 + 登记本端房间)
-- duty:config:sip 房间与 SIP 分机绑定/解绑
-- duty:config:sipServer SIP 服务器(AMI)地址/端口/口令引用/号段
-- duty:checkin:test 测试办理入住(造入住记录 + 生成叫乘任务)
--
-- 发放:超级管理员天然拥有 *:*:*;另外发给「公寓值班员」
-- (role_key = apartmentduty),测试配置由值班员自己维护。
-- 幂等:按 menu_id 与 (role_id, menu_id) 双重判重。
-- =============================================================================
SET NAMES utf8mb4;
USE apt_rev01;
-- ---------------------------------------------------------------------------
-- 权限点
-- ---------------------------------------------------------------------------
INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame,
is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
SELECT 3270, '测试配置查看', 0, 20, '', NULL, 1, 0, 'F', '0', '0', 'duty:config:read', '#', 'apt-rev01', NOW(), '值班台测试配置面板只读'
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3270);
INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame,
is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
SELECT 3271, '测试房间录入', 0, 21, '', NULL, 1, 0, 'F', '0', '0', 'duty:config:room', '#', 'apt-rev01', NOW(), '补平台房间基线并登记本端房间(仅测试环境)'
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3271);
INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame,
is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
SELECT 3272, '房间SIP绑定', 0, 22, '', NULL, 1, 0, 'F', '0', '0', 'duty:config:sip', '#', 'apt-rev01', NOW(), '房间与 SIP 分机绑定/解绑'
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3272);
INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame,
is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
SELECT 3273, 'SIP服务器配置', 0, 23, '', NULL, 1, 0, 'F', '0', '0', 'duty:config:sipServer', '#', 'apt-rev01', NOW(), 'AMI 地址/端口/用户名/口令引用/号段'
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3273);
INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame,
is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
SELECT 3274, '测试办理入住', 0, 24, '', NULL, 1, 0, 'F', '0', '0', 'duty:checkin:test', '#', 'apt-rev01', NOW(), '为系统内人员造入住记录并生成叫乘任务(仅测试环境)'
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3274);
-- ---------------------------------------------------------------------------
-- 发放给「公寓值班员」
-- ---------------------------------------------------------------------------
INSERT INTO sys_role_menu (role_id, menu_id)
SELECT r.role_id, m.menu_id
FROM sys_role r
JOIN sys_menu m ON m.menu_id IN (3270, 3271, 3272, 3273, 3274)
WHERE r.role_key = 'apartmentduty'
AND NOT EXISTS (SELECT 1 FROM sys_role_menu rm
WHERE rm.role_id = r.role_id AND rm.menu_id = m.menu_id);
-- ---------------------------------------------------------------------------
-- 自检
-- ---------------------------------------------------------------------------
SELECT '=== 35. 新增权限点(应 5)===' AS section;
SELECT menu_id, menu_name, perms FROM sys_menu WHERE menu_id BETWEEN 3270 AND 3274 ORDER BY menu_id;
SELECT '=== 35. 值班员已获授权(应 5)===' AS section;
SELECT COUNT(*) AS granted
FROM sys_role_menu rm
JOIN sys_role r ON r.role_id = rm.role_id
WHERE r.role_key = 'apartmentduty' AND rm.menu_id BETWEEN 3270 AND 3274;