From 6359a43f9034e8700c854dc003c3a0db61bc123f Mon Sep 17 00:00:00 2001 From: zhl Date: Wed, 26 May 2021 17:22:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=AD=A3=E5=B8=B8=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E6=97=A0=E6=B3=95=E8=BF=94=E5=9B=9E=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E9=A2=98=E5=BA=93=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/controllers/exam.controller.ts | 2 +- src/models/content/Puzzle.ts | 9 ++++++++- src/services/GameLogic.ts | 4 ++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/api/controllers/exam.controller.ts b/src/api/controllers/exam.controller.ts index 1cf9205..5413f23 100644 --- a/src/api/controllers/exam.controller.ts +++ b/src/api/controllers/exam.controller.ts @@ -48,7 +48,7 @@ class ExamController extends BaseController { let questions = await Puzzle.randomQuestions(params, record.qcount) results = transformRecord(questions) for (let _r of questions) { - history.questions.set(_r.id, _r.a1) + history.questions.set(_r.id, _r.compactRecord(true)) } } else { results = record.transQuestion() diff --git a/src/models/content/Puzzle.ts b/src/models/content/Puzzle.ts index 7d6f7d7..2526816 100644 --- a/src/models/content/Puzzle.ts +++ b/src/models/content/Puzzle.ts @@ -113,10 +113,17 @@ export class PuzzleClass extends BaseModule { public static async randomQuestions(this: ReturnModelType, options: any, count: number) { let filters = {status: 1, is_hide: 0, deleted: 0, dp: 1} Object.assign(filters, options) - return Puzzle.aggregate([ + let records = await Puzzle.aggregate([ { $match: filters }, { $sample: { size: count } } ]).exec() + let results = [] + for (let record of records) { + let o = new Puzzle({}) + Object.assign(o, record) + results.push(o) + } + return results } public compactRecord(withAnswer: boolean) { diff --git a/src/services/GameLogic.ts b/src/services/GameLogic.ts index a9241f8..9ddc22c 100644 --- a/src/services/GameLogic.ts +++ b/src/services/GameLogic.ts @@ -6,7 +6,7 @@ import { updateRound, updateScore } from './WsSvr' -import { Puzzle } from '../models/content/Puzzle' +import { Puzzle, PuzzleClass } from '../models/content/Puzzle' import { Schedule } from '../clock/Schedule' import { BaseConst } from '../constants/BaseConst' import { PuzzleSession } from '../models/match/PuzzleSession' @@ -22,7 +22,7 @@ import { GameUser } from '../models/GameUser' export function transformRecord(records: any[]) { return records.map(o => { - return o.compactRecord(false) + return (o as PuzzleClass).compactRecord(false) }) }