Browse Source

新增题目类型字段

master
luogw 4 weeks ago
parent
commit
902a2103d6
  1. 4
      src/main/java/com/project/interaction/controller/InteractionController.java
  2. 9
      src/main/java/com/project/interaction/domain/service/impl/PostToGenerateQuestionDomainServiceImpl.java
  3. 3
      src/main/java/com/project/question/domain/service/QuestionInventoryDomainService.java
  4. 14
      src/main/java/com/project/question/domain/service/impl/QuestionInventoryDomainServiceImpl.java
  5. 2
      src/main/java/com/project/task/application/TaskApplicationService.java
  6. 15
      src/main/java/com/project/task/application/impl/TaskApplicationServiceImpl.java
  7. 2
      src/main/resources/application-test.yml

4
src/main/java/com/project/interaction/controller/InteractionController.java

@ -46,8 +46,8 @@ public class InteractionController {
* 判断任务是否删除
*/
@PostMapping("/isDeletedTask")
public Result<Boolean> isDeletedTask(Long taskId,@RequestParam("taskKpIds") List<Long> taskKpIds){
return taskApplicationService.isDeletedTask(taskId,taskKpIds);
public Result<Boolean> isDeletedTask(Long taskId,@RequestParam("taskKpIds") List<Long> taskKpIds,Integer type){
return taskApplicationService.isDeletedTask(taskId,taskKpIds,type);
}
/**

9
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);

3
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<String> checkAndReplenishBoolean(Long taskId);
Boolean checkKp(TaskEntity task, Long kpId);
Boolean checkKp(TaskEntity task, Long kpId, QuestionTypeEnum questionType);
Boolean checkCluster(TaskEntity task, TaskKnowledgeClusterEntity cluster);
}

14
src/main/java/com/project/question/domain/service/impl/QuestionInventoryDomainServiceImpl.java

@ -88,10 +88,15 @@ public class QuestionInventoryDomainServiceImpl implements QuestionInventoryDoma
List<TaskKnowledgePointEntity> kpList = taskKpMapper.selectList(
new LambdaQueryWrapper<TaskKnowledgePointEntity>().eq(TaskKnowledgePointEntity::getTaskId , taskId));
for (TaskKnowledgePointEntity kp : kpList) {
if(!checkKp(task,kp.getId())){
for (QuestionTypeEnum questionType : QuestionTypeEnum.values()) {
if (QuestionTypeEnum.MULTIPLE_CHOICE.equals(questionType)) {
continue;
}
if(!checkKp(task,kp.getId(),questionType)){
return Result.success("题目未生成完成");
}
}
}
// 针对每一个簇
List<TaskKnowledgeClusterEntity> clusterList = clusterMapper.selectList(
new LambdaQueryWrapper<TaskKnowledgeClusterEntity>().eq(TaskKnowledgeClusterEntity::getTaskId, taskId));
@ -166,16 +171,11 @@ 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;
}
}
return true;
}

2
src/main/java/com/project/task/application/TaskApplicationService.java

@ -22,5 +22,5 @@ public interface TaskApplicationService {
Result<TaskDTO> getCandidateDetail(Long id) throws Exception;
Result<Boolean> isDeletedTask(Long taskId, List<Long> taskKpIds);
Result<Boolean> isDeletedTask(Long taskId, List<Long> taskKpIds,Integer type);
}

15
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<Boolean> isDeletedTask(Long taskId, List<Long> taskKpIds) {
if (taskKpIds == null || CollectionUtils.isEmpty(taskKpIds)) {
public Result<Boolean> isDeletedTask(Long taskId, List<Long> 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{

2
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"

Loading…
Cancel
Save