forked from hangshuo652/aurak
649844a657
- 复查功能: PUT /assessment/:id/review * 支持调整最终总分 * 记录复查历史(reviewHistory) * 保存原始分数(originalScore) * 保留复查人、复查时间、复查意见 - 批量审核: POST /question-banks/:bankId/items/batch-review * 支持批量通过/拒绝题目 * 可添加审核意见 - AssessmentSession实体: 添加复查相关字段
52 lines
1.7 KiB
TypeScript
52 lines
1.7 KiB
TypeScript
import { apiClient } from '../../services/apiClient';
|
|
|
|
export interface AssessmentStats {
|
|
totalAttempts: number;
|
|
highestScore: number;
|
|
averageScore: number;
|
|
completionRate: number;
|
|
recentRecords: {
|
|
id: string;
|
|
userId?: string;
|
|
knowledgeBase: string;
|
|
template: string;
|
|
score: number | null;
|
|
status: 'IN_PROGRESS' | 'COMPLETED';
|
|
createdAt: string;
|
|
user?: { id: string };
|
|
}[];
|
|
}
|
|
|
|
export interface StatsQueryParams {
|
|
startDate?: string;
|
|
endDate?: string;
|
|
templateId?: string;
|
|
knowledgeGroupId?: string;
|
|
}
|
|
|
|
export class AssessmentStatsService {
|
|
async getStats(params?: StatsQueryParams): Promise<AssessmentStats> {
|
|
const query = new URLSearchParams();
|
|
if (params?.startDate) query.set('startDate', params.startDate);
|
|
if (params?.endDate) query.set('endDate', params.endDate);
|
|
if (params?.templateId) query.set('templateId', params.templateId);
|
|
if (params?.knowledgeGroupId) query.set('knowledgeGroupId', params.knowledgeGroupId);
|
|
|
|
const queryString = query.toString();
|
|
const url = `/assessment/stats${queryString ? `?${queryString}` : ''}`;
|
|
const { data } = await apiClient.get<AssessmentStats>(url);
|
|
return data;
|
|
}
|
|
|
|
async reviewAssessment(sessionId: string, newScore: number, comment?: string): Promise<any> {
|
|
const response = await apiClient.request(`/assessment/${sessionId}/review`, {
|
|
method: 'PUT',
|
|
headers: { 'Content-Type': 'application/json' },
|
|
body: JSON.stringify({ newScore, comment }),
|
|
});
|
|
if (!response.ok) throw new Error('Failed to review assessment');
|
|
return await response.json();
|
|
}
|
|
}
|
|
|
|
export const assessmentStatsService = new AssessmentStatsService(); |