admin/FINAL_FIX_ALL.sql

146 lines
7.3 KiB
SQL
Raw Permalink 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.

-- 最终完整修复所有路由问题
USE soybean_admin;
-- ============================================
-- 第一步:修复所有路由的 name 字段
-- 必须与前端 routeMap 完全一致
-- ============================================
-- 设备管理
UPDATE sys_route SET name = 'device' WHERE route_id = 'device';
UPDATE sys_route SET name = 'device_list' WHERE route_id = 'device_list';
UPDATE sys_route SET name = 'device_online' WHERE route_id = 'device_online';
UPDATE sys_route SET name = 'device_power' WHERE route_id = 'device_power';
UPDATE sys_route SET name = 'device_monitor' WHERE route_id = 'device_monitor';
UPDATE sys_route SET name = 'device_group' WHERE route_id = 'device_group';
-- 屏幕监控
UPDATE sys_route SET name = 'screen' WHERE route_id = 'screen';
UPDATE sys_route SET name = 'screen_wall' WHERE route_id = 'screen_wall';
UPDATE sys_route SET name = 'screen_control' WHERE route_id = 'screen_control';
UPDATE sys_route SET name = 'screen_record' WHERE route_id = 'screen_record';
-- 用户管理(关键!)
UPDATE sys_route SET name = 'user-manage' WHERE route_id = 'user_manage';
UPDATE sys_route SET name = 'user-manage_list' WHERE route_id = 'user_list';
UPDATE sys_route SET name = 'user-manage_role' WHERE route_id = 'user_role';
UPDATE sys_route SET name = 'user-manage_permission' WHERE route_id = 'user_permission';
-- 申请管理
UPDATE sys_route SET name = 'application' WHERE route_id = 'application';
UPDATE sys_route SET name = 'application_approval' WHERE route_id = 'application_approval';
UPDATE sys_route SET name = 'application_history' WHERE route_id = 'application_history';
-- 系统设置
UPDATE sys_route SET name = 'system' WHERE route_id = 'system';
UPDATE sys_route SET name = 'system_amt' WHERE route_id = 'system_amt';
UPDATE sys_route SET name = 'system_agent' WHERE route_id = 'system_agent';
UPDATE sys_route SET name = 'system_log' WHERE route_id = 'system_log';
-- 我的设备
UPDATE sys_route SET name = 'my-device' WHERE route_id = 'my_device';
UPDATE sys_route SET name = 'my-device_status' WHERE route_id = 'my_device_status';
UPDATE sys_route SET name = 'my-device_power-control' WHERE route_id = 'my_device_power';
UPDATE sys_route SET name = 'my-device_remote-control' WHERE route_id = 'my_device_remote';
-- 设备申请
UPDATE sys_route SET name = 'my-application' WHERE route_id = 'my_application';
UPDATE sys_route SET name = 'my-application_apply' WHERE route_id = 'my_application_apply';
UPDATE sys_route SET name = 'my-application_my-list' WHERE route_id = 'my_application_list';
-- ============================================
-- 第二步:修复所有组件路径
-- 父路由用 layout.base子路由用 view.xxx
-- ============================================
-- 父路由
UPDATE sys_route SET component = 'layout.base' WHERE route_id IN ('device', 'screen', 'user_manage', 'application', 'system', 'my_device', 'my_application');
-- 设备管理子路由
UPDATE sys_route SET component = 'view.device_list' WHERE route_id = 'device_list';
UPDATE sys_route SET component = 'view.device_online' WHERE route_id = 'device_online';
UPDATE sys_route SET component = 'view.device_power' WHERE route_id = 'device_power';
UPDATE sys_route SET component = 'view.device_monitor' WHERE route_id = 'device_monitor';
UPDATE sys_route SET component = 'view.device_group' WHERE route_id = 'device_group';
-- 屏幕监控子路由
UPDATE sys_route SET component = 'view.screen_wall' WHERE route_id = 'screen_wall';
UPDATE sys_route SET component = 'view.screen_control' WHERE route_id = 'screen_control';
UPDATE sys_route SET component = 'view.screen_record' WHERE route_id = 'screen_record';
-- 用户管理子路由
UPDATE sys_route SET component = 'view.user-manage_list' WHERE route_id = 'user_list';
UPDATE sys_route SET component = 'view.user-manage_role' WHERE route_id = 'user_role';
UPDATE sys_route SET component = 'view.user-manage_permission' WHERE route_id = 'user_permission';
-- 申请管理子路由
UPDATE sys_route SET component = 'view.application_approval' WHERE route_id = 'application_approval';
UPDATE sys_route SET component = 'view.application_history' WHERE route_id = 'application_history';
-- 系统设置子路由
UPDATE sys_route SET component = 'view.system_amt' WHERE route_id = 'system_amt';
UPDATE sys_route SET component = 'view.system_agent' WHERE route_id = 'system_agent';
UPDATE sys_route SET component = 'view.system_log' WHERE route_id = 'system_log';
-- 我的设备子路由
UPDATE sys_route SET component = 'view.my-device_status' WHERE route_id = 'my_device_status';
UPDATE sys_route SET component = 'view.my-device_power-control' WHERE route_id = 'my_device_power';
UPDATE sys_route SET component = 'view.my-device_remote-control' WHERE route_id = 'my_device_remote';
-- 设备申请子路由
UPDATE sys_route SET component = 'view.my-application_apply' WHERE route_id = 'my_application_apply';
UPDATE sys_route SET component = 'view.my-application_my-list' WHERE route_id = 'my_application_list';
-- ============================================
-- 第三步:更新角色菜单配置(最关键!)
-- 必须包含所有父路由和子路由的 name
-- ============================================
UPDATE sys_role
SET menus = 'device,device_list,device_group,device_monitor,device_online,device_power,screen,screen_wall,screen_control,screen_record,user-manage,user-manage_list,user-manage_role,user-manage_permission,application,application_approval,application_history,system,system_agent,system_amt,system_log,my-device,my-device_status,my-device_remote-control,my-device_power-control,my-application,my-application_apply,my-application_my-list'
WHERE role_code = 'R_SUPER';
UPDATE sys_role
SET menus = 'device,device_list,device_group,device_monitor,device_online,device_power,screen,screen_wall,screen_control,screen_record,user-manage,user-manage_list,user-manage_role,application,application_approval,application_history'
WHERE role_code = 'R_ADMIN';
UPDATE sys_role
SET menus = 'my-device,my-device_status,my-device_remote-control,my-device_power-control,my-application,my-application_apply,my-application_my-list'
WHERE role_code = 'R_USER';
-- ============================================
-- 第四步:验证修复结果
-- ============================================
SELECT '========================================' AS '';
SELECT '用户管理路由配置' AS '';
SELECT '========================================' AS '';
SELECT route_id, name, path, component
FROM sys_route
WHERE route_id IN ('user_manage', 'user_list', 'user_role', 'user_permission')
ORDER BY order_num;
SELECT '' AS '';
SELECT '========================================' AS '';
SELECT 'R_SUPER 角色菜单配置前200字符' AS '';
SELECT '========================================' AS '';
SELECT role_code, role_name, SUBSTRING(menus, 1, 200) AS menus_preview
FROM sys_role
WHERE role_code = 'R_SUPER';
SELECT '' AS '';
SELECT '========================================' AS '';
SELECT '检查子路由是否在角色配置中' AS '';
SELECT '========================================' AS '';
SELECT
r.name AS route_name,
CASE
WHEN role.menus LIKE CONCAT('%', r.name, '%') THEN '✓ YES'
ELSE '✗ NO - 这会导致路由被过滤!'
END AS in_role_config
FROM sys_route r
CROSS JOIN sys_role role
WHERE role.role_code = 'R_SUPER'
AND r.route_id IN ('user_manage', 'user_list', 'user_role', 'user_permission')
ORDER BY r.order_num;