-- 重建后台管理端菜单/权限目录 -- 适用场景:sys_menu 已清空,需重新初始化;会清理 sys_role_menu 中失效菜单关联 DELETE rm FROM sys_role_menu rm LEFT JOIN sys_menu m ON m.id = rm.menu_id WHERE m.id IS NULL; -- 首页 INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, 0, 1, '首页', NULL, 10, NULL, 0 FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_menu WHERE pid = 0 AND menu_type = 1 AND menu_name = '首页' AND del_flag = 0 ); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 2, '首页', 'dashboard:page', 10, '/dashboard', 0 FROM sys_menu p WHERE p.pid = 0 AND p.menu_type = 1 AND p.menu_name = '首页' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE route_path = '/dashboard' AND del_flag = 0); -- 系统 INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, 0, 1, '系统', NULL, 20, NULL, 0 FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_menu WHERE pid = 0 AND menu_type = 1 AND menu_name = '系统' AND del_flag = 0 ); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 2, '审核配置', 'config:approval-settings:page', 10, '/system/approval-settings', 0 FROM sys_menu p WHERE p.pid = 0 AND p.menu_type = 1 AND p.menu_name = '系统' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE route_path = '/system/approval-settings' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '保存配置', 'config:approval-settings:update', 10, NULL, 0 FROM sys_menu p WHERE p.route_path = '/system/approval-settings' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'config:approval-settings:update' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 2, '预约配置', 'config:booking-settings:page', 20, '/system/booking-settings', 0 FROM sys_menu p WHERE p.pid = 0 AND p.menu_type = 1 AND p.menu_name = '系统' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE route_path = '/system/booking-settings' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '保存配置', 'config:booking-settings:update', 10, NULL, 0 FROM sys_menu p WHERE p.route_path = '/system/booking-settings' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'config:booking-settings:update' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 2, '来访事由配置', 'config:visit-reasons:page', 30, '/system/visit-reasons', 0 FROM sys_menu p WHERE p.pid = 0 AND p.menu_type = 1 AND p.menu_name = '系统' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE route_path = '/system/visit-reasons' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '新增', 'config:visit-reasons:create', 10, NULL, 0 FROM sys_menu p WHERE p.route_path = '/system/visit-reasons' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'config:visit-reasons:create' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '编辑', 'config:visit-reasons:update', 20, NULL, 0 FROM sys_menu p WHERE p.route_path = '/system/visit-reasons' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'config:visit-reasons:update' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '删除', 'config:visit-reasons:delete', 30, NULL, 0 FROM sys_menu p WHERE p.route_path = '/system/visit-reasons' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'config:visit-reasons:delete' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 2, '内容设置', 'config:content-settings:page', 40, '/system/content-settings', 0 FROM sys_menu p WHERE p.pid = 0 AND p.menu_type = 1 AND p.menu_name = '系统' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE route_path = '/system/content-settings' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '保存配置', 'config:content-settings:update', 10, NULL, 0 FROM sys_menu p WHERE p.route_path = '/system/content-settings' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'config:content-settings:update' AND del_flag = 0); -- 员工管理 INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, 0, 1, '员工管理', NULL, 30, NULL, 0 FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_menu WHERE pid = 0 AND menu_type = 1 AND menu_name = '员工管理' AND del_flag = 0 ); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 2, '部门管理', 'sys:depts:page', 10, '/staff/depts', 0 FROM sys_menu p WHERE p.pid = 0 AND p.menu_type = 1 AND p.menu_name = '员工管理' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE route_path = '/staff/depts' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '新增', 'sys:depts:create', 10, NULL, 0 FROM sys_menu p WHERE p.route_path = '/staff/depts' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'sys:depts:create' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '编辑', 'sys:depts:update', 20, NULL, 0 FROM sys_menu p WHERE p.route_path = '/staff/depts' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'sys:depts:update' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '删除', 'sys:depts:delete', 30, NULL, 0 FROM sys_menu p WHERE p.route_path = '/staff/depts' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'sys:depts:delete' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 2, '员工管理', 'sys:staff:page', 20, '/staff/employees', 0 FROM sys_menu p WHERE p.pid = 0 AND p.menu_type = 1 AND p.menu_name = '员工管理' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE route_path = '/staff/employees' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '查看详情', 'sys:staff:detail', 10, NULL, 0 FROM sys_menu p WHERE p.route_path = '/staff/employees' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'sys:staff:detail' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '新增', 'sys:staff:create', 20, NULL, 0 FROM sys_menu p WHERE p.route_path = '/staff/employees' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'sys:staff:create' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '编辑', 'sys:staff:update', 30, NULL, 0 FROM sys_menu p WHERE p.route_path = '/staff/employees' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'sys:staff:update' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '启停账号', 'sys:staff:status', 40, NULL, 0 FROM sys_menu p WHERE p.route_path = '/staff/employees' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'sys:staff:status' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '删除', 'sys:staff:delete', 50, NULL, 0 FROM sys_menu p WHERE p.route_path = '/staff/employees' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'sys:staff:delete' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '导入', 'sys:staff:import', 60, NULL, 0 FROM sys_menu p WHERE p.route_path = '/staff/employees' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'sys:staff:import' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 2, '人员分组', 'sys:staff-groups:page', 30, '/staff/groups', 0 FROM sys_menu p WHERE p.pid = 0 AND p.menu_type = 1 AND p.menu_name = '员工管理' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE route_path = '/staff/groups' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '查看详情', 'sys:staff-groups:detail', 10, NULL, 0 FROM sys_menu p WHERE p.route_path = '/staff/groups' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'sys:staff-groups:detail' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '新增', 'sys:staff-groups:create', 20, NULL, 0 FROM sys_menu p WHERE p.route_path = '/staff/groups' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'sys:staff-groups:create' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '编辑', 'sys:staff-groups:update', 30, NULL, 0 FROM sys_menu p WHERE p.route_path = '/staff/groups' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'sys:staff-groups:update' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '成员维护', 'sys:staff-groups:members', 40, NULL, 0 FROM sys_menu p WHERE p.route_path = '/staff/groups' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'sys:staff-groups:members' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '删除', 'sys:staff-groups:delete', 50, NULL, 0 FROM sys_menu p WHERE p.route_path = '/staff/groups' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'sys:staff-groups:delete' AND del_flag = 0); -- 区域 INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, 0, 1, '区域', NULL, 40, NULL, 0 FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_menu WHERE pid = 0 AND menu_type = 1 AND menu_name = '区域' AND del_flag = 0 ); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 2, '通行区域管理', 'sys:pass-areas:page', 10, '/region/pass-areas', 0 FROM sys_menu p WHERE p.pid = 0 AND p.menu_type = 1 AND p.menu_name = '区域' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE route_path = '/region/pass-areas' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '查看详情', 'sys:pass-areas:detail', 10, NULL, 0 FROM sys_menu p WHERE p.route_path = '/region/pass-areas' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'sys:pass-areas:detail' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '新增', 'sys:pass-areas:create', 20, NULL, 0 FROM sys_menu p WHERE p.route_path = '/region/pass-areas' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'sys:pass-areas:create' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '编辑', 'sys:pass-areas:update', 30, NULL, 0 FROM sys_menu p WHERE p.route_path = '/region/pass-areas' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'sys:pass-areas:update' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '删除', 'sys:pass-areas:delete', 40, NULL, 0 FROM sys_menu p WHERE p.route_path = '/region/pass-areas' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'sys:pass-areas:delete' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 2, '属地单位管理', 'sys:local-units:page', 20, '/region/local-units', 0 FROM sys_menu p WHERE p.pid = 0 AND p.menu_type = 1 AND p.menu_name = '区域' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE route_path = '/region/local-units' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '查看详情', 'sys:local-units:detail', 10, NULL, 0 FROM sys_menu p WHERE p.route_path = '/region/local-units' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'sys:local-units:detail' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '新增', 'sys:local-units:create', 20, NULL, 0 FROM sys_menu p WHERE p.route_path = '/region/local-units' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'sys:local-units:create' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '编辑', 'sys:local-units:update', 30, NULL, 0 FROM sys_menu p WHERE p.route_path = '/region/local-units' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'sys:local-units:update' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '删除', 'sys:local-units:delete', 40, NULL, 0 FROM sys_menu p WHERE p.route_path = '/region/local-units' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'sys:local-units:delete' AND del_flag = 0); -- 访客管理 INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, 0, 1, '访客管理', NULL, 50, NULL, 0 FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_menu WHERE pid = 0 AND menu_type = 1 AND menu_name = '访客管理' AND del_flag = 0 ); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 2, '访客信息', 'sys:visitor-users:page', 10, '/visitor-info', 0 FROM sys_menu p WHERE p.pid = 0 AND p.menu_type = 1 AND p.menu_name = '访客管理' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE route_path = '/visitor-info' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '查看详情', 'sys:visitor-users:detail', 10, NULL, 0 FROM sys_menu p WHERE p.route_path = '/visitor-info' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'sys:visitor-users:detail' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '编辑', 'sys:visitor-users:update', 20, NULL, 0 FROM sys_menu p WHERE p.route_path = '/visitor-info' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'sys:visitor-users:update' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '启停账号', 'sys:visitor-users:status', 30, NULL, 0 FROM sys_menu p WHERE p.route_path = '/visitor-info' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'sys:visitor-users:status' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '删除', 'sys:visitor-users:delete', 40, NULL, 0 FROM sys_menu p WHERE p.route_path = '/visitor-info' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'sys:visitor-users:delete' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '导出', 'sys:visitor-users:export', 50, NULL, 0 FROM sys_menu p WHERE p.route_path = '/visitor-info' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'sys:visitor-users:export' AND del_flag = 0); -- 记录与日志 INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, 0, 1, '记录与日志', NULL, 60, NULL, 0 FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_menu WHERE pid = 0 AND menu_type = 1 AND menu_name = '记录与日志' AND del_flag = 0 ); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 2, '预约记录', 'appointments:page', 10, '/appointments', 0 FROM sys_menu p WHERE p.pid = 0 AND p.menu_type = 1 AND p.menu_name = '记录与日志' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE route_path = '/appointments' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '查看详情', 'appointments:detail', 10, NULL, 0 FROM sys_menu p WHERE p.route_path = '/appointments' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'appointments:detail' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '导出', 'appointments:export', 20, NULL, 0 FROM sys_menu p WHERE p.route_path = '/appointments' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'appointments:export' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 2, '待办日志', 'approvals:page', 20, '/approvals', 0 FROM sys_menu p WHERE p.pid = 0 AND p.menu_type = 1 AND p.menu_name = '记录与日志' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE route_path = '/approvals' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '处理审批', 'approvals:action', 10, NULL, 0 FROM sys_menu p WHERE p.route_path = '/approvals' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'approvals:action' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 2, '导出任务', 'exports:page', 30, '/exports', 0 FROM sys_menu p WHERE p.pid = 0 AND p.menu_type = 1 AND p.menu_name = '记录与日志' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE route_path = '/exports' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '发起导出', 'exports:enqueue', 10, NULL, 0 FROM sys_menu p WHERE p.route_path = '/exports' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'exports:enqueue' AND del_flag = 0); -- 账号管理 INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, 0, 1, '账号管理', NULL, 70, NULL, 0 FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_menu WHERE pid = 0 AND menu_type = 1 AND menu_name = '账号管理' AND del_flag = 0 ); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 2, '平台管理员', 'sys:users:page', 10, '/users', 0 FROM sys_menu p WHERE p.pid = 0 AND p.menu_type = 1 AND p.menu_name = '账号管理' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE route_path = '/users' AND del_flag = 0); INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag) SELECT REPLACE(UUID(), '-', ''), 1, p.id, 2, '角色管理', 'sys:roles:page', 20, '/roles', 0 FROM sys_menu p WHERE p.pid = 0 AND p.menu_type = 1 AND p.menu_name = '账号管理' AND p.del_flag = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE route_path = '/roles' AND del_flag = 0); -- ADMIN 自动绑定所有菜单 INSERT INTO sys_role_menu (uuid, version, role_id, menu_id, del_flag) SELECT LOWER(MD5(CONCAT(r.id, ':', m.id, ':', RAND()))), 1, r.id, m.id, 0 FROM sys_role r JOIN sys_menu m ON m.del_flag = 0 LEFT JOIN sys_role_menu rm ON rm.role_id = r.id AND rm.menu_id = m.id AND rm.del_flag = 0 WHERE r.role_code = 'ADMIN' AND r.del_flag = 0 AND rm.id IS NULL;