Browse Source

bug修复

master
luoweijian 2 months ago
parent
commit
0f0a6137ff
  1. 10
      src/main/java/com/project/classicpaper/domain/service/impl/GenerateClassicPaperDomainServiceImpl.java

10
src/main/java/com/project/classicpaper/domain/service/impl/GenerateClassicPaperDomainServiceImpl.java

@ -29,6 +29,7 @@ import com.project.question.domain.entity.TaskKnowledgePointEntity;
import com.project.question.domain.service.TaskKnowledgeClusterBaseService; import com.project.question.domain.service.TaskKnowledgeClusterBaseService;
import com.project.question.domain.service.TaskKnowledgePointBaseService; import com.project.question.domain.service.TaskKnowledgePointBaseService;
import com.project.task.domain.enums.QuestionTypeEnum; import com.project.task.domain.enums.QuestionTypeEnum;
import io.vavr.control.Try;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
@ -36,6 +37,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.*; import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
@ -129,6 +131,9 @@ public class GenerateClassicPaperDomainServiceImpl implements GenerateClassicPap
if (totalPerSet <= 0) { if (totalPerSet <= 0) {
throw new BusinessErrorException("至少需要一种题型的数量大于0"); throw new BusinessErrorException("至少需要一种题型的数量大于0");
} }
if (totalPerSet > 100) {
throw new BusinessErrorException("总题数不得超过100题");
}
// 校验:单选题+判断题 <= 知识点总数 // 校验:单选题+判断题 <= 知识点总数
int singleAndTrueFalse = Optional.ofNullable(request.getSingleChoiceNum()).orElse(0) int singleAndTrueFalse = Optional.ofNullable(request.getSingleChoiceNum()).orElse(0)
@ -359,9 +364,10 @@ public class GenerateClassicPaperDomainServiceImpl implements GenerateClassicPap
for (PaperQuestionTask task : paperQuestionTasks) { for (PaperQuestionTask task : paperQuestionTasks) {
Long clusterId = task.knowledgePoints != null && !task.knowledgePoints.isEmpty() Long clusterId = task.knowledgePoints != null && !task.knowledgePoints.isEmpty()
? task.knowledgePoints.get(0).getClusterId() : null; ? task.knowledgePoints.get(0).getClusterId() : null;
classicPaperQuestionGenerator.generateAsync( CompletableFuture.runAsync(() -> Try.run(() -> classicPaperQuestionGenerator.generateAsync(
task.paperQuestionId, task.knowledgePoints, task.questionType, task.paperQuestionId, task.knowledgePoints, task.questionType,
1 + sparePerQuestion, clusterId); 1 + sparePerQuestion, clusterId)));
} }
// ============ Phase 3: 立即返回 ============ // ============ Phase 3: 立即返回 ============

Loading…
Cancel
Save