import { PrismaClient } from '@prisma/client'; const prisma = new PrismaClient(); async function main() { console.log('🔧 修复重复的赛事活动菜单...\n'); // 查找原来的赛事活动菜单(在赛事管理下的,路径是 /contests/activities) const oldActivityMenu = await prisma.menu.findFirst({ where: { path: '/contests/activities' } }); if (oldActivityMenu) { // 把它改回 contest:read 权限,这样只有管理员能看到 await prisma.menu.update({ where: { id: oldActivityMenu.id }, data: { permission: 'contest:read' } }); console.log('✅ 原赛事活动菜单权限更新为 contest:read'); } // 验证最终结果 console.log('\n📋 最终菜单配置:'); const menus = await prisma.menu.findMany({ where: { OR: [ { path: '/contests/activities' }, { path: '/student-activities' }, ] }, select: { name: true, path: true, permission: true, parentId: true } }); menus.forEach(m => { const type = m.parentId ? '(子菜单)' : '(一级菜单)'; console.log(` - ${m.name} ${type}`); console.log(` 路径: ${m.path}`); console.log(` 权限: ${m.permission}`); }); console.log('\n✅ 修复完成!'); } main() .catch(console.error) .finally(() => prisma.$disconnect());