103 lines
2.9 KiB
TypeScript
103 lines
2.9 KiB
TypeScript
// 加载环境变量(必须在其他导入之前)
|
|
import * as dotenv from 'dotenv';
|
|
import * as path from 'path';
|
|
|
|
// 根据 NODE_ENV 加载对应的环境配置文件
|
|
const nodeEnv = process.env.NODE_ENV || 'development';
|
|
const envFile = `.env.${nodeEnv}`;
|
|
// scripts 目录的父目录就是 backend 目录
|
|
const backendDir = path.resolve(__dirname, '..');
|
|
const envPath = path.resolve(backendDir, envFile);
|
|
|
|
// 尝试加载环境特定的配置文件
|
|
dotenv.config({ path: envPath });
|
|
|
|
// 如果环境特定文件不存在,尝试加载默认的 .env 文件
|
|
if (!process.env.DATABASE_URL) {
|
|
dotenv.config({ path: path.resolve(backendDir, '.env') });
|
|
}
|
|
|
|
import { PrismaClient } from '@prisma/client';
|
|
|
|
const prisma = new PrismaClient();
|
|
|
|
async function queryContestSubmitTime() {
|
|
try {
|
|
const contestName = '3D打印作品大赛2';
|
|
|
|
const contest = await prisma.contest.findFirst({
|
|
where: {
|
|
contestName: {
|
|
contains: contestName,
|
|
},
|
|
validState: 1,
|
|
},
|
|
select: {
|
|
id: true,
|
|
contestName: true,
|
|
submitStartTime: true,
|
|
submitEndTime: true,
|
|
submitRule: true,
|
|
startTime: true,
|
|
endTime: true,
|
|
},
|
|
});
|
|
|
|
if (!contest) {
|
|
console.log(`未找到名为"${contestName}"的比赛`);
|
|
|
|
// 尝试查找包含"3D打印"的比赛
|
|
const contests = await prisma.contest.findMany({
|
|
where: {
|
|
contestName: {
|
|
contains: '3D打印',
|
|
},
|
|
validState: 1,
|
|
},
|
|
select: {
|
|
id: true,
|
|
contestName: true,
|
|
submitStartTime: true,
|
|
submitEndTime: true,
|
|
},
|
|
orderBy: {
|
|
createTime: 'desc',
|
|
},
|
|
});
|
|
|
|
if (contests.length > 0) {
|
|
console.log('\n找到以下包含"3D打印"的比赛:');
|
|
contests.forEach((c) => {
|
|
console.log(`\n比赛名称: ${c.contestName}`);
|
|
console.log(`作品提交开始时间: ${c.submitStartTime}`);
|
|
console.log(`作品提交结束时间: ${c.submitEndTime}`);
|
|
});
|
|
} else {
|
|
console.log('未找到任何包含"3D打印"的比赛');
|
|
}
|
|
return;
|
|
}
|
|
|
|
console.log('='.repeat(60));
|
|
console.log('比赛信息');
|
|
console.log('='.repeat(60));
|
|
console.log(`比赛ID: ${contest.id}`);
|
|
console.log(`比赛名称: ${contest.contestName}`);
|
|
console.log(`\n作品提交时间:`);
|
|
console.log(` 开始时间: ${contest.submitStartTime}`);
|
|
console.log(` 结束时间: ${contest.submitEndTime}`);
|
|
console.log(` 提交规则: ${contest.submitRule === 'once' ? '单次提交' : '可多次提交'}`);
|
|
console.log(`\n比赛时间:`);
|
|
console.log(` 开始时间: ${contest.startTime}`);
|
|
console.log(` 结束时间: ${contest.endTime}`);
|
|
console.log('='.repeat(60));
|
|
} catch (error) {
|
|
console.error('查询失败:', error);
|
|
} finally {
|
|
await prisma.$disconnect();
|
|
}
|
|
}
|
|
|
|
queryContestSubmitTime();
|
|
|