|
@@ -23,6 +23,7 @@ import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import cn.com.qmth.stmms.api.exception.ApiException;
|
|
|
import cn.com.qmth.stmms.biz.exam.model.AnswerCard;
|
|
|
+import cn.com.qmth.stmms.biz.exam.model.AnswerCardSubject;
|
|
|
import cn.com.qmth.stmms.biz.exam.model.Exam;
|
|
|
import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
|
|
|
import cn.com.qmth.stmms.biz.exam.service.AnswerCardService;
|
|
@@ -57,7 +58,8 @@ public class CardController extends BaseApiController {
|
|
|
|
|
|
private Exam validateExam(ApiUser au, Integer examId, ExamType... types) {
|
|
|
Exam exam = examService.findById(examId);
|
|
|
- if (exam == null || !validateSchool(au.getSchoolId(), exam.getSchoolId()) || exam.getStatus() != ExamStatus.START) {
|
|
|
+ if (exam == null || !validateSchool(au.getSchoolId(), exam.getSchoolId())
|
|
|
+ || exam.getStatus() != ExamStatus.START) {
|
|
|
throw ApiException.EXAM_NOT_ACCESSIBLED;
|
|
|
}
|
|
|
if (types != null && types.length > 0 && !Arrays.asList(types).contains(exam.getType())) {
|
|
@@ -81,8 +83,8 @@ public class CardController extends BaseApiController {
|
|
|
@RequestParam(required = false) Integer number, @RequestParam(required = false) String subjectCode,
|
|
|
@RequestParam String source, @RequestParam Integer paperCount, @RequestParam Boolean singlePage,
|
|
|
@RequestParam Boolean needAdapte, @RequestParam(required = false) String parameter,
|
|
|
- @RequestParam(required = false) String remark, @RequestParam String md5, @RequestParam String sliceConfig,
|
|
|
- @RequestParam MultipartFile file) {
|
|
|
+ @RequestParam(required = false) Integer dpi, @RequestParam(required = false) String remark,
|
|
|
+ @RequestParam String md5, @RequestParam String sliceConfig, @RequestParam MultipartFile file) {
|
|
|
ApiUser au = RequestUtils.getApiUser(request);
|
|
|
subjectCode = StringUtils.trimToNull(subjectCode);
|
|
|
validateExam(au, examId, ExamType.SCAN_IMAGE);
|
|
@@ -102,6 +104,7 @@ public class CardController extends BaseApiController {
|
|
|
card.setExamId(examId);
|
|
|
card.setNumber(number);
|
|
|
}
|
|
|
+ card.setDpi(dpi);
|
|
|
card.setSliceConfig(sliceConfig);
|
|
|
card.setMd5(md5);
|
|
|
card.setNeedAdapte(needAdapte);
|
|
@@ -110,9 +113,8 @@ public class CardController extends BaseApiController {
|
|
|
card.setRemark(remark);
|
|
|
card.setSinglePage(singlePage);
|
|
|
card.setSource(CardSource.CLIENT);
|
|
|
- card.setSubjectCode(subjectCode);
|
|
|
card.setUpdateTime(new Date());
|
|
|
- answerCardService.save(card);
|
|
|
+ answerCardService.save(card, subjectCode);
|
|
|
JSONObject result = new JSONObject();
|
|
|
result.accumulate("number", number);
|
|
|
result.accumulate("updateTime", System.currentTimeMillis());
|
|
@@ -141,13 +143,15 @@ public class CardController extends BaseApiController {
|
|
|
JSONObject result = new JSONObject();
|
|
|
result.accumulate("examId", answerCard.getExamId());
|
|
|
result.accumulate("number", answerCard.getNumber());
|
|
|
- result.accumulate("subjectCode", StringUtils.trimToEmpty(answerCard.getSubjectCode()));
|
|
|
- if (answerCard.getSubjectCode() != null) {
|
|
|
- ExamSubject subject = subjectService.find(examId, answerCard.getSubjectCode());
|
|
|
- result.accumulate("subjectName", subject.getName());
|
|
|
- } else {
|
|
|
- result.accumulate("subjectName", "");
|
|
|
+ result.accumulate("code", StringUtils.trimToEmpty(answerCard.getCode()));
|
|
|
+ result.accumulate("dpi", answerCard.getDpi() == null ? 0 : answerCard.getDpi());
|
|
|
+ List<AnswerCardSubject> subjects = answerCardService.getSubjectByExamIdAndNumber(answerCard.getExamId(),
|
|
|
+ answerCard.getNumber());
|
|
|
+ JSONArray subjectList = new JSONArray();
|
|
|
+ for (AnswerCardSubject a : subjects) {
|
|
|
+ subjectList.add(a.getSubjectCode());
|
|
|
}
|
|
|
+ result.accumulate("subjectList", subjectList);
|
|
|
result.accumulate("paperCount", answerCard.getPaperCount() == null ? "" : answerCard.getPaperCount());
|
|
|
result.accumulate("path", fileService.getAnswerCardUri(answerCard.getExamId(), answerCard.getNumber()));
|
|
|
result.accumulate("md5", answerCard.getMd5());
|