diff --git a/src/main/java/com/project/appeal/domain/dto/AppealDTO.java b/src/main/java/com/project/appeal/domain/dto/AppealDTO.java index caa627d..f7419e1 100644 --- a/src/main/java/com/project/appeal/domain/dto/AppealDTO.java +++ b/src/main/java/com/project/appeal/domain/dto/AppealDTO.java @@ -25,6 +25,7 @@ public class AppealDTO extends BaseDTO { private String appealUsername; private Long examId; private Long taskId; + private String taskName; private String subLineName;//关联子产品线 private Long questionId; private String questionContent; //题干 diff --git a/src/main/java/com/project/appeal/domain/service/Impl/SaveAppealDomainServiceImpl.java b/src/main/java/com/project/appeal/domain/service/Impl/SaveAppealDomainServiceImpl.java index 614bee9..29bd85c 100644 --- a/src/main/java/com/project/appeal/domain/service/Impl/SaveAppealDomainServiceImpl.java +++ b/src/main/java/com/project/appeal/domain/service/Impl/SaveAppealDomainServiceImpl.java @@ -91,7 +91,7 @@ public class SaveAppealDomainServiceImpl implements SaveAppealDomainService { appealDTO.setQuestionContent(questionSnapshotDTO.getQuestionContent()); appealDTO.setQuestionSort(index + 1); - + appealDTO.setTaskName(examRecordDTO.getTaskName()); if (appealDTO.getStatus().equals(AppealStatusEnum.PENDING_REVIEW.getValue())) { diff --git a/src/main/java/com/project/ding/utils/DingUtil.java b/src/main/java/com/project/ding/utils/DingUtil.java index 3d33ee3..3fc4535 100644 --- a/src/main/java/com/project/ding/utils/DingUtil.java +++ b/src/main/java/com/project/ding/utils/DingUtil.java @@ -274,7 +274,7 @@ public class DingUtil { boolean approved = appealDTO.getStatus() != null && appealDTO.getStatus() == 2; StringBuilder markdown = new StringBuilder(); - markdown.append(String.format("### 【%s】中第%d题的申诉结果如下:\n\n" , "教育云平台知识考试",appealDTO.getQuestionSort())) + markdown.append(String.format("### 【%s】中第%d题的申诉结果如下:\n\n" , appealDTO.getTaskName(),appealDTO.getQuestionSort())) .append(String.format("处理结果:%s\n\n" ,approved ? "同意" : "不同意")) .append(String.format("处理理由:%s" , appealDTO.getReason())); diff --git a/src/main/java/com/project/interaction/config/WebClientConfig.java b/src/main/java/com/project/interaction/config/WebClientConfig.java index 59a8bed..026baa1 100644 --- a/src/main/java/com/project/interaction/config/WebClientConfig.java +++ b/src/main/java/com/project/interaction/config/WebClientConfig.java @@ -22,7 +22,7 @@ public class WebClientConfig { public WebClient algorithmWebClient() { // 配置HTTP客户端,设置长超时以支持流式响应 HttpClient httpClient = HttpClient.create() - .responseTimeout(Duration.ofSeconds(30)) + .responseTimeout(Duration.ofSeconds(60)) .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 10000) .doOnConnected(conn -> conn // 读超时 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 94a2264..96ed191 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 @@ -81,15 +81,16 @@ public class PostToGenerateQuestionDomainServiceImpl implements PostToGenerateQu if (waitTime > 100) { log.info(">>> [题目生成] 因限流等待了 {} ms, TaskId: {}", waitTime, taskId); } + generateFallbackQuestions(dtoList, questionType, num); //尝试调用算法服务生成题目 - GenerateQuestionResponseDTO response = callAlgorithmService(dtoList, questionType, num, knowledgePoint.getParseName()); - - if (response != null && StringUtils.isNotBlank(response.getMessage()) && response.getMessage().contains("success")) { - log.info(">>> [题目生成] 算法服务接受任务成功, 任务: {}, 状态: {}, 信息:{}", - response.getTaskId(), response.getStatus(),response.getMessage()); - return; - } +// GenerateQuestionResponseDTO response = callAlgorithmService(dtoList, questionType, num, knowledgePoint.getParseName()); +// +// if (response != null && StringUtils.isNotBlank(response.getMessage()) && response.getMessage().contains("success")) { +// log.info(">>> [题目生成] 算法服务接受任务成功, 任务: {}, 状态: {}, 信息:{}", +// response.getTaskId(), response.getStatus(),response.getMessage()); +// return; +// } } catch (Exception e) { log.warn(">>> [题目生成] 调用算法服务失败,启动熔断降级方案, TaskId: {}, 错误: {}", @@ -100,7 +101,7 @@ public class PostToGenerateQuestionDomainServiceImpl implements PostToGenerateQu // log.info(">>> [题目生成] 启用熔断降级,生成默认题目"); // generateFallbackQuestions(dtoList, questionType, num); //发送预警通知 - notifyUtil.notify(taskId,clusterId); +// notifyUtil.notify(taskId,clusterId); } /** diff --git a/src/main/java/com/project/task/domain/service/impl/NotifyTaskDomainServiceImpl.java b/src/main/java/com/project/task/domain/service/impl/NotifyTaskDomainServiceImpl.java index 25d2947..4c4ff9e 100644 --- a/src/main/java/com/project/task/domain/service/impl/NotifyTaskDomainServiceImpl.java +++ b/src/main/java/com/project/task/domain/service/impl/NotifyTaskDomainServiceImpl.java @@ -10,6 +10,8 @@ import com.github.tingyugetc520.ali.dingtalk.bean.message.DtCorpConversationMsgS import com.github.tingyugetc520.ali.dingtalk.bean.message.DtMessage; import com.github.tingyugetc520.ali.dingtalk.error.DtErrorException; import com.project.ding.config.DingProperties; +import com.project.information.domain.entity.ProductLineEntity; +import com.project.information.domain.service.ProductLineBaseService; import com.project.task.domain.dto.TaskDTO; import com.project.task.domain.entity.TaskEntity; import com.project.task.domain.entity.TaskUserEntity; @@ -36,6 +38,8 @@ public class NotifyTaskDomainServiceImpl implements NotifyTaskDomainService { private TaskUserMapper taskUserMapper; @Autowired private DtService dtService; + @Autowired + private ProductLineBaseService productLineBaseService; @Autowired private DingProperties dingTalkProperties; @@ -85,9 +89,18 @@ public class NotifyTaskDomainServiceImpl implements NotifyTaskDomainService { if (CollUtil.isEmpty(userIds)) { return; } + + //获取子产品线名称 + String subLineName = productLineBaseService.lambdaQuery() + .eq(ProductLineEntity::getId , taskDTO.getSubLineId()) + .select(ProductLineEntity::getName) + .oneOpt() + .map(ProductLineEntity::getName) + .orElse(""); + StringBuilder markdown = new StringBuilder(); markdown.append(String.format("### 【%s】已经开始,请按时完成\n\n" , taskDTO.getName())) - .append(String.format("产品线:%s\n\n" , taskDTO.getLineName())) + .append(String.format("产品线:%s\n\n" , subLineName)) .append(String.format("开考时间:%s\n\n" ,sdf.format(taskDTO.getStartTime()))) .append(String.format("截止时间:%s\n\n" , sdf.format(taskDTO.getEndTime()))) .append(String.format("注意事项:%s" , taskDTO.getNote()));