4 İşlemeler c84b7f2417 ... ec7ca70381

Yazar SHA1 Mesaj Tarih
  yhd12345 ec7ca70381 feat: 增加获取考试代码题的接口 3 yıl önce
  yhd12345 0fe00e686b Merge remote-tracking branch 'origin/seec' into seec 3 yıl önce
  yhd12345 1ffb978278 feat: 增加获取考试代码题的接口 3 yıl önce
  mjh 9f85270134 修复了httpservice Put方法缺少params的问题 3 yıl önce

+ 4 - 0
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/service/ExamService.java

@@ -58,6 +58,8 @@ public interface ExamService {
 
     JSONObject changeShowConsole(int examId, boolean showConsole);
 
+    JSONObject stopRecordByRecordId(int recordId);
+
     //--------------------------------------------------------
 
     JSONArray findEvalRecommendExams();
@@ -105,4 +107,6 @@ public interface ExamService {
     void takeExamWithInviteCode(Integer examId, String inviteCode);
 
     JSONObject getExamListByCurrentStudent();
+
+    JSONObject getExamCodeQuestionAndScoreById(Integer examId);
 }

+ 1 - 1
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/service/HttpService.java

@@ -17,7 +17,7 @@ public interface HttpService {
 
     String sendDelete(String uri, String jsonstr, String token) throws Exception;
 
-    String sendPut(String uri, JSONObject requestBody, String token) throws Exception;
+    String sendPut(String uri, JSONObject requestBody, List<NameValuePair> params, String token) throws Exception;
 
     String sendPutFile(String uri, MultipartFile file, String path, String token) throws Exception;
 

+ 10 - 0
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/serviceImpl/ExamServiceImpl.java

@@ -206,6 +206,11 @@ public class ExamServiceImpl implements ExamService {
         return evalService.getExamListByCurrentStudent();
     }
 
+    @Override
+    public JSONObject getExamCodeQuestionAndScoreById(Integer examId) {
+        return evalService.getExamCodeQuestionAndScoreById(examId);
+    }
+
 
     @Override
     public JSONObject getResultByExamId(int examId) {
@@ -237,6 +242,11 @@ public class ExamServiceImpl implements ExamService {
         return coderService.changeShowConsole(examId, showConsole);
     }
 
+    @Override
+    public JSONObject stopRecordByRecordId(int recordId) {
+        return coderService.stopRecordByRecordId(recordId);
+    }
+
     //--------------------------------------------
 
     @Override

+ 9 - 2
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/serviceImpl/HttpServiceImpl.java

@@ -144,9 +144,16 @@ public class HttpServiceImpl implements HttpService {
 
 
     @Override
-    public String sendPut(String uri, JSONObject requestBody, String token) throws Exception {
+    public String sendPut(String uri, JSONObject requestBody, List<NameValuePair> params, String token) throws Exception {
+        String completedUri;
+        if (params != null && !params.isEmpty()) {
+            String requestParam = EntityUtils.toString(new UrlEncodedFormEntity(params, Consts.UTF_8));
+            completedUri = uri + "?" + requestParam;
+        } else {
+            completedUri = uri;
+        }
         CloseableHttpClient httpClient = HttpClients.createDefault();
-        HttpPut httpPut = new HttpPut(uri);
+        HttpPut httpPut = new HttpPut(completedUri);
         if (token != null) {
             httpPut.setHeader("Authorization", token);
         }

+ 13 - 1
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/serviceImpl/subsystem/CoderService.java

@@ -219,7 +219,7 @@ public class CoderService implements SubsystemService {
         String token = httpService.getToken();
         String result = null;
         try {
-            result = httpService.sendPut(coderUrlPrefix + "/exam/" + examId, examDTO, token);
+            result = httpService.sendPut(coderUrlPrefix + "/exam/" + examId, examDTO, null, token);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -455,4 +455,16 @@ public class CoderService implements SubsystemService {
         }
         return JSON.parseObject(result);
     }
+
+    public JSONObject stopRecordByRecordId(int recordId) {
+        String token = httpService.getToken();
+        String result = null;
+        String url = coderUrlPrefix + "/record/" + recordId + "/stop";
+        try {
+            result = httpService.sendPut(url, new JSONObject(), null, token);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return JSON.parseObject(result);
+    }
 }

+ 1 - 0
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/serviceImpl/subsystem/DevcloudServiceImpl.java

@@ -198,6 +198,7 @@ public class DevcloudServiceImpl implements DevcloudService {
                     httpService.sendPut(
                             seecoderGitlabServerUri + "/api/project/visibility",
                             requestBody,
+                            null,
                             httpService.getToken()
                     )
             );

+ 42 - 30
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/serviceImpl/subsystem/EvalService.java

@@ -107,21 +107,21 @@ public class EvalService implements SubsystemService {
         String token = httpService.getToken();
         System.out.println(token);
         JSONObject requestBody = new JSONObject();
-        requestBody.put("examName",createEvalExamVO.getExamName());
-        requestBody.put("skills",createEvalExamVO.getSkills());
-        requestBody.put("difficulty",createEvalExamVO.getDifficulty());
-        requestBody.put("startTime",createEvalExamVO.getStartTime());
-        requestBody.put("endTime",createEvalExamVO.getEndTime());
-        requestBody.put("comment",createEvalExamVO.getComment());
-        requestBody.put("antiCheating",createEvalExamVO.getAntiCheating());
-        requestBody.put("isPublic",createEvalExamVO.getIsPublic());
-        requestBody.put("position",createEvalExamVO.getPosition());
-        requestBody.put("courseId",createEvalExamVO.getCourseId());
+        requestBody.put("examName", createEvalExamVO.getExamName());
+        requestBody.put("skills", createEvalExamVO.getSkills());
+        requestBody.put("difficulty", createEvalExamVO.getDifficulty());
+        requestBody.put("startTime", createEvalExamVO.getStartTime());
+        requestBody.put("endTime", createEvalExamVO.getEndTime());
+        requestBody.put("comment", createEvalExamVO.getComment());
+        requestBody.put("antiCheating", createEvalExamVO.getAntiCheating());
+        requestBody.put("isPublic", createEvalExamVO.getIsPublic());
+        requestBody.put("position", createEvalExamVO.getPosition());
+        requestBody.put("courseId", createEvalExamVO.getCourseId());
 //        requestBody.put("courseId",1);//测试用
         System.out.println(requestBody);
         String result = null;
         try {
-            result = httpService.sendPost(uri, requestBody,null, token);
+            result = httpService.sendPost(uri, requestBody, null, token);
             System.out.println(result);
         } catch (Exception e) {
             e.printStackTrace();
@@ -145,7 +145,7 @@ public class EvalService implements SubsystemService {
         String uri = "https://eval-server.seec.seecoder.cn/api/question/sample";
         String result = null;
         try {
-            result = httpService.sendGet(uri,new ArrayList<>(),null);
+            result = httpService.sendGet(uri, new ArrayList<>(), null);
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
@@ -153,7 +153,7 @@ public class EvalService implements SubsystemService {
     }
 
     public JSONObject getExamQuestionAndScoreById(Integer examId) {
-        String uri = "https://eval-server.seec.seecoder.cn/api/exam/" + examId +"/questions";
+        String uri = "https://eval-server.seec.seecoder.cn/api/exam/" + examId + "/questions";
         String result = null;
         try {
             result = httpService.sendGet(uri, new ArrayList<>(), null);
@@ -178,7 +178,7 @@ public class EvalService implements SubsystemService {
         String uri = "https://eval-server.seec.seecoder.cn/api/exam/question/sample/" + examId + "/?sampleExamPaperId=" + sampleExamPaperId;
         String token = httpService.getToken();
         try {
-            httpService.sendPost(uri, null,null,token);
+            httpService.sendPost(uri, null, null, token);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -198,14 +198,14 @@ public class EvalService implements SubsystemService {
 
     public JSONObject getQuestionList(String stem, List<String> tags, String knowledgeName, int pageSize, int pageNum) {
         String params = "";
-        if(stem!=null){
-            params+=("stem=" + stem + "&");
+        if (stem != null) {
+            params += ("stem=" + stem + "&");
         }
-        if(tags!=null){
-            params+=("tags=" + tags + "&");
+        if (tags != null) {
+            params += ("tags=" + tags + "&");
         }
-        if(knowledgeName!=null){
-            params+=("knowledgeName=" + knowledgeName + "&");
+        if (knowledgeName != null) {
+            params += ("knowledgeName=" + knowledgeName + "&");
         }
         String uri = "https://eval-server.seec.seecoder.cn/api/question/question" + "?" + params + "pageSize=" + pageSize + "&pageNum=" + pageNum;
         String token = httpService.getToken();
@@ -222,16 +222,16 @@ public class EvalService implements SubsystemService {
         String uri = "https://eval-server.seec.seecoder.cn/api/exam/" + examId + "/questions/";
         String token = httpService.getToken();
         JSONObject requestBody = new JSONObject();
-        requestBody.put("questionScoreMap",questionScoreMapVO.getQuestionScoreMap());
+        requestBody.put("questionScoreMap", questionScoreMapVO.getQuestionScoreMap());
         try {
-            httpService.sendPut(uri, requestBody,token);
+            httpService.sendPut(uri, requestBody, null, token);
         } catch (Exception e) {
             e.printStackTrace();
         }
     }
 
     public JSONObject getExamById(Integer examId) {
-        String uri = "https://eval-server.seec.seecoder.cn/api/exam/" +examId;
+        String uri = "https://eval-server.seec.seecoder.cn/api/exam/" + examId;
         String token = httpService.getToken();
         String result = null;
         try {
@@ -243,7 +243,7 @@ public class EvalService implements SubsystemService {
     }
 
     public JSONObject getUsersByExamId(Integer examId) {
-        String uri = "https://eval-server.seec.seecoder.cn/api/user/" +  examId;
+        String uri = "https://eval-server.seec.seecoder.cn/api/user/" + examId;
         String token = httpService.getToken();
         String result = null;
         try {
@@ -255,7 +255,7 @@ public class EvalService implements SubsystemService {
     }
 
     public JSONObject getReportByExamId(Integer examId) {
-        String uri = "https://eval-server.seec.seecoder.cn/api/report/all?examId=" +  examId;
+        String uri = "https://eval-server.seec.seecoder.cn/api/report/all?examId=" + examId;
         String token = httpService.getToken();
         String result = null;
         try {
@@ -270,10 +270,10 @@ public class EvalService implements SubsystemService {
         String uri = "https://eval-server.seec.seecoder.cn/api/exam/invite/code" + "?inviteCode=" + inviteCode + "&examId=" + examId;
         String token = httpService.getToken();
         JSONObject requestBody = new JSONObject();
-        requestBody.put("inviteCode",inviteCode);
-        requestBody.put("examId",examId);
+        requestBody.put("inviteCode", inviteCode);
+        requestBody.put("examId", examId);
         try {
-            httpService.sendPut(uri, requestBody,token);
+            httpService.sendPut(uri, requestBody, null, token);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -283,9 +283,9 @@ public class EvalService implements SubsystemService {
         String uri = "https://eval-server.seec.seecoder.cn/api/exam/invite/code" + "?examId=" + examId;
         String token = httpService.getToken();
         JSONObject requestBody = new JSONObject();
-        requestBody.put("examId",examId);
+        requestBody.put("examId", examId);
         try {
-            httpService.sendPut(uri, requestBody,token);
+            httpService.sendPut(uri, requestBody, null, token);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -303,4 +303,16 @@ public class EvalService implements SubsystemService {
         }
         return JSONObject.parseObject(result);
     }
+
+    public JSONObject getExamCodeQuestionAndScoreById(Integer examId) {
+        String uri = "https://eval-server.seec.seecoder.cn/api/exam/" + examId + "/questions/code";
+        String result = null;
+        try {
+            result = httpService.sendGet(uri, new ArrayList<>(), null);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return JSONObject.parseObject(result);
+
+    }
 }

+ 11 - 0
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/web/rest/ExamController.java

@@ -212,6 +212,11 @@ public class ExamController {
         return examService.getRecordByRecordId(recordId);
     }
 
+    @PutMapping("/coder/record/stop")
+    public JSONObject stopRecordByRecordId(@RequestParam int recordId){
+        return examService.stopRecordByRecordId(recordId);
+    }
+
 
     //--------------------------------------------------------
 
@@ -285,6 +290,12 @@ public class ExamController {
         return OkResponse.of(examService.getExamQuestionAndScoreById(examId));
     }
 
+    @ApiOperation("根据考试id获得对应考试的代码题目")
+    @GetMapping("/eval/exam/{examId}/codeQuestions")
+    public OkResponse<JSONObject> getExamCodeQuestionAndScoreById(@PathVariable Integer examId) {
+        return OkResponse.of(examService.getExamCodeQuestionAndScoreById(examId));
+    }
+
     @ApiOperation("根据Id获得题目的全部信息,包括解答")
     @GetMapping("/eval/questions/{id}")
     public OkResponse<JSONObject> getQuestionById(@PathVariable String id) {