-- ============================================================================= -- 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');