JudgeController.java 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package cn.seecoder.ojserver.controller;
  2. import cn.seecoder.ojserver.model.vo.CodeJudgeVO;
  3. import cn.seecoder.ojserver.service.JudgeService;
  4. import cn.seecoder.ojserver.web.Response;
  5. import com.nju.edu.paasMonitorClient.MonitorClient;
  6. import com.nju.edu.paasMonitorClient.entity.Call;
  7. import com.nju.edu.paasMonitorCommon.enums.SeecSystem;
  8. import org.springframework.web.bind.annotation.*;
  9. @RestController
  10. @RequestMapping(path = "/api/judge")
  11. public class JudgeController {
  12. private JudgeService judgeService;
  13. public JudgeController(JudgeService judgeService) {
  14. this.judgeService = judgeService;
  15. }
  16. @GetMapping("")
  17. public Response getJudge() {
  18. return Response.buildSuccess(true);
  19. }
  20. @PostMapping("")
  21. public Response postJudge() {
  22. return Response.buildSuccess(true);
  23. }
  24. @PostMapping("/code")
  25. public Response judgeCode(@RequestParam(value = "problemId") Integer problemId, @RequestBody CodeJudgeVO codeJudgeVO) {
  26. Call call = MonitorClient.createCall(SeecSystem.CODER,"ojtest119","/api/judge/code");
  27. try{
  28. call.start();
  29. return Response.buildSuccess(judgeService.judgeCode(problemId, codeJudgeVO));
  30. }catch (Exception e){
  31. MonitorClient.logError(SeecSystem.CODER,"ojtest119","/api/judge/code",e);
  32. call.fail();
  33. throw e;
  34. }finally {
  35. call.end();
  36. }
  37. }
  38. @PostMapping("/asyncCode")
  39. public Response asyncJudgeCode(@RequestParam(value = "problemId") Integer problemId, @RequestBody CodeJudgeVO codeJudgeVO){
  40. return Response.buildSuccess(judgeService.asyncJudgeCode(problemId, codeJudgeVO));
  41. }
  42. }