Files
hzdyjs/test/update-button-permissions.sql
T
2025-06-30 20:33:58 +08:00

61 lines
2.8 KiB
SQL

-- ==========================================
-- 报修管理按钮权限更新脚本
-- 功能:根据角色限制更新按钮权限配置
-- 时间:2025-06-30 17:35:00
-- 说明:实现基于角色的按钮权限控制
-- ==========================================
-- 1. 新增按钮权限到sys_menu表
INSERT INTO sys_menu (
menu_id, menu_name, parent_id, order_num, path, component,
query_param, is_frame, is_cache, menu_type, visible, status,
perms, icon, create_by, create_time, update_by, update_time, remark
) VALUES
-- 更新进度权限(仅维修人员)
(2141, '更新进度', 2110, 12, '', '', '', 1, 0, 'F', '0', '0', 'pm:repairOrder:updateProgress', '#', 1, now(), 1, now(), '更新维修进度权限'),
-- 完成工单权限(仅维修人员)
(2142, '完成工单', 2110, 13, '', '', '', 1, 0, 'F', '0', '0', 'pm:repairOrder:complete', '#', 1, now(), 1, now(), '完成工单权限'),
-- 服务评价权限(仅报修人)
(2143, '服务评价', 2110, 14, '', '', '', 1, 0, 'F', '0', '0', 'pm:repairOrder:evaluate', '#', 1, now(), 1, now(), '服务评价权限'),
-- 查看进度权限(所有用户)
(2144, '查看进度', 2110, 15, '', '', '', 1, 0, 'F', '0', '0', 'pm:repairOrder:progress', '#', 1, now(), 1, now(), '查看工单进度权限')
ON DUPLICATE KEY UPDATE
menu_name = VALUES(menu_name),
perms = VALUES(perms),
remark = VALUES(remark),
update_time = now();
-- 2. 为超级管理员分配所有权限
INSERT IGNORE INTO sys_role_menu (role_id, menu_id)
SELECT 1, menu_id FROM sys_menu WHERE menu_id BETWEEN 2141 AND 2144;
-- 3. 为物业维修管理员分配权限(除服务评价外)
INSERT IGNORE INTO sys_role_menu (role_id, menu_id)
SELECT 6, menu_id FROM sys_menu WHERE menu_id IN (2141, 2142, 2144);
-- 4. 为维修人员分配权限(更新进度、完成工单、查看进度)
INSERT IGNORE INTO sys_role_menu (role_id, menu_id)
SELECT 5, menu_id FROM sys_menu WHERE menu_id IN (2141, 2142, 2144);
-- 5. 为所有用户分配基础查看权限
-- 注意:服务评价权限(2143)不在这里分配,需要前端业务逻辑控制
-- 6. 验证权限配置
SELECT
m.menu_id,
m.menu_name,
m.perms,
GROUP_CONCAT(r.role_name ORDER BY r.role_id) as assigned_roles
FROM sys_menu m
LEFT JOIN sys_role_menu rm ON m.menu_id = rm.menu_id
LEFT JOIN sys_role r ON rm.role_id = r.role_id
WHERE m.menu_id BETWEEN 2141 AND 2144
GROUP BY m.menu_id, m.menu_name, m.perms
ORDER BY m.menu_id;
-- 输出配置完成信息
SELECT '按钮权限配置完成' as message,
'pm:repairOrder:updateProgress - 仅维修人员' as update_progress,
'pm:repairOrder:complete - 仅维修人员' as complete_order,
'pm:repairOrder:evaluate - 业务逻辑控制' as evaluate_service,
'pm:repairOrder:progress - 所有用户' as view_progress;