Files

80 lines
4.6 KiB
SQL
Raw Permalink Normal View History

2026-11-11 18:30:31 +08:00
-- =============================================================================
-- 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');