完成評審評分機制
This commit is contained in:
63
app/api/judge/scoring-tasks/route.ts
Normal file
63
app/api/judge/scoring-tasks/route.ts
Normal file
@@ -0,0 +1,63 @@
|
||||
import { NextRequest, NextResponse } from 'next/server';
|
||||
import { ScoringService, JudgeService } from '@/lib/services/database-service';
|
||||
|
||||
// 獲取評審的評分任務
|
||||
export async function GET(request: NextRequest) {
|
||||
try {
|
||||
const { searchParams } = new URL(request.url);
|
||||
const judgeId = searchParams.get('judgeId');
|
||||
const competitionId = searchParams.get('competitionId');
|
||||
|
||||
if (!judgeId) {
|
||||
return NextResponse.json({
|
||||
success: false,
|
||||
message: '缺少評審ID',
|
||||
error: 'judgeId 為必填參數'
|
||||
}, { status: 400 });
|
||||
}
|
||||
|
||||
// 獲取評審信息
|
||||
const judge = await JudgeService.getJudgeById(judgeId);
|
||||
if (!judge) {
|
||||
return NextResponse.json({
|
||||
success: false,
|
||||
message: '評審不存在',
|
||||
error: '找不到指定的評審'
|
||||
}, { status: 404 });
|
||||
}
|
||||
|
||||
// 獲取評審的評分任務
|
||||
let scoringTasks = [];
|
||||
|
||||
if (competitionId) {
|
||||
// 獲取特定競賽的評分任務
|
||||
scoringTasks = await JudgeService.getJudgeScoringTasks(judgeId, competitionId);
|
||||
} else {
|
||||
// 獲取所有評分任務
|
||||
scoringTasks = await JudgeService.getJudgeScoringTasks(judgeId);
|
||||
}
|
||||
|
||||
return NextResponse.json({
|
||||
success: true,
|
||||
message: '評分任務獲取成功',
|
||||
data: {
|
||||
judge: {
|
||||
id: judge.id,
|
||||
name: judge.name,
|
||||
title: judge.title,
|
||||
department: judge.department,
|
||||
specialty: judge.specialty || '評審專家'
|
||||
},
|
||||
tasks: scoringTasks
|
||||
}
|
||||
});
|
||||
|
||||
} catch (error) {
|
||||
console.error('獲取評分任務失敗:', error);
|
||||
return NextResponse.json({
|
||||
success: false,
|
||||
message: '獲取評分任務失敗',
|
||||
error: error instanceof Error ? error.message : '未知錯誤'
|
||||
}, { status: 500 });
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user