修正評審連結問題、評審進度條異常
This commit is contained in:
@@ -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 = {
|
||||
|
Reference in New Issue
Block a user