From 902a2103d684e80b823daaa9e4ef11a6df8efcb7 Mon Sep 17 00:00:00 2001 From: luogw <3132758203@qq.com> Date: Sat, 28 Mar 2026 10:24:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=A2=98=E7=9B=AE=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/InteractionController.java | 4 ++-- ...stToGenerateQuestionDomainServiceImpl.java | 9 +++++++-- .../QuestionInventoryDomainService.java | 3 ++- .../QuestionInventoryDomainServiceImpl.java | 20 +++++++++---------- .../application/TaskApplicationService.java | 2 +- .../impl/TaskApplicationServiceImpl.java | 15 ++++++++++---- src/main/resources/application-test.yml | 2 +- 7 files changed, 34 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/project/interaction/controller/InteractionController.java b/src/main/java/com/project/interaction/controller/InteractionController.java index 9f4a24d..e291e05 100644 --- a/src/main/java/com/project/interaction/controller/InteractionController.java +++ b/src/main/java/com/project/interaction/controller/InteractionController.java @@ -46,8 +46,8 @@ public class InteractionController { * 判断任务是否删除 */ @PostMapping("/isDeletedTask") - public Result isDeletedTask(Long taskId,@RequestParam("taskKpIds") List taskKpIds){ - return taskApplicationService.isDeletedTask(taskId,taskKpIds); + public Result isDeletedTask(Long taskId,@RequestParam("taskKpIds") List taskKpIds,Integer type){ + return taskApplicationService.isDeletedTask(taskId,taskKpIds,type); } /** diff --git a/src/main/java/com/project/interaction/domain/service/impl/PostToGenerateQuestionDomainServiceImpl.java b/src/main/java/com/project/interaction/domain/service/impl/PostToGenerateQuestionDomainServiceImpl.java index 484eced..c8dd5c4 100644 --- a/src/main/java/com/project/interaction/domain/service/impl/PostToGenerateQuestionDomainServiceImpl.java +++ b/src/main/java/com/project/interaction/domain/service/impl/PostToGenerateQuestionDomainServiceImpl.java @@ -246,6 +246,7 @@ public class PostToGenerateQuestionDomainServiceImpl implements PostToGenerateQu log.info(">>> [队列管理] 开始重试题目生成, 重试次数: {},ItemId: {}, TaskId: {}", item.getRetryCount() + 1, item.getItemId(),item.getTaskId()); + String message; try { long waitStart = System.currentTimeMillis(); rateLimiter.acquire(); @@ -271,6 +272,8 @@ public class PostToGenerateQuestionDomainServiceImpl implements PostToGenerateQu return false; } + message = response != null ? response.getMessage() : "response is null"; + } catch (Exception e) { if (e instanceof WebClientResponseException exception) { int statusCode = exception.getStatusCode().value(); @@ -283,9 +286,11 @@ public class PostToGenerateQuestionDomainServiceImpl implements PostToGenerateQu return true; } } + + message = e.getMessage(); } - log.error(">>> [队列管理] 重试生成题目异常, ItemId: {},TaskId: {}", - item.getItemId(),item.getTaskId()); + log.error(">>> [队列管理] 重试生成题目异常, ItemId: {},TaskId: {},message: {}", + item.getItemId(),item.getTaskId(),message); item.setLastRetryTime(LocalDateTime.now()); item.setRetryCount(item.getRetryCount() + 1); diff --git a/src/main/java/com/project/question/domain/service/QuestionInventoryDomainService.java b/src/main/java/com/project/question/domain/service/QuestionInventoryDomainService.java index acbfa81..edcfb23 100644 --- a/src/main/java/com/project/question/domain/service/QuestionInventoryDomainService.java +++ b/src/main/java/com/project/question/domain/service/QuestionInventoryDomainService.java @@ -3,13 +3,14 @@ package com.project.question.domain.service; import com.project.base.domain.result.Result; import com.project.question.domain.entity.TaskKnowledgeClusterEntity; import com.project.task.domain.entity.TaskEntity; +import com.project.task.domain.enums.QuestionTypeEnum; public interface QuestionInventoryDomainService { void checkAndReplenish(Long taskId) throws Exception; Result checkAndReplenishBoolean(Long taskId); - Boolean checkKp(TaskEntity task, Long kpId); + Boolean checkKp(TaskEntity task, Long kpId, QuestionTypeEnum questionType); Boolean checkCluster(TaskEntity task, TaskKnowledgeClusterEntity cluster); } diff --git a/src/main/java/com/project/question/domain/service/impl/QuestionInventoryDomainServiceImpl.java b/src/main/java/com/project/question/domain/service/impl/QuestionInventoryDomainServiceImpl.java index 5286157..d924820 100644 --- a/src/main/java/com/project/question/domain/service/impl/QuestionInventoryDomainServiceImpl.java +++ b/src/main/java/com/project/question/domain/service/impl/QuestionInventoryDomainServiceImpl.java @@ -88,8 +88,13 @@ public class QuestionInventoryDomainServiceImpl implements QuestionInventoryDoma List kpList = taskKpMapper.selectList( new LambdaQueryWrapper().eq(TaskKnowledgePointEntity::getTaskId , taskId)); for (TaskKnowledgePointEntity kp : kpList) { - if(!checkKp(task,kp.getId())){ - return Result.success("题目未生成完成"); + for (QuestionTypeEnum questionType : QuestionTypeEnum.values()) { + if (QuestionTypeEnum.MULTIPLE_CHOICE.equals(questionType)) { + continue; + } + if(!checkKp(task,kp.getId(),questionType)){ + return Result.success("题目未生成完成"); + } } } // 针对每一个簇 @@ -166,15 +171,10 @@ public class QuestionInventoryDomainServiceImpl implements QuestionInventoryDoma } @Override - public Boolean checkKp(TaskEntity task, Long kpId){ + public Boolean checkKp(TaskEntity task, Long kpId, QuestionTypeEnum questionType){ int watermark = getWatermark(task); - for (QuestionTypeEnum questionType : QuestionTypeEnum.values()) { - if (QuestionTypeEnum.MULTIPLE_CHOICE.equals(questionType)) { - continue; - } - if (!checkKpInventory(kpId, questionType, watermark)) { - return false; - } + if (!checkKpInventory(kpId, questionType, watermark)) { + return false; } return true; } diff --git a/src/main/java/com/project/task/application/TaskApplicationService.java b/src/main/java/com/project/task/application/TaskApplicationService.java index 343f8c6..a065807 100644 --- a/src/main/java/com/project/task/application/TaskApplicationService.java +++ b/src/main/java/com/project/task/application/TaskApplicationService.java @@ -22,5 +22,5 @@ public interface TaskApplicationService { Result getCandidateDetail(Long id) throws Exception; - Result isDeletedTask(Long taskId, List taskKpIds); + Result isDeletedTask(Long taskId, List taskKpIds,Integer type); } diff --git a/src/main/java/com/project/task/application/impl/TaskApplicationServiceImpl.java b/src/main/java/com/project/task/application/impl/TaskApplicationServiceImpl.java index 0313da7..8d69c5e 100644 --- a/src/main/java/com/project/task/application/impl/TaskApplicationServiceImpl.java +++ b/src/main/java/com/project/task/application/impl/TaskApplicationServiceImpl.java @@ -9,6 +9,7 @@ import com.project.question.mapper.TaskKnowledgeClusterMapper; import com.project.task.application.TaskApplicationService; import com.project.task.domain.dto.TaskDTO; import com.project.task.domain.entity.TaskEntity; +import com.project.task.domain.enums.QuestionTypeEnum; import com.project.task.domain.param.TaskParam; import com.project.task.domain.service.*; import org.apache.commons.collections4.CollectionUtils; @@ -73,10 +74,16 @@ public class TaskApplicationServiceImpl implements TaskApplicationService { } @Override - public Result isDeletedTask(Long taskId, List taskKpIds) { - if (taskKpIds == null || CollectionUtils.isEmpty(taskKpIds)) { + public Result isDeletedTask(Long taskId, List taskKpIds,Integer type) { + if (taskKpIds == null || CollectionUtils.isEmpty(taskKpIds) || type != null) { throw new MissingParameterException("参数不完整"); } + + QuestionTypeEnum questionTypeEnum = QuestionTypeEnum.findByValue(type); + if (questionTypeEnum == null){ + throw new MissingParameterException("题型不存在"); + } + //判断任务是否删除 TaskEntity taskEntity = taskBaseService.getById(taskId); if (taskEntity == null) { @@ -84,8 +91,8 @@ public class TaskApplicationServiceImpl implements TaskApplicationService { } //校验知识点是否库存不足 - if (taskKpIds.size() == 1) { - if(!questionInventoryDomainService.checkKp(taskEntity, taskKpIds.get(0))){ + if (questionTypeEnum != QuestionTypeEnum.MULTIPLE_CHOICE) { + if(!questionInventoryDomainService.checkKp(taskEntity, taskKpIds.get(0),questionTypeEnum)){ return Result.success(true); } }else{ diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml index d56138a..eb878e5 100644 --- a/src/main/resources/application-test.yml +++ b/src/main/resources/application-test.yml @@ -75,7 +75,7 @@ algo: clusterUrl: /algo/semantic-cluster baseUrl: https://107pm707566hq.vicp.fun generateQuestionUrl: /v1/generate/questions_from_cluster - apiUrl: http://8.129.84.155:8000 + apiUrl: http://127.0.0.1:8000 jwt: secret: "my-very-fixed-and-secure-secret-key-1234567890"