修正評審連結問題、評審進度條異常

This commit is contained in:
2025-09-25 22:49:24 +08:00
parent b542ca49dd
commit cc92540952
3 changed files with 102 additions and 125 deletions

View File

@@ -12,7 +12,7 @@ export async function GET(request: NextRequest) {
// 動態計算每個競賽的狀態
const now = new Date();
const competitionsWithCalculatedStatus = competitions.map(competition => {
const competitionsWithCalculatedStatus = await Promise.all(competitions.map(async (competition) => {
const startDate = new Date(competition.start_date);
const endDate = new Date(competition.end_date);
@@ -29,14 +29,26 @@ export async function GET(request: NextRequest) {
} else if (nowUTC >= startDateUTC && nowUTC <= endDateUTC) {
calculatedStatus = 'active'; // 進行中
} else if (nowUTC > endDateUTC) {
calculatedStatus = 'completed'; // 已完成
// 競賽結束後,檢查評分進度
try {
const { ScoringService } = await import('@/lib/services/database-service');
const scoringProgress = await ScoringService.getCompetitionScoringProgress(competition.id);
if (scoringProgress.percentage >= 100) {
calculatedStatus = 'completed'; // 評分完成,競賽完成
} else {
calculatedStatus = 'judging'; // 評分未完成,仍在評審中
}
} catch (error) {
console.error('獲取評分進度失敗,使用預設狀態:', error);
calculatedStatus = 'judging'; // 無法獲取進度時,預設為評審中
}
}
return {
...competition,
status: calculatedStatus
};
});
}));
// 計算統計數據
const stats = {