-- ===================================================================================== -- 1.0.528 · 补 1.0.527 的菜单授权(S8「订单评审耗时」) -- -- 背景:1.0.527 只 INSERT 了 SysMenu 行,未写 SysRoleMenu。 -- Admin.NET 的前端路由由「当前用户已授权菜单」动态构建 —— 菜单存在但未授权 = -- 菜单树里没有 = 路由未注册 = 直接访问 404。冒烟时实测复现。 -- -- 授权口径:**不硬编码角色清单**,而是继承父目录 S8 异常监控(1329008000020) 的现有 -- 授权集合。这样新页面的可见范围与同目录既有页面完全一致,不扩大也不缩小权限面。 -- -- 幂等:按 (RoleId, MenuId) 判存在;Id 用 1329008000027000 + 行号(已验证该区段无冲突)。 -- 注意:Admin.NET 框架表 EnableUnderLine=false → PascalCase(SysRoleMenu / SysMenu)。 -- ===================================================================================== INSERT INTO `SysRoleMenu` (`Id`, `RoleId`, `MenuId`) SELECT 1329008000027000 + ROW_NUMBER() OVER (ORDER BY src.RoleId), src.RoleId, 1329008000027 FROM ( SELECT DISTINCT rm.`RoleId` FROM `SysRoleMenu` rm WHERE rm.`MenuId` = 1329008000020 AND NOT EXISTS ( SELECT 1 FROM (SELECT `RoleId` FROM `SysRoleMenu` WHERE `MenuId` = 1329008000027) t WHERE t.`RoleId` = rm.`RoleId` ) ) src;