From 186423d1726fc284114337a8de95a7bec6700f10 Mon Sep 17 00:00:00 2001 From: Developer Date: Fri, 15 May 2026 08:22:10 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D10=E4=B8=AATS=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E9=94=99=E8=AF=AF=20-=20ForbiddenException=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E3=80=81sort=E5=AD=97=E6=AE=B5=E3=80=81user.name?= =?UTF-8?q?=E3=80=81question.content=E3=80=81lines=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E3=80=81status=E6=AF=94=E8=BE=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/src/assessment/assessment.service.ts | 1 + server/src/assessment/services/export.service.ts | 16 ++++++++-------- .../assessment/services/question-bank.service.ts | 5 ++--- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/server/src/assessment/assessment.service.ts b/server/src/assessment/assessment.service.ts index 45ec985..f8b9070 100644 --- a/server/src/assessment/assessment.service.ts +++ b/server/src/assessment/assessment.service.ts @@ -4,6 +4,7 @@ import { NotFoundException, Inject, forwardRef, + ForbiddenException, } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository, DeepPartial, In } from 'typeorm'; diff --git a/server/src/assessment/services/export.service.ts b/server/src/assessment/services/export.service.ts index 2501830..000972f 100644 --- a/server/src/assessment/services/export.service.ts +++ b/server/src/assessment/services/export.service.ts @@ -34,7 +34,7 @@ export class ExportService { const questions = await this.questionRepository.find({ where: { sessionId }, - order: { order: 'ASC' }, + order: { createdAt: 'ASC' }, }); const answers = await this.answerRepository.find({ @@ -46,7 +46,7 @@ export class ExportService { const summarySheet = [ ['评估报告'], ['评估ID', session.id], - ['用户', session.user?.name || session.userId], + ['用户', session.user?.displayName || session.user?.username || session.userId], ['状态', session.status], ['最终分数', session.finalScore || '-'], ['原始分数', session.originalScore || '-'], @@ -68,7 +68,7 @@ export class ExportService { const a = answerMap.get(q.id); questionRows.push([ (i + 1).toString(), - q.content || q.questionText || '', + q.questionText || '', a?.userAnswer || '', a?.score?.toString() || '', a?.feedback || '', @@ -122,11 +122,11 @@ export class ExportService { if ((currentLine + ' ' + word).trim().length <= maxWidth) { currentLine = (currentLine + ' ' + word).trim(); } else { - if (currentLine) lines.push([currentLine]); + if (currentLine) lines.push(currentLine); currentLine = word; } } - if (currentLine) lines.push([currentLine]); + if (currentLine) lines.push(currentLine); } return lines.map((l) => [l]); @@ -148,7 +148,7 @@ export class ExportService { const questions = await this.questionRepository.find({ where: { sessionId }, - order: { order: 'ASC' }, + order: { createdAt: 'ASC' }, }); const answers = await this.answerRepository.find({ @@ -173,7 +173,7 @@ export class ExportService { lines.push(''); lines.push(`评估ID: ${session.id}`); - lines.push(`用户: ${session.user?.name || session.userId}`); + lines.push(`用户: ${session.user?.displayName || session.user?.username || session.userId}`); lines.push(`状态: ${session.status === 'COMPLETED' ? '已完成' : '进行中'}`); lines.push(`最终分数: ${session.finalScore || '-'}`); lines.push(`评估模板: ${session.template?.name || session.templateJson?.name || '-'}`); @@ -202,7 +202,7 @@ export class ExportService { const a = answerMap.get(q.id); lines.push(''); lines.push(`第${i + 1}题:`); - lines.push(` 题目: ${q.content || q.questionText || '-'}`); + lines.push(` 题目: ${q.questionText || '-'}`); lines.push(` 用户回答: ${a?.userAnswer || '-'}`); lines.push(` 得分: ${a?.score ?? '-'}`); lines.push(` 反馈: ${a?.feedback || '-'}`); diff --git a/server/src/assessment/services/question-bank.service.ts b/server/src/assessment/services/question-bank.service.ts index ea02cb3..a867f9f 100644 --- a/server/src/assessment/services/question-bank.service.ts +++ b/server/src/assessment/services/question-bank.service.ts @@ -196,9 +196,9 @@ export class QuestionBankService { if (bank.status === QuestionBankStatus.PUBLISHED) { return bank; } - if (bank.status !== QuestionBankStatus.PUBLISHED && bank.status !== QuestionBankStatus.REJECTED) { + if (bank.status !== QuestionBankStatus.REJECTED) { throw new ForbiddenException( - 'Only PUBLISHED or REJECTED status can be re-published', + 'Only REJECTED status can be re-published', ); } bank.status = QuestionBankStatus.PUBLISHED; @@ -424,7 +424,6 @@ export class QuestionBankService { } } } - } if (selected.length < count) { const remaining = allItems.filter((i) => !usedIds.has(i.id));