优化2 patch2

This commit is contained in:
2026-07-21 16:22:29 +08:00 Unverified
parent 4929858ec2
commit 722bb6f016
13 changed files with 381 additions and 65 deletions
+18 -15
View File
@@ -100,7 +100,7 @@ const initializeDatabase = () => createBaseDatabase({
});
const persistentDatabase = await createDatabase({ root, seed: initializeDatabase });
const cache = await createRedisCache();
const resultCacheWriteMethods = new Set(['saveResult', 'saveResults', 'updateFeatureScore', 'updateExam', 'archiveExam']);
const resultCacheWriteMethods = new Set(['saveResult', 'saveResults', 'updateFeatureScore', 'updateFeatureScores', 'updateExam', 'archiveExam']);
const database = withCacheInvalidation(persistentDatabase, cache, (method, args) => {
const namespaces = ['public'];
const instance = args[0];
@@ -558,23 +558,26 @@ function excelRowsForResource(db, user, resource, searchParams) {
});
if (resource === 'results') {
const examId = cleanText(searchParams.get('examId'), 64);
const scopedRegistrations = db.registrations.filter(item => registrationInScope(db, user, item));
return db.results.filter(result => scopedRegistrations.some(item => item.id === result.registrationId && (!examId || item.examId === examId))).map(result => {
const registration = db.registrations.find(item => item.id === result.registrationId);
const scopedRegistrations = db.registrations.filter(item => item.status === 'approved' && registrationInScope(db, user, item) && (!examId || item.examId === examId));
return scopedRegistrations.flatMap(registration => {
const exam = db.exams.find(item => item.id === registration?.examId);
const subject = exam?.subjects.find(item => item.id === result.subjectId);
const account = db.users.find(item => item.id === registration?.userId);
const profile = db.candidateProfiles.find(item => item.userId === registration?.userId);
const evaluation = subjectPassEvaluation(db, result, subject);
const rank = resultRankInfo(db, result);
return {
candidateNumber: account?.candidateNumber || '', candidateName: profile?.name || account?.displayName || '',
examCode: exam?.code || '', examName: exam?.name || '', subjectName: subject?.name || '',
fullScore: subject?.fullScore || '', passRule: subjectPassText(subject), passScore: evaluation.passScore ?? '', score: result.score,
rank: rank.rank, rankPercent: rank.rankPercent,
qualified: evaluation.qualified == null ? '不判定' : evaluation.qualified ? '达线' : '未达线',
grade: result.published ? resultRankInfo(db, result).grade : '待发布', published: result.published ? '发布' : '不发布', updatedAt: result.updatedAt || result.publishedAt || ''
};
const schoolClass = db.classes.find(item => item.id === profile?.classId);
return (exam?.subjects || []).filter(subject => registration.subjectIds.includes(subject.id)).map(subject => {
const result = db.results.find(item => item.registrationId === registration.id && item.subjectId === subject.id);
const evaluation = result ? subjectPassEvaluation(db, result, subject) : null;
const rank = result ? resultRankInfo(db, result) : null;
return {
candidateNumber: account?.candidateNumber || registration.registrationNumber || '', cardNumber: registration.admitCard?.number || '',
candidateName: profile?.name || account?.displayName || '', schoolName: profile?.school || '', className: schoolClass?.name || profile?.grade || '',
examCode: exam?.code || '', examName: exam?.name || '', subjectName: subject?.name || '',
fullScore: subject?.fullScore || '', passRule: subjectPassText(subject), passScore: evaluation?.passScore ?? '', score: result?.score ?? '',
rank: rank?.rank ?? '', rankPercent: rank?.rankPercent ?? '',
qualified: !result || evaluation?.qualified == null ? '' : evaluation.qualified ? '达线' : '未达线',
grade: result ? (result.published ? rank?.grade || '' : '待发布') : '', published: result?.published ? '发布' : '不发布', updatedAt: result?.updatedAt || result?.publishedAt || ''
};
});
});
}
if (resource === 'admit_cards') {