package com.nju.edu.eval.web.controller; import cn.seecoder.codejudge.client.JudgeDTO; import com.fasterxml.jackson.annotation.JsonUnwrapped; import com.nju.edu.eval.aspect.auth.Authorized; import com.nju.edu.eval.data.entity.User; import com.nju.edu.eval.model.vo.judge.CodeJudgeVO; import com.nju.edu.eval.model.vo.judge.ObjectiveJudgeVO; import com.nju.edu.eval.publicdatas.enums.UserRole; import com.nju.edu.eval.service.JudgeService; import com.nju.edu.eval.web.Response; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.apache.commons.lang3.StringEscapeUtils; import org.springframework.context.annotation.Role; import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; import java.util.List; import static org.apache.commons.text.StringEscapeUtils.unescapeHtml4; /** * @author mars */ @RestController @RequestMapping(path = "/api/judge") @Api(tags = {"判题"}) public class JudgeController { private JudgeService judgeService; public JudgeController(JudgeService judgeService) { this.judgeService = judgeService; } @ApiOperation("考试中的客观题判题") @PostMapping(value = "/objective") @Authorized(roles = {UserRole.STUDENT}) public Response judgeObjectiveQuestionAnswers(@ApiIgnore User user, @RequestParam(value = "examId") Integer examId, @RequestBody ObjectiveJudgeVO objectiveJudgeVO) { return Response.buildSuccess(judgeService.judgeObjectiveQuestionAnswers(user.getId(), examId, objectiveJudgeVO)); } @ApiOperation("考试中的代码题判题") @PostMapping("/code") @Authorized(roles = {UserRole.STUDENT}) public Response judgeCodeQuestionAnswers(@ApiIgnore User user, @RequestParam(value = "examId") Integer examId, @RequestParam(value = "questionId") String questionId, @RequestBody CodeJudgeVO codeJudgeVO) { return Response.buildSuccess(judgeService.judgeCodeQuestionAnswers(user.getId(), examId, questionId, codeJudgeVO)); } @ApiOperation("练习中的客观题判题") @PostMapping(value = "/objective/test") @Authorized(roles = {UserRole.STUDENT}) public Response judgeObjectiveQuestionAnswersOfExercise(@ApiIgnore User user, @RequestBody ObjectiveJudgeVO objectiveJudgeVO) { return Response.buildSuccess(judgeService.judgeObjectiveQuestionAnswersOfExercise(user.getId(), objectiveJudgeVO)); } @ApiOperation("练习中的代码题判题") @PostMapping("/code/test") @Authorized(roles = {UserRole.STUDENT}) public Response judgeCodeQuestionAnswersOfExercise(@ApiIgnore User user, @RequestParam(value = "questionId") String questionId, @RequestBody CodeJudgeVO codeJudgeVO) { return Response.buildSuccess(judgeService.judgeCodeQuestionAnswersOfExercise(user.getId(), questionId, codeJudgeVO)); } // @ApiOperation("针对某次考试的判题") // @PostMapping("/exam/{examId}") }