|
@@ -1,11 +1,33 @@
|
|
package cn.com.qmth.stmms.api.controller;
|
|
package cn.com.qmth.stmms.api.controller;
|
|
|
|
|
|
|
|
+import java.util.Arrays;
|
|
|
|
+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.RequestMapping;
|
|
|
|
+import org.springframework.web.bind.annotation.RequestMethod;
|
|
|
|
+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.api.exception.ApiException;
|
|
import cn.com.qmth.stmms.biz.exam.model.Exam;
|
|
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.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.ExamStudent;
|
|
import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
|
|
import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
|
|
import cn.com.qmth.stmms.biz.exam.service.ExamPackageService;
|
|
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.ExamService;
|
|
import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
|
|
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.ExamSubjectService;
|
|
@@ -17,21 +39,8 @@ import cn.com.qmth.stmms.common.enums.ExamStatus;
|
|
import cn.com.qmth.stmms.common.enums.ExamType;
|
|
import cn.com.qmth.stmms.common.enums.ExamType;
|
|
import cn.com.qmth.stmms.common.enums.Role;
|
|
import cn.com.qmth.stmms.common.enums.Role;
|
|
import cn.com.qmth.stmms.common.utils.RequestUtils;
|
|
import cn.com.qmth.stmms.common.utils.RequestUtils;
|
|
-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.RequestMapping;
|
|
|
|
-import org.springframework.web.bind.annotation.RequestMethod;
|
|
|
|
-import org.springframework.web.bind.annotation.RequestParam;
|
|
|
|
-import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
|
-import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
|
|
-import javax.servlet.http.HttpServletRequest;
|
|
|
|
-import java.util.Arrays;
|
|
|
|
|
|
+import com.google.common.io.ByteStreams;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 统一的对外文件服务接口
|
|
* 统一的对外文件服务接口
|
|
@@ -59,6 +68,9 @@ public class FileController extends BaseApiController {
|
|
@Autowired
|
|
@Autowired
|
|
private ExamPackageService packageService;
|
|
private ExamPackageService packageService;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private ExamQuestionService questionService;
|
|
|
|
+
|
|
private Exam validateExam(ApiUser au, Integer examId, ExamType... types) {
|
|
private Exam validateExam(ApiUser au, Integer examId, ExamType... types) {
|
|
Exam exam = examService.findById(examId);
|
|
Exam exam = examService.findById(examId);
|
|
if (exam == null || !exam.getSchoolId().equals(au.getSchoolId()) || exam.getStatus() != ExamStatus.START) {
|
|
if (exam == null || !exam.getSchoolId().equals(au.getSchoolId()) || exam.getStatus() != ExamStatus.START) {
|
|
@@ -208,6 +220,16 @@ public class FileController extends BaseApiController {
|
|
validateFormatType(format, FormatType.JSON);
|
|
validateFormatType(format, FormatType.JSON);
|
|
}
|
|
}
|
|
try {
|
|
try {
|
|
|
|
+ if (exam.getType() == ExamType.MULTI_MEDIA) {
|
|
|
|
+ questionService.deleteByExamAndSubject(examId, subjectCode);
|
|
|
|
+ String text = new String(ByteStreams.toByteArray(file.getInputStream()));
|
|
|
|
+ List<ExamQuestion> questionList = PaperJsonUtils.toSubject(subject, text);
|
|
|
|
+ questionService.save(questionList);
|
|
|
|
+ subjectService.updateScore(examId, subjectCode, true,
|
|
|
|
+ questionService.sumTotalScore(examId, subjectCode, true));
|
|
|
|
+ subjectService.updateScore(examId, subjectCode, false,
|
|
|
|
+ questionService.sumTotalScore(examId, subjectCode, false));
|
|
|
|
+ }
|
|
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);
|