Files
hzdyjs/本地临时文件目录/fix-user-role-permissions.sql
T
2025-07-24 21:03:00 +08:00

100 lines
3.6 KiB
SQL

-- 修复zhanglaoshi和lililaoshi的角色权限配置
-- 作者:Cursor AI
-- 日期:2025-07-21
-- 说明:解决zhanglaoshi和lililaoshi账号权限配置问题
-- 1. 检查用户角色关联情况
SELECT u.user_id, u.user_name, u.nick_name, r.role_id, r.role_name, r.role_key
FROM sys_user u
JOIN sys_user_role ur ON u.user_id = ur.user_id
JOIN sys_role r ON ur.role_id = r.role_id
WHERE u.user_name IN ('zhanglaoshi', 'lililaoshi');
-- 2. 删除现有的用户角色关联,确保没有错误配置
DELETE FROM sys_user_role WHERE user_id IN (9001, 9002);
-- 3. 重新配置正确的用户角色关联
-- zhanglaoshi(9001) -> 招生信息审核员(10)
-- lililaoshi(9002) -> 招生录取处理员(11)
INSERT INTO sys_user_role (user_id, role_id) VALUES
(9001, 10), -- 张老师 -> 招生信息审核员
(9002, 11); -- 李老师 -> 招生录取处理员
-- 4. 检查角色权限配置
SELECT r.role_name, m.menu_name, m.perms
FROM sys_role r
JOIN sys_role_menu rm ON r.role_id = rm.role_id
JOIN sys_menu m ON rm.menu_id = m.menu_id
WHERE r.role_id IN (10, 11)
ORDER BY r.role_id, m.menu_id;
-- 5. 确保招生信息审核员角色(10)有正确的权限
-- 检查是否有信息审核权限
SELECT COUNT(*) FROM sys_menu WHERE perms = 'zsjy:enrollmentProcess:audit';
-- 6. 确保招生录取处理员角色(11)有正确的权限
-- 检查是否有录取处理权限
SELECT COUNT(*) FROM sys_menu WHERE perms = 'zsjy:enrollmentProcess:process';
-- 7. 修复招生信息审核员角色(10)权限
-- 如果需要添加缺失的信息审核权限
INSERT IGNORE INTO sys_role_menu (role_id, menu_id)
SELECT 10, menu_id FROM sys_menu WHERE perms = 'zsjy:enrollmentProcess:audit';
-- 移除不应有的录取处理权限
DELETE FROM sys_role_menu
WHERE role_id = 10
AND menu_id IN (SELECT menu_id FROM sys_menu WHERE perms = 'zsjy:enrollmentProcess:process');
-- 8. 修复招生录取处理员角色(11)权限
-- 如果需要添加缺失的录取处理权限
INSERT IGNORE INTO sys_role_menu (role_id, menu_id)
SELECT 11, menu_id FROM sys_menu WHERE perms = 'zsjy:enrollmentProcess:process';
-- 移除不应有的信息审核权限
DELETE FROM sys_role_menu
WHERE role_id = 11
AND menu_id IN (SELECT menu_id FROM sys_menu WHERE perms = 'zsjy:enrollmentProcess:audit');
-- 9. 检查流程状态数据过滤
-- 查看当前流程状态数据分配情况
SELECT id, student_name, current_status, current_handler, current_handler_name
FROM zsjy_enrollment_process
WHERE deleted = 0
ORDER BY current_status;
-- 10. 修复流程状态数据分配
-- 确保状态0和1的流程分配给zhanglaoshi(9001)
UPDATE zsjy_enrollment_process
SET current_handler = 9001,
current_handler_name = '张老师',
update_time = NOW()
WHERE current_status IN ('0', '1')
AND deleted = 0;
-- 确保状态2的流程分配给lililaoshi(9002)
UPDATE zsjy_enrollment_process
SET current_handler = 9002,
current_handler_name = '李老师',
update_time = NOW()
WHERE current_status = '2'
AND deleted = 0;
-- 11. 最终验证
-- 再次检查用户角色关联
SELECT u.user_id, u.user_name, u.nick_name, r.role_id, r.role_name, r.role_key
FROM sys_user u
JOIN sys_user_role ur ON u.user_id = ur.user_id
JOIN sys_role r ON ur.role_id = r.role_id
WHERE u.user_name IN ('zhanglaoshi', 'lililaoshi');
-- 检查流程状态分配情况
SELECT
current_status,
COUNT(*) as total_count,
SUM(CASE WHEN current_handler = 9001 THEN 1 ELSE 0 END) as zhanglaoshi_count,
SUM(CASE WHEN current_handler = 9002 THEN 1 ELSE 0 END) as lililaoshi_count
FROM zsjy_enrollment_process
WHERE deleted = 0
GROUP BY current_status
ORDER BY current_status;