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. 20
      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") @PostMapping("/isDeletedTask")
public Result<Boolean> isDeletedTask(Long taskId,@RequestParam("taskKpIds") List<Long> taskKpIds){ public Result<Boolean> isDeletedTask(Long taskId,@RequestParam("taskKpIds") List<Long> taskKpIds,Integer type){
return taskApplicationService.isDeletedTask(taskId,taskKpIds); 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: {}", log.info(">>> [队列管理] 开始重试题目生成, 重试次数: {},ItemId: {}, TaskId: {}",
item.getRetryCount() + 1, item.getItemId(),item.getTaskId()); item.getRetryCount() + 1, item.getItemId(),item.getTaskId());
String message;
try { try {
long waitStart = System.currentTimeMillis(); long waitStart = System.currentTimeMillis();
rateLimiter.acquire(); rateLimiter.acquire();
@ -271,6 +272,8 @@ public class PostToGenerateQuestionDomainServiceImpl implements PostToGenerateQu
return false; return false;
} }
message = response != null ? response.getMessage() : "response is null";
} catch (Exception e) { } catch (Exception e) {
if (e instanceof WebClientResponseException exception) { if (e instanceof WebClientResponseException exception) {
int statusCode = exception.getStatusCode().value(); int statusCode = exception.getStatusCode().value();
@ -283,9 +286,11 @@ public class PostToGenerateQuestionDomainServiceImpl implements PostToGenerateQu
return true; return true;
} }
} }
message = e.getMessage();
} }
log.error(">>> [队列管理] 重试生成题目异常, ItemId: {},TaskId: {}", log.error(">>> [队列管理] 重试生成题目异常, ItemId: {},TaskId: {},message: {}",
item.getItemId(),item.getTaskId()); item.getItemId(),item.getTaskId(),message);
item.setLastRetryTime(LocalDateTime.now()); item.setLastRetryTime(LocalDateTime.now());
item.setRetryCount(item.getRetryCount() + 1); 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.base.domain.result.Result;
import com.project.question.domain.entity.TaskKnowledgeClusterEntity; import com.project.question.domain.entity.TaskKnowledgeClusterEntity;
import com.project.task.domain.entity.TaskEntity; import com.project.task.domain.entity.TaskEntity;
import com.project.task.domain.enums.QuestionTypeEnum;
public interface QuestionInventoryDomainService { public interface QuestionInventoryDomainService {
void checkAndReplenish(Long taskId) throws Exception; void checkAndReplenish(Long taskId) throws Exception;
Result<String> checkAndReplenishBoolean(Long taskId); 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); Boolean checkCluster(TaskEntity task, TaskKnowledgeClusterEntity cluster);
} }

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

@ -88,8 +88,13 @@ public class QuestionInventoryDomainServiceImpl implements QuestionInventoryDoma
List<TaskKnowledgePointEntity> kpList = taskKpMapper.selectList( List<TaskKnowledgePointEntity> kpList = taskKpMapper.selectList(
new LambdaQueryWrapper<TaskKnowledgePointEntity>().eq(TaskKnowledgePointEntity::getTaskId , taskId)); new LambdaQueryWrapper<TaskKnowledgePointEntity>().eq(TaskKnowledgePointEntity::getTaskId , taskId));
for (TaskKnowledgePointEntity kp : kpList) { for (TaskKnowledgePointEntity kp : kpList) {
if(!checkKp(task,kp.getId())){ for (QuestionTypeEnum questionType : QuestionTypeEnum.values()) {
return Result.success("题目未生成完成"); 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 @Override
public Boolean checkKp(TaskEntity task, Long kpId){ public Boolean checkKp(TaskEntity task, Long kpId, QuestionTypeEnum questionType){
int watermark = getWatermark(task); int watermark = getWatermark(task);
for (QuestionTypeEnum questionType : QuestionTypeEnum.values()) { if (!checkKpInventory(kpId, questionType, watermark)) {
if (QuestionTypeEnum.MULTIPLE_CHOICE.equals(questionType)) { return false;
continue;
}
if (!checkKpInventory(kpId, questionType, watermark)) {
return false;
}
} }
return true; 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<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.application.TaskApplicationService;
import com.project.task.domain.dto.TaskDTO; import com.project.task.domain.dto.TaskDTO;
import com.project.task.domain.entity.TaskEntity; 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.param.TaskParam;
import com.project.task.domain.service.*; import com.project.task.domain.service.*;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
@ -73,10 +74,16 @@ public class TaskApplicationServiceImpl implements TaskApplicationService {
} }
@Override @Override
public Result<Boolean> isDeletedTask(Long taskId, List<Long> taskKpIds) { public Result<Boolean> isDeletedTask(Long taskId, List<Long> taskKpIds,Integer type) {
if (taskKpIds == null || CollectionUtils.isEmpty(taskKpIds)) { if (taskKpIds == null || CollectionUtils.isEmpty(taskKpIds) || type != null) {
throw new MissingParameterException("参数不完整"); throw new MissingParameterException("参数不完整");
} }
QuestionTypeEnum questionTypeEnum = QuestionTypeEnum.findByValue(type);
if (questionTypeEnum == null){
throw new MissingParameterException("题型不存在");
}
//判断任务是否删除 //判断任务是否删除
TaskEntity taskEntity = taskBaseService.getById(taskId); TaskEntity taskEntity = taskBaseService.getById(taskId);
if (taskEntity == null) { if (taskEntity == null) {
@ -84,8 +91,8 @@ public class TaskApplicationServiceImpl implements TaskApplicationService {
} }
//校验知识点是否库存不足 //校验知识点是否库存不足
if (taskKpIds.size() == 1) { if (questionTypeEnum != QuestionTypeEnum.MULTIPLE_CHOICE) {
if(!questionInventoryDomainService.checkKp(taskEntity, taskKpIds.get(0))){ if(!questionInventoryDomainService.checkKp(taskEntity, taskKpIds.get(0),questionTypeEnum)){
return Result.success(true); return Result.success(true);
} }
}else{ }else{

2
src/main/resources/application-test.yml

@ -75,7 +75,7 @@ algo:
clusterUrl: /algo/semantic-cluster clusterUrl: /algo/semantic-cluster
baseUrl: https://107pm707566hq.vicp.fun baseUrl: https://107pm707566hq.vicp.fun
generateQuestionUrl: /v1/generate/questions_from_cluster generateQuestionUrl: /v1/generate/questions_from_cluster
apiUrl: http://8.129.84.155:8000 apiUrl: http://127.0.0.1:8000
jwt: jwt:
secret: "my-very-fixed-and-secure-secret-key-1234567890" secret: "my-very-fixed-and-secure-secret-key-1234567890"

Loading…
Cancel
Save