JudgeController.java 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package com.nju.edu.eval.web.controller;
  2. import cn.seecoder.codejudge.client.JudgeDTO;
  3. import com.fasterxml.jackson.annotation.JsonUnwrapped;
  4. import com.nju.edu.eval.aspect.auth.Authorized;
  5. import com.nju.edu.eval.data.entity.User;
  6. import com.nju.edu.eval.model.vo.judge.CodeJudgeVO;
  7. import com.nju.edu.eval.model.vo.judge.ObjectiveJudgeVO;
  8. import com.nju.edu.eval.publicdatas.enums.UserRole;
  9. import com.nju.edu.eval.service.JudgeService;
  10. import com.nju.edu.eval.web.Response;
  11. import io.swagger.annotations.Api;
  12. import io.swagger.annotations.ApiOperation;
  13. import io.swagger.annotations.ApiParam;
  14. import org.apache.commons.lang3.StringEscapeUtils;
  15. import org.springframework.context.annotation.Role;
  16. import org.springframework.web.bind.annotation.*;
  17. import springfox.documentation.annotations.ApiIgnore;
  18. import java.util.List;
  19. import static org.apache.commons.text.StringEscapeUtils.unescapeHtml4;
  20. /**
  21. * @author mars
  22. */
  23. @RestController
  24. @RequestMapping(path = "/api/judge")
  25. @Api(tags = {"判题"})
  26. public class JudgeController {
  27. private JudgeService judgeService;
  28. public JudgeController(JudgeService judgeService) {
  29. this.judgeService = judgeService;
  30. }
  31. @ApiOperation("考试中的客观题判题")
  32. @PostMapping(value = "/objective")
  33. @Authorized(roles = {UserRole.STUDENT})
  34. public Response judgeObjectiveQuestionAnswers(@ApiIgnore User user, @RequestParam(value = "examId") Integer examId,
  35. @RequestBody ObjectiveJudgeVO objectiveJudgeVO) {
  36. return Response.buildSuccess(judgeService.judgeObjectiveQuestionAnswers(user.getId(), examId, objectiveJudgeVO));
  37. }
  38. @ApiOperation("考试中的代码题判题")
  39. @PostMapping("/code")
  40. @Authorized(roles = {UserRole.STUDENT})
  41. public Response judgeCodeQuestionAnswers(@ApiIgnore User user, @RequestParam(value = "examId") Integer examId,
  42. @RequestParam(value = "questionId") String questionId,
  43. @RequestBody CodeJudgeVO codeJudgeVO) {
  44. return Response.buildSuccess(judgeService.judgeCodeQuestionAnswers(user.getId(), examId, questionId, codeJudgeVO));
  45. }
  46. @ApiOperation("练习中的客观题判题")
  47. @PostMapping(value = "/objective/test")
  48. @Authorized(roles = {UserRole.STUDENT})
  49. public Response judgeObjectiveQuestionAnswersOfExercise(@ApiIgnore User user,
  50. @RequestBody ObjectiveJudgeVO objectiveJudgeVO) {
  51. return Response.buildSuccess(judgeService.judgeObjectiveQuestionAnswersOfExercise(user.getId(), objectiveJudgeVO));
  52. }
  53. @ApiOperation("练习中的代码题判题")
  54. @PostMapping("/code/test")
  55. @Authorized(roles = {UserRole.STUDENT})
  56. public Response judgeCodeQuestionAnswersOfExercise(@ApiIgnore User user,
  57. @RequestParam(value = "questionId") String questionId,
  58. @RequestBody CodeJudgeVO codeJudgeVO) {
  59. return Response.buildSuccess(judgeService.judgeCodeQuestionAnswersOfExercise(user.getId(), questionId, codeJudgeVO));
  60. }
  61. // @ApiOperation("针对某次考试的判题")
  62. // @PostMapping("/exam/{examId}")
  63. }