Explorar el Código

merge submitQuestionAnswer api

deason hace 3 años
padre
commit
56f4e11d9f

+ 4 - 17
examcloud-core-oe-student-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/student/api/controller/ExamQuestionController.java

@@ -2,7 +2,6 @@ package cn.com.qmth.examcloud.core.oe.student.api.controller;
 
 import cn.com.qmth.examcloud.api.commons.security.bean.User;
 import cn.com.qmth.examcloud.commons.exception.StatusException;
-import cn.com.qmth.examcloud.commons.util.JsonUtil;
 import cn.com.qmth.examcloud.core.oe.student.base.utils.Check;
 import cn.com.qmth.examcloud.core.oe.student.bean.ExamStudentQuestionInfo;
 import cn.com.qmth.examcloud.core.oe.student.service.ExamRecordQuestionsService;
@@ -93,23 +92,11 @@ public class ExamQuestionController extends ControllerSupport {
      */
     @ApiOperation(value = "考试过程中-考生作答:更新试题作答信息(包括提交试题答案,更新是否标记)")
     @PostMapping("/submitQuestionAnswer")
-    public void submitQuestionAnswer(@RequestBody List<ExamStudentQuestionInfo> examQuestionInfos,
-                                     HttpServletRequest request) {
-        if (LOGGER.isDebugEnabled()) {
-            String strJosn = JsonUtil.toJson(examQuestionInfos);
-            LOGGER.debug("ExamQuestionController--submitQuestionAnswer参数信息:" + strJosn);
-        }
+    public void submitQuestionAnswer(@RequestBody List<ExamStudentQuestionInfo> examQuestionInfos, HttpServletRequest request) {
         User user = getAccessUser();
-        if (examQuestionInfos != null && examQuestionInfos.size() > 0) {
-            for (ExamStudentQuestionInfo examStudentQuestionInfo : examQuestionInfos) {
-                if (examStudentQuestionInfo.getOrder() == null) {
-                    throw new StatusException("2001", "illegal params");
-                }
-            }
-            String referer = request.getHeader("REFERER");
-            String agent = request.getHeader("USER-AGENT");
-            examRecordQuestionsService.submitQuestionAnswer(user.getUserId(), examQuestionInfos, referer, agent);
-        }
+        String referer = request.getHeader("REFERER");
+        String agent = request.getHeader("USER-AGENT");
+        examRecordQuestionsService.submitQuestionAnswer(user.getUserId(), examQuestionInfos, referer, agent);
     }
 
 }

+ 3 - 15
examcloud-core-oe-student-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/student/api/controller/client/ExamProcessController.java

@@ -2,7 +2,6 @@ package cn.com.qmth.examcloud.core.oe.student.api.controller.client;
 
 import cn.com.qmth.examcloud.api.commons.security.bean.User;
 import cn.com.qmth.examcloud.commons.exception.StatusException;
-import cn.com.qmth.examcloud.commons.util.JsonUtil;
 import cn.com.qmth.examcloud.core.oe.student.bean.*;
 import cn.com.qmth.examcloud.core.oe.student.service.*;
 import cn.com.qmth.examcloud.support.Constants;
@@ -131,21 +130,10 @@ public class ExamProcessController extends ControllerSupport {
     @ApiOperation(value = "考试过程中-考生试题作答")
     @PostMapping("/submitQuestionAnswer")
     public void submitQuestionAnswer(@RequestBody List<ExamStudentQuestionInfo> examQuestionInfos, HttpServletRequest request) {
-        if (LOGGER.isDebugEnabled()) {
-            String strJosn = JsonUtil.toJson(examQuestionInfos);
-            LOGGER.debug("ExamQuestionController--submitQuestionAnswer参数信息:" + strJosn);
-        }
         User user = getAccessUser();
-        if (examQuestionInfos != null && examQuestionInfos.size() > 0) {
-            for (ExamStudentQuestionInfo examStudentQuestionInfo : examQuestionInfos) {
-                if (examStudentQuestionInfo.getOrder() == null) {
-                    throw new StatusException("2001", "illegal params");
-                }
-            }
-            String referer = request.getHeader("REFERER");
-            String agent = request.getHeader("USER-AGENT");
-            examRecordQuestionsService.submitQuestionAnswer(user.getUserId(), examQuestionInfos, referer, agent);
-        }
+        String referer = request.getHeader("REFERER");
+        String agent = request.getHeader("USER-AGENT");
+        examRecordQuestionsService.submitQuestionAnswer(user.getUserId(), examQuestionInfos, referer, agent);
     }
 
     @ApiOperation(value = "保存活体检测结果")

+ 16 - 0
examcloud-core-oe-student-service/src/main/java/cn/com/qmth/examcloud/core/oe/student/service/impl/ExamRecordQuestionsServiceImpl.java

@@ -30,7 +30,10 @@ import cn.com.qmth.examcloud.web.helpers.GlobalHelper;
 import cn.com.qmth.examcloud.web.redis.RedisClient;
 import com.google.common.cache.Cache;
 import com.google.common.cache.CacheBuilder;
+import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -43,6 +46,8 @@ import java.util.concurrent.TimeUnit;
 @Service("examRecordQuestionsService")
 public class ExamRecordQuestionsServiceImpl implements ExamRecordQuestionsService {
 
+    private static final Logger log = LoggerFactory.getLogger(ExamRecordQuestionsServiceImpl.class);
+
     /**
      * 考生作答内容长度界限,超过此长度的答案内容存入mongo
      */
@@ -230,6 +235,17 @@ public class ExamRecordQuestionsServiceImpl implements ExamRecordQuestionsServic
 
     @Override
     public void submitQuestionAnswer(Long studentId, List<ExamStudentQuestionInfo> examQuestionInfos, String referer, String agent) {
+        if (CollectionUtils.isEmpty(examQuestionInfos)) {
+            log.warn("submitQuestionAnswer is empty. studentId = {} ", studentId);
+            return;
+        }
+
+        for (ExamStudentQuestionInfo examStudentQuestionInfo : examQuestionInfos) {
+            if (examStudentQuestionInfo.getOrder() == null) {
+                throw new StatusException("2001", "题目序号不能为空");
+            }
+        }
+
         ExamingSession examSessionInfo = examingSessionService.getExamingSession(studentId);
         if (examSessionInfo == null
                 || examSessionInfo.getExamingStatus().equals(ExamingStatus.INFORMAL)) {