|
|
@@ -2,14 +2,16 @@ package cn.seecoder.ojserver.service.impl;
|
|
|
|
|
|
import cn.seecoder.codejudge.client.JudgeDTO;
|
|
|
import cn.seecoder.codejudge.client.JudgeResult;
|
|
|
+import cn.seecoder.ojserver.dao.entity.Problem;
|
|
|
+import cn.seecoder.ojserver.dao.entity.TestCase;
|
|
|
import cn.seecoder.ojserver.exception.ThirdPartyServiceException;
|
|
|
import cn.seecoder.ojserver.manager.JudgeManager;
|
|
|
import cn.seecoder.ojserver.manager.QuestionManager;
|
|
|
import cn.seecoder.ojserver.model.vo.CodeJudgeVO;
|
|
|
-import cn.seecoder.ojserver.model.vo.CompleteQuestionVO;
|
|
|
import cn.seecoder.ojserver.service.JudgeService;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -24,16 +26,25 @@ public class JudgeServiceImpl implements JudgeService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public JudgeResult judgeCode(String questionId, CodeJudgeVO codeJudgeVO) {
|
|
|
+ public JudgeResult judgeCode(Integer questionId, CodeJudgeVO codeJudgeVO) {
|
|
|
try {
|
|
|
JudgeDTO judgeDTO = new JudgeDTO();
|
|
|
judgeDTO.setCode(codeJudgeVO.getCode());
|
|
|
judgeDTO.setLanguage(codeJudgeVO.getLanguage());
|
|
|
|
|
|
- CompleteQuestionVO question = questionManager.getQuestionById(questionId).get();
|
|
|
- judgeDTO.setMemoryLimit(question.getMemoryLimit());
|
|
|
- judgeDTO.setInputList(question.getInputOutputMapping().entrySet().stream().map(Map.Entry<String, String>::getKey).collect(Collectors.toList()));
|
|
|
- judgeDTO.setOutputList(question.getInputOutputMapping().entrySet().stream().map(Map.Entry<String, String>::getValue).collect(Collectors.toList()));
|
|
|
+ Problem problem = questionManager.getProblemById(questionId).get();
|
|
|
+ List<TestCase> testCaseList = questionManager.getTestCaseByProblemId(questionId);
|
|
|
+ judgeDTO.setMemoryLimit(problem.getMemoryLimit());
|
|
|
+ judgeDTO.setTimeLimit(problem.getTimeLimit());
|
|
|
+ List<String> inputList = testCaseList.stream().map(TestCase::getInput).collect(Collectors.toList());
|
|
|
+ System.out.println(inputList);
|
|
|
+ List<String> outputList = testCaseList.stream().map(TestCase::getOutput).collect(Collectors.toList());
|
|
|
+ System.out.println(outputList);
|
|
|
+ judgeDTO.setInputList(inputList);
|
|
|
+ judgeDTO.setOutputList(outputList);
|
|
|
+// judgeDTO.setInputList(question.getInputOutputMapping().entrySet().stream().map(Map.Entry<String, String>::getKey).collect(Collectors.toList()));
|
|
|
+// judgeDTO.setOutputList(question.getInputOutputMapping().entrySet().stream().map(Map.Entry<String, String>::getValue).collect(Collectors.toList()));
|
|
|
+
|
|
|
|
|
|
return judgeManager.judgeCodeQuestionAnswers(judgeDTO);
|
|
|
} catch (ThirdPartyServiceException exception) {
|