monaco-editor-lsp-next/prisma/fill-testcase-results.ts
2025-06-21 17:58:00 +08:00

37 lines
1.2 KiB
TypeScript

import { PrismaClient, Status } from "@/generated/client";
const prisma = new PrismaClient();
async function fillTestcaseResults() {
const submissions = await prisma.submission.findMany();
let count = 0;
for (const submission of submissions) {
const testcases = await prisma.testcase.findMany({
where: { problemId: submission.problemId },
});
for (const testcase of testcases) {
// 检查是否已存在,避免重复
const exists = await prisma.testcaseResult.findFirst({
where: {
submissionId: submission.id,
testcaseId: testcase.id,
},
});
if (!exists) {
await prisma.testcaseResult.create({
data: {
isCorrect: submission.status === Status.AC,
output: submission.status === Status.AC ? "正确答案" : "错误答案",
timeUsage: Math.floor(Math.random() * 1000) + 1,
memoryUsage: Math.floor(Math.random() * 128) + 1,
submissionId: submission.id,
testcaseId: testcase.id,
},
});
count++;
}
}
}
console.log(`已为 ${count} 个提交生成测试用例结果`);
}
fillTestcaseResults().finally(() => prisma.$disconnect());