Bläddra i källkod

更新扫描端接口

ting.yin 4 år sedan
förälder
incheckning
e6f39e6c58

+ 34 - 29
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/ExamStudentController.java

@@ -1,8 +1,27 @@
 package cn.com.qmth.stmms.api.controller;
 
-import cn.com.qmth.stmms.api.exception.ApiException;
+import java.text.DecimalFormat;
+import java.util.LinkedList;
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+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.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
 import cn.com.qmth.stmms.api.utils.AESUtil;
-import cn.com.qmth.stmms.api.utils.MenualAbsentDTO;
 import cn.com.qmth.stmms.biz.exam.model.Exam;
 import cn.com.qmth.stmms.biz.exam.model.ExamQuestion;
 import cn.com.qmth.stmms.biz.exam.model.ExamStudent;
@@ -15,26 +34,12 @@ import cn.com.qmth.stmms.biz.mark.service.MarkLibraryService;
 import cn.com.qmth.stmms.biz.user.model.User;
 import cn.com.qmth.stmms.biz.user.service.UserService;
 import cn.com.qmth.stmms.biz.utils.ScoreItem;
-import cn.com.qmth.stmms.common.annotation.Logging;
 import cn.com.qmth.stmms.common.annotation.RoleRequire;
 import cn.com.qmth.stmms.common.domain.ApiUser;
-import cn.com.qmth.stmms.common.enums.LogType;
 import cn.com.qmth.stmms.common.enums.Role;
 import cn.com.qmth.stmms.common.utils.RequestUtils;
-import com.google.common.base.Strings;
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
-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.Controller;
-import org.springframework.web.bind.annotation.*;
 
-import javax.servlet.http.HttpServletRequest;
-import java.text.DecimalFormat;
-import java.util.LinkedList;
-import java.util.List;
+import com.google.common.base.Strings;
 
 @Controller("examStudentApiController")
 @RequestMapping("/api")
@@ -63,11 +68,12 @@ public class ExamStudentController extends BaseApiController {
     public JSONObject checkStudent(HttpServletRequest request, @RequestBody ExamStudent examStudent) {
         JSONObject obj = new JSONObject();
         Exam exam = examService.findById(examStudent.getExamId());
-        ExamStudent student = studentService
-                .findByExamIdAndExamNumber(examStudent.getExamId(), examStudent.getExamNumber());
+        ExamStudent student = studentService.findByExamIdAndExamNumber(examStudent.getExamId(),
+                examStudent.getExamNumber());
         if (student != null) {
             obj.accumulate("examId", examStudent.getExamId());
-            obj.accumulate("campusName", student.getCampusName());
+            obj.accumulate("campusCode", "0");
+            obj.accumulate("campusName", StringUtils.trimToEmpty(student.getCampusName()));
             obj.accumulate("examNumber", student.getExamNumber());
             obj.accumulate("name", student.getName());
             obj.accumulate("studentId", String.valueOf(student.getId()));
@@ -124,7 +130,8 @@ public class ExamStudentController extends BaseApiController {
                 obj.accumulate("id", student.getId());
                 obj.accumulate("schoolId", student.getSchoolId());
                 obj.accumulate("examNumber", student.getExamNumber());
-                obj.accumulate("campusName", student.getCampusName());
+                obj.accumulate("campusCode", "0");
+                obj.accumulate("campusName", StringUtils.trimToEmpty(student.getCampusName()));
                 obj.accumulate("subjectCode", student.getSubjectCode());
                 obj.accumulate("subjectName", student.getSubjectName());
                 obj.accumulate("name", student.getName());
@@ -153,9 +160,8 @@ public class ExamStudentController extends BaseApiController {
                         // 构造客观题得分明细
                         JSONArray objective = new JSONArray();
                         List<ScoreItem> scoreList = student.getScoreList(true);
-                        List<ExamQuestion> questionList = questionService
-                                .findByExamAndSubjectAndObjectiveAndPaperType(student.getExamId(),
-                                        student.getSubjectCode(), true, student.getPaperType());
+                        List<ExamQuestion> questionList = questionService.findByExamAndSubjectAndObjectiveAndPaperType(
+                                student.getExamId(), student.getSubjectCode(), true, student.getPaperType());
                         int i = 0;
                         for (ScoreItem item : scoreList) {
                             i++;
@@ -178,8 +184,8 @@ public class ExamStudentController extends BaseApiController {
                         // 构造主观题得分明细
                         JSONArray subjective = new JSONArray();
                         scoreList = student.getScoreList(false);
-                        questionList = questionService
-                                .findByExamAndSubjectAndObjective(student.getExamId(), student.getSubjectCode(), false);
+                        questionList = questionService.findByExamAndSubjectAndObjective(student.getExamId(),
+                                student.getSubjectCode(), false);
                         i = 0;
                         for (ScoreItem item : scoreList) {
                             i++;
@@ -254,9 +260,8 @@ public class ExamStudentController extends BaseApiController {
             if (Strings.isNullOrEmpty(examSeqCode)) {
                 student = studentService.findBySchoolIdAndSubjectCodeAndStudentCode(schoolId, subjectCode, studentCode);
             } else {
-                student = studentService
-                        .findBySchoolIdAndSubjectCodeAndStudentCodeAndRemark(schoolId, subjectCode, studentCode,
-                                examSeqCode);
+                student = studentService.findBySchoolIdAndSubjectCodeAndStudentCodeAndRemark(schoolId, subjectCode,
+                        studentCode, examSeqCode);
             }
             if (student != null) {
                 DecimalFormat df = new DecimalFormat("####.###");

+ 1 - 1
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/FileController.java

@@ -63,7 +63,7 @@ public class FileController extends BaseApiController {
         if (exam == null || !exam.getSchoolId().equals(au.getSchoolId()) || exam.getStatus() != ExamStatus.START) {
             throw ApiException.EXAM_NOT_ACCESSIBLED;
         }
-        if (types != null && !Arrays.asList(types).contains(exam.getType())) {
+        if (types != null && types.length > 0 && !Arrays.asList(types).contains(exam.getType())) {
             throw ApiException.QUERY_PARAM_ERROR.replaceMessage("exam type invalid");
         }
         return exam;

+ 19 - 16
stmms-web/src/main/java/cn/com/qmth/stmms/monitor/FileDownloadController.java

@@ -30,10 +30,12 @@ public class FileDownloadController {
             @PathVariable String subjectCode, @PathVariable String examNumber, @PathVariable Integer index)
             throws Exception {
         try {
-            //重定向模式
-            redirect(response, fileService.getFileServer().concat(fileService.getSheetUri(examId, examNumber, index)));
-            //直接下载模式
-            //download(response, fileService.downloadSheet(examId, examNumber, index));
+            // 重定向模式
+            // redirect(response,
+            // fileService.getFileServer().concat(fileService.getSheetUri(examId,
+            // examNumber, index)));
+            // 直接下载模式
+            download(response, fileService.downloadSheet(examId, examNumber, index));
         } catch (Exception e) {
             response.sendError(HttpServletResponse.SC_NOT_FOUND);
         }
@@ -46,11 +48,12 @@ public class FileDownloadController {
         try {
             ExamStudent student = studentService.findByExamIdAndExamNumber(examId, examNumber);
             if (student != null) {
-                //重定向模式
-                redirect(response, fileService.getFileServer()
-                        .concat(fileService.getSliceUri(examId, student.getSecretNumber(), index)));
-                //直接下载模式
-                //download(response, fileService.downloadSlice(examId, student.getSecretNumber(), index));
+                // 重定向模式
+                // redirect(response,
+                // fileService.getFileServer().concat(fileService.getSliceUri(examId,
+                // student.getSecretNumber(), index)));
+                // 直接下载模式
+                download(response, fileService.downloadSlice(examId, student.getSecretNumber(), index));
             } else {
                 response.sendError(HttpServletResponse.SC_NOT_FOUND);
             }
@@ -60,14 +63,14 @@ public class FileDownloadController {
     }
 
     @RequestMapping("/ft-package/{examId}/{packageCode}/{index}.jpg")
-    public void getPackage(HttpServletResponse response, @PathVariable Integer examId, @PathVariable String packageCode,
-            @PathVariable Integer index) throws Exception {
+    public void getPackage(HttpServletResponse response, @PathVariable Integer examId,
+            @PathVariable String packageCode, @PathVariable Integer index) throws Exception {
         try {
-            //重定向模式
-            redirect(response,
-                    fileService.getFileServer().concat(fileService.getPackageUri(examId, packageCode, index)));
-            //直接下载模式
-            //download(response, fileService.downloadPackage(examId, packageCode, index));
+            // 重定向模式
+            // redirect(response, fileService.getFileServer()
+            // .concat(fileService.getPackageUri(examId, packageCode, index)));
+            // 直接下载模式
+            download(response, fileService.downloadPackage(examId, packageCode, index));
         } catch (Exception e) {
             response.sendError(HttpServletResponse.SC_NOT_FOUND);
         }

+ 3 - 3
stmms-web/src/main/webapp/sql/stmms_ft.sql

@@ -112,8 +112,8 @@ CREATE TABLE `eb_data_sync`
     `cloud_exam_id` bigint(20)   NOT NULL COMMENT '云平台考试ID',
     `finished`      tinyint(1)   NOT NULL COMMENT '是否完成',
     `next_id`       bigint(20)   DEFAULT NULL COMMENT '下一位考生ID',
-    `root_org_id`   varchar(255) NOT NULL COMMENT '机构ID',
-    `subject_code`  varchar(255) DEFAULT NULL COMMENT '科目代码',
+    `root_org_id`   varchar(32) NOT NULL COMMENT '机构ID',
+    `subject_code`  varchar(32) DEFAULT NULL COMMENT '科目代码',
     `app_id`        varchar(128) NOT NULL COMMENT '项目ID',
     `secret_key`    varchar(128) NOT NULL COMMENT '密钥',
     `student_url`   varchar(128) NOT NULL COMMENT '考生API URL',
@@ -649,7 +649,7 @@ CREATE TABLE `m_trial_track`
     `question_number` varchar(64)  NOT NULL COMMENT '完整题号',
     `number`          int(11)      NOT NULL COMMENT '序号',
     `exam_id`         int(11)      NOT NULL COMMENT '考试ID',
-    `subject_code`    varchar(255) NOT NULL COMMENT '科目代码',
+    `subject_code`    varchar(32)  NOT NULL COMMENT '科目代码',
     `group_number`    int(11)      NOT NULL COMMENT '大题题号',
     `student_id`      int(11)      NOT NULL COMMENT '考生ID',
     `score`           double       NOT NULL COMMENT '给分',