fix: 题库创建唯一约束检查 + 前端错误消息透传

This commit is contained in:
Developer
2026-05-15 10:02:32 +08:00
parent b70dc68a85
commit 97287b0fc4
@@ -90,6 +90,12 @@ export class QuestionBankService {
if (!createDto.name || !createDto.name.trim()) { if (!createDto.name || !createDto.name.trim()) {
throw new BadRequestException('Question bank name is required'); throw new BadRequestException('Question bank name is required');
} }
if (createDto.templateId) {
const existing = await this.bankRepository.findOne({ where: { templateId: createDto.templateId } });
if (existing) {
throw new BadRequestException('该模板已关联题库,一个模板只能创建一个题库');
}
}
const bankData: any = { const bankData: any = {
name: createDto.name, name: createDto.name,
description: createDto.description || '', description: createDto.description || '',
@@ -98,7 +104,7 @@ export class QuestionBankService {
status: QuestionBankStatus.DRAFT, status: QuestionBankStatus.DRAFT,
}; };
if (createDto.templateId) { if (createDto.templateId) {
bankData.template = { id: createDto.templateId }; bankData.templateId = createDto.templateId;
} }
const bank = this.bankRepository.create(bankData as any); const bank = this.bankRepository.create(bankData as any);
return this.bankRepository.save(bank as unknown as QuestionBank); return this.bankRepository.save(bank as unknown as QuestionBank);