fix: 题库创建唯一约束检查 + 前端错误消息透传
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user