Browse Source

修改卡格式上传接口,简化格式判断,去掉json模式下对于考试/科目的卡格式类型更新

luoshi 2 years ago
parent
commit
8ab005d231

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

@@ -1,17 +1,20 @@
 package cn.com.qmth.stmms.api.controller;
 package cn.com.qmth.stmms.api.controller;
 
 
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-
+import cn.com.qmth.stmms.admin.utils.PaperJsonUtils;
+import cn.com.qmth.stmms.api.exception.ApiException;
+import cn.com.qmth.stmms.biz.common.domain.card.CardFile;
+import cn.com.qmth.stmms.biz.exam.model.*;
+import cn.com.qmth.stmms.biz.exam.service.*;
+import cn.com.qmth.stmms.biz.file.enums.FormatType;
+import cn.com.qmth.stmms.biz.file.service.FileService;
+import cn.com.qmth.stmms.common.annotation.RoleRequire;
+import cn.com.qmth.stmms.common.domain.ApiUser;
+import cn.com.qmth.stmms.common.enums.*;
+import cn.com.qmth.stmms.common.utils.RequestUtils;
+import com.aliyun.oss.common.utils.BinaryUtil;
+import com.google.common.io.ByteStreams;
 import net.sf.json.JSONArray;
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
 import net.sf.json.JSONObject;
-
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
@@ -23,36 +26,13 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
 
 
-import cn.com.qmth.stmms.admin.utils.PaperJsonUtils;
-import cn.com.qmth.stmms.api.exception.ApiException;
-import cn.com.qmth.stmms.biz.common.domain.card.CardFile;
-import cn.com.qmth.stmms.biz.exam.model.AnswerCard;
-import cn.com.qmth.stmms.biz.exam.model.Exam;
-import cn.com.qmth.stmms.biz.exam.model.ExamPackage;
-import cn.com.qmth.stmms.biz.exam.model.ExamQuestion;
-import cn.com.qmth.stmms.biz.exam.model.ExamStudent;
-import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
-import cn.com.qmth.stmms.biz.exam.model.MarkGroup;
-import cn.com.qmth.stmms.biz.exam.service.AnswerCardService;
-import cn.com.qmth.stmms.biz.exam.service.ExamPackageService;
-import cn.com.qmth.stmms.biz.exam.service.ExamQuestionService;
-import cn.com.qmth.stmms.biz.exam.service.ExamService;
-import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
-import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
-import cn.com.qmth.stmms.biz.exam.service.MarkGroupService;
-import cn.com.qmth.stmms.biz.file.enums.FormatType;
-import cn.com.qmth.stmms.biz.file.service.FileService;
-import cn.com.qmth.stmms.common.annotation.RoleRequire;
-import cn.com.qmth.stmms.common.domain.ApiUser;
-import cn.com.qmth.stmms.common.enums.CardSource;
-import cn.com.qmth.stmms.common.enums.ExamStatus;
-import cn.com.qmth.stmms.common.enums.ExamType;
-import cn.com.qmth.stmms.common.enums.ObjectiveStatus;
-import cn.com.qmth.stmms.common.enums.Role;
-import cn.com.qmth.stmms.common.utils.RequestUtils;
-
-import com.aliyun.oss.common.utils.BinaryUtil;
-import com.google.common.io.ByteStreams;
+import javax.servlet.http.HttpServletRequest;
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 
 /**
 /**
  * 统一的对外文件服务接口
  * 统一的对外文件服务接口
@@ -253,8 +233,8 @@ public class FileController extends BaseApiController {
                 String text = new String(ByteStreams.toByteArray(file.getInputStream()), "UTF-8");
                 String text = new String(ByteStreams.toByteArray(file.getInputStream()), "UTF-8");
                 Map<Boolean, List<ExamQuestion>> map = PaperJsonUtils.toSubject(subject, text);
                 Map<Boolean, List<ExamQuestion>> map = PaperJsonUtils.toSubject(subject, text);
                 // 客观题全体更新
                 // 客观题全体更新
-                if (0 != questionService.countByExamIdAndSubjectAndObjectiveAndGroupNumberIsNull(examId, subjectCode,
-                        true)) {
+                if (0 != questionService
+                        .countByExamIdAndSubjectAndObjectiveAndGroupNumberIsNull(examId, subjectCode, true)) {
                     questionService.deleteByExamAndSubjectAndObjective(examId, subjectCode, true);
                     questionService.deleteByExamAndSubjectAndObjective(examId, subjectCode, true);
                 }
                 }
                 List<ExamQuestion> oList = map.get(Boolean.TRUE);
                 List<ExamQuestion> oList = map.get(Boolean.TRUE);
@@ -263,8 +243,8 @@ public class FileController extends BaseApiController {
                 // 主观题有分组不更新
                 // 主观题有分组不更新
                 List<MarkGroup> groups = groupService.findByExamAndSubject(examId, subject.getCode());
                 List<MarkGroup> groups = groupService.findByExamAndSubject(examId, subject.getCode());
                 if (groups == null || groups.size() == 0) {
                 if (groups == null || groups.size() == 0) {
-                    if (0 != questionService.countByExamIdAndSubjectAndObjectiveAndGroupNumberIsNull(examId,
-                            subjectCode, false)) {
+                    if (0 != questionService
+                            .countByExamIdAndSubjectAndObjectiveAndGroupNumberIsNull(examId, subjectCode, false)) {
                         questionService.deleteByExamAndSubjectAndObjective(examId, subjectCode, false);
                         questionService.deleteByExamAndSubjectAndObjective(examId, subjectCode, false);
                     }
                     }
                     List<ExamQuestion> sList = map.get(Boolean.FALSE);
                     List<ExamQuestion> sList = map.get(Boolean.FALSE);
@@ -274,10 +254,10 @@ public class FileController extends BaseApiController {
             fileService.uploadPaper(file.getInputStream(), md5, examId, subjectCode, format);
             fileService.uploadPaper(file.getInputStream(), md5, examId, subjectCode, format);
             subject.setPaperFileType(format);
             subject.setPaperFileType(format);
             subjectService.save(subject);
             subjectService.save(subject);
-            subjectService.updateScore(examId, subjectCode, true,
-                    questionService.sumTotalScore(examId, subjectCode, true));
-            subjectService.updateScore(examId, subjectCode, false,
-                    questionService.sumTotalScore(examId, subjectCode, false));
+            subjectService
+                    .updateScore(examId, subjectCode, true, questionService.sumTotalScore(examId, subjectCode, true));
+            subjectService
+                    .updateScore(examId, subjectCode, false, questionService.sumTotalScore(examId, subjectCode, false));
         } catch (Exception e) {
         } catch (Exception e) {
             log.error("paper upload error", e);
             log.error("paper upload error", e);
             throw ApiException.FILE_UPLOAD_ERROR.replaceMessage("paper upload error: " + e.getMessage());
             throw ApiException.FILE_UPLOAD_ERROR.replaceMessage("paper upload error: " + e.getMessage());
@@ -324,12 +304,12 @@ public class FileController extends BaseApiController {
         subjectCode = StringUtils.trimToNull(subjectCode);
         subjectCode = StringUtils.trimToNull(subjectCode);
         Exam exam = validateExam(au, examId, ExamType.SCAN_IMAGE);
         Exam exam = validateExam(au, examId, ExamType.SCAN_IMAGE);
         ExamSubject subject = subjectCode != null ? validateExamSubject(examId, subjectCode) : null;
         ExamSubject subject = subjectCode != null ? validateExamSubject(examId, subjectCode) : null;
-        FormatType current = subject != null ? subject.getCardType() : exam.getCardType();
-        if (current != null) {
-            validateFormatType(format, current);
-        } else {
-            validateFormatType(format, FormatType.JSON, FormatType.ZIP);
-        }
+        //FormatType current = subject != null ? subject.getCardType() : exam.getCardType();
+        //if (current != null) {
+        //    validateFormatType(format, current);
+        //} else {
+        validateFormatType(format, FormatType.JSON, FormatType.ZIP);
+        //}
         String uri = "";
         String uri = "";
         InputStream ins = null;
         InputStream ins = null;
         AnswerCard card = null;
         AnswerCard card = null;
@@ -343,9 +323,9 @@ public class FileController extends BaseApiController {
                 card = answerCardService.findByExamIdAndSubjectCode(examId, subjectCode);
                 card = answerCardService.findByExamIdAndSubjectCode(examId, subjectCode);
                 if (card == null) {
                 if (card == null) {
                     card = new AnswerCard();
                     card = new AnswerCard();
+                    card.setExamId(examId);
                     card.setNumber(answerCardService.findMaxNumberByExamId(examId) + 1);
                     card.setNumber(answerCardService.findMaxNumberByExamId(examId) + 1);
                 }
                 }
-                card.setExamId(examId);
                 card.setMd5(md5);
                 card.setMd5(md5);
                 card.setNeedAdapte(cardFile.isAdapted());
                 card.setNeedAdapte(cardFile.isAdapted());
                 card.setSliceConfig(cardFile.getSliceConfig().toString());
                 card.setSliceConfig(cardFile.getSliceConfig().toString());
@@ -356,10 +336,10 @@ public class FileController extends BaseApiController {
                 card.setUpdateTime(new Date());
                 card.setUpdateTime(new Date());
                 fileService.uploadAnswerCard(ins, md5, examId, card.getNumber());
                 fileService.uploadAnswerCard(ins, md5, examId, card.getNumber());
                 answerCardService.save(card);
                 answerCardService.save(card);
-                if (subject != null) {
-                    subject.setCardType(format);
-                    subjectService.save(subject);
-                }
+                //                if (subject != null) {
+                //                    subject.setCardType(format);
+                //                    subjectService.save(subject);
+                //                }
                 uri = fileService.getAnswerCardUri(examId, card.getNumber());
                 uri = fileService.getAnswerCardUri(examId, card.getNumber());
             } else {
             } else {
                 ins = file.getInputStream();
                 ins = file.getInputStream();