fix-xljk-admin-permissions.sql 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. -- ==========================================
  2. -- 修复心理健康管理员角色权限
  3. -- 版本:V1.0.0
  4. -- 功能:为心理健康管理员角色添加心理健康测评的查询权限
  5. -- 作者:Cursor AI
  6. -- 时间:2025-07-23
  7. -- ==========================================
  8. -- 设置字符集
  9. SET NAMES utf8mb4;
  10. -- 1. 检查心理健康管理员角色是否存在
  11. SELECT @role_id := role_id FROM sys_role WHERE role_key = 'xljk_admin' LIMIT 1;
  12. -- 2. 如果角色不存在,创建心理健康管理员角色
  13. 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)
  14. SELECT 117, '心理健康管理员', 'xljk_admin', 7, '1', '1', '1', '0', '0', 1, NOW(), '心理健康管理员'
  15. WHERE NOT EXISTS (SELECT 1 FROM sys_role WHERE role_key = 'xljk_admin');
  16. -- 3. 重新获取角色ID
  17. SELECT @role_id := role_id FROM sys_role WHERE role_key = 'xljk_admin' LIMIT 1;
  18. -- 4. 为心理健康管理员角色分配心理健康测评菜单权限
  19. -- 检查是否已经有菜单权限
  20. INSERT INTO sys_role_menu (role_id, menu_id)
  21. SELECT @role_id, 2300
  22. FROM dual
  23. WHERE NOT EXISTS (SELECT 1 FROM sys_role_menu WHERE role_id = @role_id AND menu_id = 2300);
  24. INSERT INTO sys_role_menu (role_id, menu_id)
  25. SELECT @role_id, 2310
  26. FROM dual
  27. WHERE NOT EXISTS (SELECT 1 FROM sys_role_menu WHERE role_id = @role_id AND menu_id = 2310);
  28. -- 5. 为心理健康管理员角色分配心理健康测评查询和导出权限
  29. INSERT INTO sys_role_menu (role_id, menu_id)
  30. SELECT @role_id, 2311
  31. FROM dual
  32. WHERE NOT EXISTS (SELECT 1 FROM sys_role_menu WHERE role_id = @role_id AND menu_id = 2311);
  33. INSERT INTO sys_role_menu (role_id, menu_id)
  34. SELECT @role_id, 2315
  35. FROM dual
  36. WHERE NOT EXISTS (SELECT 1 FROM sys_role_menu WHERE role_id = @role_id AND menu_id = 2315);
  37. -- 6. 为心理健康管理员角色分配心理健康测评统计权限
  38. INSERT INTO sys_role_menu (role_id, menu_id)
  39. SELECT @role_id, menu_id
  40. FROM sys_menu
  41. WHERE perms = 'xljk:evaluation:statistics'
  42. AND NOT EXISTS (
  43. SELECT 1 FROM sys_role_menu
  44. WHERE role_id = @role_id
  45. AND menu_id = (SELECT menu_id FROM sys_menu WHERE perms = 'xljk:evaluation:statistics' LIMIT 1)
  46. );
  47. -- 7. 验证结果
  48. SELECT '心理健康管理员角色权限修复完成!' AS result;
  49. SELECT CONCAT('心理健康管理员角色ID: ', @role_id) AS role_info;
  50. SELECT CONCAT('已分配菜单权限: ', COUNT(*)) AS menu_count
  51. FROM sys_role_menu
  52. WHERE role_id = @role_id;