// 加载环境变量(必须在其他导入之前) 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();