Files
shz-backend/sql/migration_interview_menu.sql
2026-06-25 13:32:37 +08:00

91 lines
4.6 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.

-- =====================================================
-- 面试列表 - 菜单权限配置 SQL
-- 在 岗位管理 菜单下增加"面试列表"子菜单及按钮权限
--
-- 执行前请确认:
-- 1. 确认 parent_id面试列表将放在 "岗位管理" 目录下
-- 如果数据库中岗位管理目录的 menu_id 不同,请修改下面子查询中的条件
-- 2. sys_menu 表使用自增主键auto_increment=2000
-- 本脚本使用 2100+ 的固定ID避免与已有数据冲突
-- 3. 执行后需要在"角色管理"中将新菜单分配给对应角色
-- =====================================================
-- Step 1: 新增菜单项C=菜单页面)
-- parent_id 动态查找path='management' 的目录菜单
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, update_by, update_time, remark)
SELECT 2100, '面试列表',
(SELECT menu_id FROM sys_menu WHERE path = 'management' AND menu_type = 'M' LIMIT 1),
10, 'interview-list', 'Management/InterviewList', '', 'InterviewList', 1, 0, 'C', '0', '0',
'cms:interview:list', 'message', 'admin', CURRENT_TIMESTAMP, '', null, '面试列表菜单'
WHERE EXISTS (SELECT 1 FROM sys_menu WHERE path = 'management' AND menu_type = 'M');
-- Step 2: 新增按钮权限F=按钮)
-- 面试查询
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, update_by, update_time, remark)
SELECT 2101, '面试查询', 2100, 1, '', '', '', '', 1, 0, 'F', '0', '0',
'cms:interview:query', '#', 'admin', CURRENT_TIMESTAMP, '', null, ''
WHERE EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2100);
-- 面试新增
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, update_by, update_time, remark)
SELECT 2102, '面试新增', 2100, 2, '', '', '', '', 1, 0, 'F', '0', '0',
'cms:interview:add', '#', 'admin', CURRENT_TIMESTAMP, '', null, ''
WHERE EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2100);
-- 面试修改
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, update_by, update_time, remark)
SELECT 2103, '面试修改', 2100, 3, '', '', '', '', 1, 0, 'F', '0', '0',
'cms:interview:edit', '#', 'admin', CURRENT_TIMESTAMP, '', null, ''
WHERE EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2100);
-- 面试删除
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, update_by, update_time, remark)
SELECT 2104, '面试删除', 2100, 4, '', '', '', '', 1, 0, 'F', '0', '0',
'cms:interview:remove', '#', 'admin', CURRENT_TIMESTAMP, '', null, ''
WHERE EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2100);
-- Step 3: 将新菜单分配给角色
-- 为所有非管理员角色分配面试列表权限(管理员角色无需分配,通配符 *:*:* 自动拥有全部权限)
-- 如需仅限特定角色,请修改 WHERE 条件
INSERT INTO sys_role_menu (role_id, menu_id)
SELECT r.role_id, 2100
FROM sys_role r
WHERE r.role_key != 'admin'
AND EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2100);
INSERT INTO sys_role_menu (role_id, menu_id)
SELECT r.role_id, 2101
FROM sys_role r
WHERE r.role_key != 'admin'
AND EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2101);
INSERT INTO sys_role_menu (role_id, menu_id)
SELECT r.role_id, 2102
FROM sys_role r
WHERE r.role_key != 'admin'
AND EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2102);
INSERT INTO sys_role_menu (role_id, menu_id)
SELECT r.role_id, 2103
FROM sys_role r
WHERE r.role_key != 'admin'
AND EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2103);
INSERT INTO sys_role_menu (role_id, menu_id)
SELECT r.role_id, 2104
FROM sys_role r
WHERE r.role_key != 'admin'
AND EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2104);
-- =====================================================
-- 验证 SQL可选执行
-- =====================================================
-- 检查菜单是否创建成功
-- SELECT * FROM sys_menu WHERE menu_id BETWEEN 2100 AND 2104;
-- 检查角色菜单关联
-- SELECT r.role_name, m.menu_name FROM sys_role_menu rm
-- JOIN sys_role r ON r.role_id = rm.role_id
-- JOIN sys_menu m ON m.menu_id = rm.menu_id
-- WHERE rm.menu_id BETWEEN 2100 AND 2104;