This commit is contained in:
2026-06-13 10:58:53 +08:00
parent f9311292cc
commit c6b2bb7800
5 changed files with 46 additions and 32 deletions

View File

@@ -12,7 +12,10 @@ import csv from 'csv-parser';
import { Word, WordRecord, WordSet, VocabularyTestAttempt, VocabularyTestRecord } from '../models/Vocabulary';
import mongoose from 'mongoose';
import { INVALIDATING_VOCABULARY_RISK_FLAGS } from '../utils/vocabularyRisk';
import { buildVocabularySummaryFilters } from '../utils/vocabularyAuditFilters';
import {
applyVocabularySummaryItemFilters,
buildVocabularySummaryFilters
} from '../utils/vocabularyAuditFilters';
const router = express.Router();
const adminController = new AdminController();
@@ -542,7 +545,7 @@ router.get('/vocabulary/test-pass-summary', adminAuth, async (req, res) => {
return res.status(400).json({ message: summaryFilters.error });
}
const { userMatchStages, baseMatch } = summaryFilters;
const { userMatchStages, baseMatch, minUniqueWords } = summaryFilters;
const validPassItems = await VocabularyTestRecord.aggregate([
{
$match: {
@@ -691,7 +694,7 @@ router.get('/vocabulary/test-pass-summary', adminAuth, async (req, res) => {
});
});
const items = Array.from(itemMap.values()).sort((left, right) => {
const items = applyVocabularySummaryItemFilters(Array.from(itemMap.values()), minUniqueWords).sort((left, right) => {
const passedDelta = (right.passedWords || 0) - (left.passedWords || 0);
if (passedDelta !== 0) return passedDelta;