50 lines
1.4 KiB
TypeScript
50 lines
1.4 KiB
TypeScript
import { PrismaClient } from '@prisma/client';
|
|
|
|
const prisma = new PrismaClient();
|
|
|
|
async function main() {
|
|
// 获取所有赛事活动相关菜单
|
|
const activityMenus = await prisma.menu.findMany({
|
|
where: { path: { startsWith: '/student-activities' } },
|
|
orderBy: { sort: 'asc' }
|
|
});
|
|
|
|
console.log('📋 赛事活动相关菜单:');
|
|
activityMenus.forEach(m => {
|
|
console.log(` ID: ${m.id} | ${m.name} | ${m.path}`);
|
|
});
|
|
|
|
// 获取租户1的菜单分配
|
|
console.log('\n📋 租户1的菜单分配:');
|
|
const tenantMenus = await prisma.tenantMenu.findMany({
|
|
where: { tenantId: 1 },
|
|
include: { menu: true }
|
|
});
|
|
|
|
const assignedMenuIds = tenantMenus.map(tm => tm.menuId);
|
|
|
|
// 检查哪些赛事活动菜单已分配
|
|
console.log('\n赛事活动菜单分配状态:');
|
|
activityMenus.forEach(m => {
|
|
const assigned = assignedMenuIds.includes(m.id);
|
|
console.log(` ${assigned ? '✅' : '❌'} ${m.name} (ID: ${m.id})`);
|
|
});
|
|
|
|
// 补充分配缺失的菜单
|
|
console.log('\n📝 补充分配缺失的菜单...');
|
|
for (const menu of activityMenus) {
|
|
if (!assignedMenuIds.includes(menu.id)) {
|
|
await prisma.tenantMenu.create({
|
|
data: { tenantId: 1, menuId: menu.id }
|
|
});
|
|
console.log(` ✅ 已分配: ${menu.name}`);
|
|
}
|
|
}
|
|
|
|
console.log('\n✅ 完成!');
|
|
}
|
|
|
|
main()
|
|
.catch(console.error)
|
|
.finally(() => prisma.$disconnect());
|