Files
aurak/server/src/assessment/assessment.module.ts
T
Developer 9fd503b42b feat: 考核系统升级 P0+P1+P2 — 体验/题库/配置增强
P0 — 答题体验优化:
- 题序导航点:题目进度可视化,标记题目标记
- 标记回头检查: 点击🏷️按钮标记当前题,导航点变黄色
- 提交确认弹窗: 未答完时提交弹出确认对话框

P1 — 题库管理增强:
- QuestionBankItem 新增 tags 字段(多标签过滤)
- 新增 question_bank_templates 联表(题库跨模板复用)

P2 — 考试配置增强:
- AssessmentTemplate 新增字段:
  - attemptLimit (尝试次数限制)
  - scheduledStart/scheduledEnd (预约时段)
  - reviewMode (回顾模式: none/after_completion/per_question)
  - shuffleQuestions (每题随机排序)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 14:25:29 +08:00

64 lines
2.8 KiB
TypeScript

import { Module, forwardRef } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { AssessmentService } from './assessment.service';
import { AssessmentController } from './assessment.controller';
import { AssessmentSession } from './entities/assessment-session.entity';
import { AssessmentQuestion } from './entities/assessment-question.entity';
import { AssessmentAnswer } from './entities/assessment-answer.entity';
import { AssessmentTemplate } from './entities/assessment-template.entity';
import { AssessmentCertificate } from './entities/assessment-certificate.entity';
import { QuestionBank } from './entities/question-bank.entity';
import { QuestionBankItem } from './entities/question-bank-item.entity';
import { QuestionBankTemplate } from './entities/question-bank-template.entity';
import { KnowledgeBaseModule } from '../knowledge-base/knowledge-base.module';
import { KnowledgeGroupModule } from '../knowledge-group/knowledge-group.module';
import { ModelConfigModule } from '../model-config/model-config.module';
import { ChatModule } from '../chat/chat.module';
import { ElasticsearchModule } from '../elasticsearch/elasticsearch.module';
import { RagModule } from '../rag/rag.module';
import { TenantModule } from '../tenant/tenant.module';
import { TemplateService } from './services/template.service';
import { TemplateController } from './controllers/template.controller';
import { QuestionBankController } from './controllers/question-bank.controller';
import { ContentFilterService } from './services/content-filter.service';
import { QuestionOutlineService } from './services/question-outline.service';
import { QuestionBankService } from './services/question-bank.service';
import { ExportService } from './services/export.service';
import { AuditLog } from './entities/audit-log.entity';
import { AuditLogService } from './services/audit-log.service';
@Module({
imports: [
TypeOrmModule.forFeature([
AssessmentSession,
AssessmentQuestion,
AssessmentAnswer,
AssessmentTemplate,
AssessmentCertificate,
QuestionBank,
QuestionBankItem,
QuestionBankTemplate,
AuditLog,
]),
forwardRef(() => KnowledgeBaseModule),
forwardRef(() => KnowledgeGroupModule),
forwardRef(() => ModelConfigModule),
forwardRef(() => ChatModule),
ElasticsearchModule,
RagModule,
TenantModule,
],
controllers: [AssessmentController, TemplateController, QuestionBankController],
providers: [
AssessmentService,
TemplateService,
ContentFilterService,
QuestionOutlineService,
QuestionBankService,
ExportService,
AuditLogService,
],
exports: [AssessmentService, TemplateService, QuestionOutlineService, QuestionBankService, ExportService],
})
export class AssessmentModule {}