You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

116 lines
4.4 KiB

package com.project.interaction.controller;
import com.project.base.domain.exception.MissingParameterException;
import com.project.base.domain.result.Result;
3 months ago
import com.project.interaction.application.AiExtractCallbackApplicationService;
import com.project.interaction.application.AlgorithmApplicationService;
3 months ago
import com.project.interaction.application.DataExtractCallbackApplicationService;
3 months ago
import com.project.interaction.domain.dto.AiExtractCallbackDTO;
import com.project.interaction.domain.dto.ClusterCallbackDTO;
3 months ago
import com.project.interaction.domain.dto.DataExtractCallbackDTO;
import com.project.interaction.domain.dto.QuestionCallBackDTO;
5 months ago
import com.project.interaction.domain.service.GenerateQuestionQueueService;
import com.project.question.domain.enums.QuestionSourceTypeEnum;
import com.project.question.domain.service.GenerateQuestionDomainService;
import com.project.task.application.TaskApplicationService;
import com.project.task.domain.enums.QuestionTypeEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api/interaction")
public class InteractionController {
@Autowired
private AlgorithmApplicationService algorithmApplicationService;
@Autowired
private TaskApplicationService taskApplicationService;
5 months ago
@Autowired
private GenerateQuestionQueueService generateQuestionQueueService;
@Autowired
private GenerateQuestionDomainService generateQuestionDomainService;
3 months ago
// =============== V1.1 新增:数据服务/算法服务回调 ============
@Autowired
3 months ago
private DataExtractCallbackApplicationService dataExtractCallbackApplicationService;
3 months ago
@Autowired
3 months ago
private AiExtractCallbackApplicationService aiExtractCallbackApplicationService;
3 months ago
// @PostMapping("/saveCluster")
// public Result<String> saveCluster(ClusterCallbackDTO dto) throws Exception{
// algorithmApplicationService.saveCluster(dto.getTaskId(), dto.getClusters());
// return Result.success("保存成功");
// }
@PostMapping("/saveCluster")
public Result<String> saveCluster(ClusterCallbackDTO dto) throws Exception{
algorithmApplicationService.saveClusterByInformationId(dto.getTaskId(), dto.getClusters());
return Result.success("保存成功");
}
@PostMapping("/saveQuestion")
public Result<String> saveQuestion(QuestionCallBackDTO dto) throws Exception {
return null;
}
/**
* 判断任务是否删除
*/
@PostMapping("/isDeletedTask")
public Result<Boolean> isDeletedTask(Long taskId,@RequestParam("taskKpIds") List<Long> taskKpIds,Integer type){
return taskApplicationService.isDeletedTask(taskId,taskKpIds,type);
}
5 months ago
/**
* 获取当前队列大小
*/
@GetMapping("/getQueueSize")
public Result<Integer> getQueueSize(){
return Result.success(generateQuestionQueueService.getQueueSize());
}
/**
* 生题请求
*/
@PostMapping("/generateQuestion")
public Result<String> generateQuestion(Long sourceId, Integer questionType , int needCount){
QuestionTypeEnum questionTypeEnum = QuestionTypeEnum.findByValue(questionType);
if (questionTypeEnum == null){
throw new MissingParameterException("题型不存在");
}
generateQuestionDomainService.produce(sourceId,questionTypeEnum,
QuestionTypeEnum.MULTIPLE_CHOICE.equals(questionTypeEnum) ? QuestionSourceTypeEnum.Multi_Concept : QuestionSourceTypeEnum.Single_Concept,
needCount,Boolean.TRUE);
return Result.success(null);
}
3 months ago
// =============== V1.1 新增回调路由 ============
/**
* 数据服务解析完成回调
* 每个子文件解析完成后回调检查批次是否全部完成
*/
@PostMapping("/dataExtractCallback")
public Result<String> dataExtractCallback(DataExtractCallbackDTO dto) {
3 months ago
dataExtractCallbackApplicationService.handleCallback(dto);
3 months ago
return Result.success("回调处理成功");
}
/**
* 算法服务知识点提取回调
* 算法服务返回草稿知识点写入草稿表
*/
@PostMapping("/aiExtractCallback")
public Result<String> aiExtractCallback(AiExtractCallbackDTO dto) {
3 months ago
aiExtractCallbackApplicationService.handleCallback(dto);
3 months ago
return Result.success("回调处理成功");
}
}