-- ========================================== -- 修复心理健康管理员角色权限 -- 版本:V1.0.0 -- 功能:为心理健康管理员角色添加心理健康测评的查询权限 -- 作者:Cursor AI -- 时间:2025-07-23 -- ========================================== -- 设置字符集 SET NAMES utf8mb4; -- 1. 检查心理健康管理员角色是否存在 SELECT @role_id := role_id FROM sys_role WHERE role_key = 'xljk_admin' LIMIT 1; -- 2. 如果角色不存在,创建心理健康管理员角色 INSERT INTO sys_role (role_id, role_name, role_key, role_sort, data_scope, menu_check_strictly, dept_check_strictly, status, del_flag, create_by, create_time, remark) SELECT 117, '心理健康管理员', 'xljk_admin', 7, '1', '1', '1', '0', '0', 1, NOW(), '心理健康管理员' WHERE NOT EXISTS (SELECT 1 FROM sys_role WHERE role_key = 'xljk_admin'); -- 3. 重新获取角色ID SELECT @role_id := role_id FROM sys_role WHERE role_key = 'xljk_admin' LIMIT 1; -- 4. 为心理健康管理员角色分配心理健康测评菜单权限 -- 检查是否已经有菜单权限 INSERT INTO sys_role_menu (role_id, menu_id) SELECT @role_id, 2300 FROM dual WHERE NOT EXISTS (SELECT 1 FROM sys_role_menu WHERE role_id = @role_id AND menu_id = 2300); INSERT INTO sys_role_menu (role_id, menu_id) SELECT @role_id, 2310 FROM dual WHERE NOT EXISTS (SELECT 1 FROM sys_role_menu WHERE role_id = @role_id AND menu_id = 2310); -- 5. 为心理健康管理员角色分配心理健康测评查询和导出权限 INSERT INTO sys_role_menu (role_id, menu_id) SELECT @role_id, 2311 FROM dual WHERE NOT EXISTS (SELECT 1 FROM sys_role_menu WHERE role_id = @role_id AND menu_id = 2311); INSERT INTO sys_role_menu (role_id, menu_id) SELECT @role_id, 2315 FROM dual WHERE NOT EXISTS (SELECT 1 FROM sys_role_menu WHERE role_id = @role_id AND menu_id = 2315); -- 6. 为心理健康管理员角色分配心理健康测评统计权限 INSERT INTO sys_role_menu (role_id, menu_id) SELECT @role_id, menu_id FROM sys_menu WHERE perms = 'xljk:evaluation:statistics' AND NOT EXISTS ( SELECT 1 FROM sys_role_menu WHERE role_id = @role_id AND menu_id = (SELECT menu_id FROM sys_menu WHERE perms = 'xljk:evaluation:statistics' LIMIT 1) ); -- 7. 验证结果 SELECT '心理健康管理员角色权限修复完成!' AS result; SELECT CONCAT('心理健康管理员角色ID: ', @role_id) AS role_info; SELECT CONCAT('已分配菜单权限: ', COUNT(*)) AS menu_count FROM sys_role_menu WHERE role_id = @role_id;