81 lines
4.6 KiB
SQL
81 lines
4.6 KiB
SQL
-- =============================================================================
|
||
-- IT-4 权限点与页面菜单种子(可重放)。执行顺序:17_it4_columns.sql → 本文件。
|
||
-- 依据:公寓端/11 表 11-33(权限点)、表 11-34(接口清单 N-38~N-47)、
|
||
-- 13 表 13-14、CR-02 表 3-57 验收 18~20。
|
||
-- 口径:
|
||
-- 1) `duty:checkin:list` 在 IT-1 已登记并置灰(menu_id 3005),本期**启用**,不新增重复点。
|
||
-- 2) 新增 3 个 F 点:审核(review)/ 换房(adjust)/ 管理端查询(apt:checkin:query)。
|
||
-- 3) 新增 1 个 C 页面菜单 3202「入住审核」,完整路由 /apt/checkin。
|
||
-- 4) 设备侧 `/open/v1/checkin/**`(N-39~N-41)走设备四要素鉴权,无权限点字符串。
|
||
-- 5) 跨公寓、超范围一律 40302/40303;本脚本不引入 role_id 300 的任何 apt 权限。
|
||
-- =============================================================================
|
||
|
||
-- 1. 启用 IT-1 预置的入住列表权限点(3005)
|
||
UPDATE sys_menu
|
||
SET visible = '0', status = '0',
|
||
remark = 'IT-4 启用:N-42 入住待审列表 duty:checkin:list(IT-1 预置并置灰)'
|
||
WHERE menu_id = 3005 AND perms = 'duty:checkin:list';
|
||
|
||
-- 2. 新增 F 权限点(parent 3000)
|
||
INSERT INTO sys_menu
|
||
(menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
|
||
is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
|
||
VALUES
|
||
(3217, '入住审核', 3000, 17, '', '', '', '', 1, 0, 'F', '0', '0',
|
||
'duty:checkin:review', '#', 'IT-4', NOW(),
|
||
'IT-4 N-44 审核:APPROVE / APPROVE_WITH_ROOM_CHANGE / REJECT,须二次确认且带 expectedBizVersion'),
|
||
(3218, '入住换房', 3000, 18, '', '', '', '', 1, 0, 'F', '0', '0',
|
||
'duty:checkin:adjust', '#', 'IT-4', NOW(),
|
||
'IT-4 N-45 换房:仅审核期(APPROVED / ROOM_ADJUSTED),CHECKED_IN 后走退宿换房(40926)'),
|
||
(3219, '入住查询', 3000, 19, '', '', '', '', 1, 0, 'F', '0', '0',
|
||
'apt:checkin:query', '#', 'IT-4', NOW(),
|
||
'IT-4 N-47 按 jcid 查入住与叫乘任务(管理端只读,不接受客户端 gyid)')
|
||
ON DUPLICATE KEY UPDATE menu_name = VALUES(menu_name), parent_id = VALUES(parent_id),
|
||
order_num = VALUES(order_num), menu_type = VALUES(menu_type), visible = VALUES(visible),
|
||
status = VALUES(status), perms = VALUES(perms), remark = VALUES(remark);
|
||
|
||
-- 3. C 页面菜单(父目录 3000)
|
||
INSERT INTO sys_menu
|
||
(menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
|
||
is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
|
||
VALUES
|
||
(3202, '入住审核', 3000, 6, 'checkin', 'apt/checkin/index', '', '', 1, 0, 'C', '0', '0',
|
||
'', 'druid', 'IT-4', NOW(),
|
||
'IT-4 值班台入住待审台账:审核/换房/时间线只读;换房仅审核期,入住后走退宿换房')
|
||
ON DUPLICATE KEY UPDATE menu_name = VALUES(menu_name), parent_id = VALUES(parent_id),
|
||
order_num = VALUES(order_num), path = VALUES(path), component = VALUES(component),
|
||
menu_type = VALUES(menu_type), visible = VALUES(visible), status = VALUES(status),
|
||
icon = VALUES(icon), remark = VALUES(remark);
|
||
|
||
-- 4. 超管关联(本期全部可用)
|
||
INSERT INTO sys_role_menu (role_id, menu_id)
|
||
SELECT 1, m.menu_id FROM sys_menu m
|
||
WHERE m.menu_id IN (3202, 3005, 3217, 3218, 3219)
|
||
AND NOT EXISTS (SELECT 1 FROM sys_role_menu rm WHERE rm.role_id = 1 AND rm.menu_id = m.menu_id);
|
||
|
||
-- 5. 校验
|
||
SELECT '=== IT-4 权限点与页面菜单(应 5 行:3005 + 3217~3219 + 3202)===' AS section;
|
||
SELECT menu_id, menu_name, menu_type, visible, status, perms, component
|
||
FROM sys_menu WHERE menu_id IN (3005, 3217, 3218, 3219, 3202) ORDER BY menu_id;
|
||
|
||
SELECT '=== C 菜单组件路径(须与 src/views/apt/checkin/index.vue 一致)===' AS section;
|
||
SELECT menu_id, CONCAT('src/views/', component, '.vue') AS vue_file
|
||
FROM sys_menu WHERE menu_id = 3202;
|
||
|
||
SELECT '=== 超管关联(应 5)===' AS section;
|
||
SELECT COUNT(*) AS admin_bound
|
||
FROM sys_role_menu rm JOIN sys_menu m ON m.menu_id = rm.menu_id
|
||
WHERE rm.role_id = 1 AND m.menu_id IN (3202, 3005, 3217, 3218, 3219);
|
||
|
||
SELECT '=== 公寓端菜单树构成(应 M=1 / C=6 / F=24)===' AS section;
|
||
SELECT menu_type, COUNT(*) AS cnt
|
||
FROM sys_menu
|
||
WHERE menu_id = 3000 OR parent_id = 3000
|
||
GROUP BY menu_type ORDER BY menu_type;
|
||
|
||
SELECT '=== 无遗留置灰的入住权限点(应为 0)===' AS section;
|
||
SELECT COUNT(*) AS still_grey
|
||
FROM sys_menu
|
||
WHERE perms IN ('duty:checkin:list','duty:checkin:review','duty:checkin:adjust','apt:checkin:query')
|
||
AND (visible <> '0' OR status <> '0');
|