xiatian 1 سال پیش
والد
کامیت
28a5282cf8

+ 39 - 11
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/BaseExamController.java

@@ -1,5 +1,25 @@
 package cn.com.qmth.stmms.admin.exam;
 
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.LinkedList;
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.gson.GsonBuilder;
+
 import cn.com.qmth.stmms.admin.utils.SessionExamUtils;
 import cn.com.qmth.stmms.biz.exam.model.Exam;
 import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
@@ -9,17 +29,7 @@ import cn.com.qmth.stmms.biz.mark.model.PictureConfigItem;
 import cn.com.qmth.stmms.common.controller.BaseController;
 import cn.com.qmth.stmms.common.domain.WebUser;
 import cn.com.qmth.stmms.common.enums.ExamType;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.apache.commons.lang.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.servlet.mvc.support.RedirectAttributes;
-
-import javax.servlet.http.HttpServletRequest;
-import java.util.LinkedList;
-import java.util.List;
+import net.sf.json.JSONObject;
 
 public class BaseExamController extends BaseController {
 
@@ -34,6 +44,24 @@ public class BaseExamController extends BaseController {
     protected Integer getSessionExamId(HttpServletRequest request) {
         return SessionExamUtils.getExamId(request);
     }
+    
+    protected void errMessage(String message, HttpServletResponse response) {
+        response.setContentType("application/json;charset=utf-8");
+        response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());
+        PrintWriter writer = null;
+        JSONObject obj = new JSONObject();
+        obj.accumulate("message", message);
+        try {
+            writer = response.getWriter();
+            writer.write(obj.toString());
+
+        } catch (IOException e) {
+			throw new RuntimeException(e);
+		} finally {
+            IOUtils.closeQuietly(writer);
+        }
+    }
+    
 
     /**
      * 添加Flash消息

+ 5 - 3
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/InspectedController.java

@@ -164,7 +164,7 @@ public class InspectedController extends BaseExamController {
     @Logging(menu = "开始考生复核", type = LogType.QUERY)
     @RequestMapping(value = "/getTask", method = RequestMethod.POST)
     @ResponseBody
-    public Task getTask(HttpServletRequest request, RedirectAttributes ra, ExamStudentSearchQuery query,
+    public Task getTask(HttpServletRequest request,HttpServletResponse response, RedirectAttributes ra, ExamStudentSearchQuery query,
             @RequestParam(required = false, defaultValue = "false") SelectiveStatus selectiveStatus,
             @RequestParam(required = false) Integer mainNumber, @RequestParam(required = false) Double mainStartScore,
             @RequestParam(required = false) Double mainEndScore, @RequestParam(required = false) Double questionScore,
@@ -176,7 +176,8 @@ public class InspectedController extends BaseExamController {
         if (studentId != null) {
         	ExamStudent student = studentService.findById(studentId);
         	if(exam.getInspectUnrepeated()&&inspectHistoryService.existByStudentIdAndUserId(studentId, wu.getId())) {
-        		throw new RuntimeException("考试已设置为全卷多次复核时不能为同一账号");
+        		errMessage("考试已设置为全卷多次复核时不能为同一账号",response);
+        		return null;
         	}
             releaseStudent(studentId);
             if (inspectedService.applyStudent(student, wu.getId())) {
@@ -189,7 +190,8 @@ public class InspectedController extends BaseExamController {
                 return null;
             }
             if(exam.getInspectUnrepeated()&&inspectHistoryService.existByStudentIdAndUserId(studentId, wu.getId())) {
-            	throw new RuntimeException("考试已设置为全卷多次复核时不能为同一账号");
+            	errMessage("考试已设置为全卷多次复核时不能为同一账号",response);
+            	return null;
             }
             releaseStudent(student.getId());
             if (inspectedService.applyStudent(student, wu.getId())) {