|
@@ -1,17 +1,20 @@
|
|
|
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.JSONObject;
|
|
|
-
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
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.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");
|
|
|
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);
|
|
|
}
|
|
|
List<ExamQuestion> oList = map.get(Boolean.TRUE);
|
|
@@ -263,8 +243,8 @@ public class FileController extends BaseApiController {
|
|
|
// 主观题有分组不更新
|
|
|
List<MarkGroup> groups = groupService.findByExamAndSubject(examId, subject.getCode());
|
|
|
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);
|
|
|
}
|
|
|
List<ExamQuestion> sList = map.get(Boolean.FALSE);
|
|
@@ -274,10 +254,10 @@ public class FileController extends BaseApiController {
|
|
|
fileService.uploadPaper(file.getInputStream(), md5, examId, subjectCode, format);
|
|
|
subject.setPaperFileType(format);
|
|
|
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) {
|
|
|
log.error("paper upload error", e);
|
|
|
throw ApiException.FILE_UPLOAD_ERROR.replaceMessage("paper upload error: " + e.getMessage());
|
|
@@ -324,12 +304,12 @@ public class FileController extends BaseApiController {
|
|
|
subjectCode = StringUtils.trimToNull(subjectCode);
|
|
|
Exam exam = validateExam(au, examId, ExamType.SCAN_IMAGE);
|
|
|
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 = "";
|
|
|
InputStream ins = null;
|
|
|
AnswerCard card = null;
|
|
@@ -343,9 +323,9 @@ public class FileController extends BaseApiController {
|
|
|
card = answerCardService.findByExamIdAndSubjectCode(examId, subjectCode);
|
|
|
if (card == null) {
|
|
|
card = new AnswerCard();
|
|
|
+ card.setExamId(examId);
|
|
|
card.setNumber(answerCardService.findMaxNumberByExamId(examId) + 1);
|
|
|
}
|
|
|
- card.setExamId(examId);
|
|
|
card.setMd5(md5);
|
|
|
card.setNeedAdapte(cardFile.isAdapted());
|
|
|
card.setSliceConfig(cardFile.getSliceConfig().toString());
|
|
@@ -356,10 +336,10 @@ public class FileController extends BaseApiController {
|
|
|
card.setUpdateTime(new Date());
|
|
|
fileService.uploadAnswerCard(ins, md5, examId, card.getNumber());
|
|
|
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());
|
|
|
} else {
|
|
|
ins = file.getInputStream();
|