// ===================================================== // 測試評分完成度匯總功能 // ===================================================== async function testScoringSummary() { console.log('🔧 測試評分完成度匯總功能...\n'); try { // 等待服務器啟動 console.log('⏳ 等待服務器啟動...'); await new Promise(resolve => setTimeout(resolve, 5000)); // 獲取競賽列表 console.log('📊 獲取競賽列表...'); const competitionsResponse = await fetch('http://localhost:3000/api/competitions'); const competitionsData = await competitionsResponse.json(); if (!competitionsData.success || !competitionsData.data || competitionsData.data.length === 0) { console.log('❌ 沒有找到競賽數據'); return; } const competition = competitionsData.data[0]; console.log('✅ 找到競賽:', competition.name, '(ID:', competition.id + ')'); // 測試評分完成度匯總 API console.log('\n📊 測試評分完成度匯總 API...'); const summaryResponse = await fetch(`http://localhost:3000/api/admin/scoring/summary?competitionId=${competition.id}`); const summaryData = await summaryResponse.json(); console.log('📊 評分完成度匯總 API 回應:'); console.log('狀態碼:', summaryResponse.status); console.log('回應數據:', JSON.stringify(summaryData, null, 2)); if (summaryData.success) { console.log('✅ 評分完成度匯總獲取成功!'); const { judges, apps, overallStats } = summaryData.data; console.log('\n📈 總體統計:'); console.log(`- 評審總數: ${overallStats.totalJudges}`); console.log(`- 參賽APP數: ${overallStats.totalApps}`); console.log(`- 已完成評分: ${overallStats.completedScores}`); console.log(`- 總完成率: ${overallStats.overallCompletionRate}%`); console.log('\n👨‍⚖️ 評審完成度:'); judges.forEach((judge, index) => { console.log(`${index + 1}. ${judge.name} (${judge.email})`); console.log(` - 完成度: ${judge.completedCount}/${judge.totalCount} (${judge.completionRate}%)`); console.log(` - 狀態: ${judge.status}`); if (judge.lastScoredAt) { console.log(` - 最後評分時間: ${judge.lastScoredAt}`); } }); console.log('\n📱 參賽APP完成度:'); apps.forEach((app, index) => { console.log(`${index + 1}. ${app.name}${app.teamName ? ` (團隊: ${app.teamName})` : ''}`); console.log(` - 完成度: ${app.scoredCount}/${app.totalJudges} 評審 (${app.completionRate}%)`); console.log(` - 狀態: ${app.status}`); if (app.averageScore) { console.log(` - 平均分: ${app.averageScore}`); } }); } else { console.log('❌ 評分完成度匯總獲取失敗:', summaryData.message); if (summaryData.error) { console.log('錯誤詳情:', summaryData.error); } } } catch (error) { console.error('❌ 測試失敗:', error.message); } } // 執行測試 testScoringSummary();