|
@@ -8,9 +8,10 @@ import java.io.OutputStream;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
-import cn.com.qmth.examcloud.core.oe.admin.service.ExamStudentService;
|
|
|
|
import org.apache.commons.io.IOUtils;
|
|
import org.apache.commons.io.IOUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
+import org.slf4j.Logger;
|
|
|
|
+import org.slf4j.LoggerFactory;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
@@ -26,6 +27,7 @@ import cn.com.qmth.examcloud.commons.util.MD5;
|
|
import cn.com.qmth.examcloud.core.oe.admin.base.utils.Check;
|
|
import cn.com.qmth.examcloud.core.oe.admin.base.utils.Check;
|
|
import cn.com.qmth.examcloud.core.oe.admin.dao.ExamRecordDataRepo;
|
|
import cn.com.qmth.examcloud.core.oe.admin.dao.ExamRecordDataRepo;
|
|
import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamRecordDataEntity;
|
|
import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamRecordDataEntity;
|
|
|
|
+import cn.com.qmth.examcloud.core.oe.admin.service.ExamStudentService;
|
|
import cn.com.qmth.examcloud.core.oe.admin.service.OfflineExamService;
|
|
import cn.com.qmth.examcloud.core.oe.admin.service.OfflineExamService;
|
|
import cn.com.qmth.examcloud.core.oe.admin.service.bean.OfflineExamCourseInfo;
|
|
import cn.com.qmth.examcloud.core.oe.admin.service.bean.OfflineExamCourseInfo;
|
|
import cn.com.qmth.examcloud.reports.commons.bean.AdminOperateReport;
|
|
import cn.com.qmth.examcloud.reports.commons.bean.AdminOperateReport;
|
|
@@ -50,7 +52,8 @@ import io.swagger.annotations.ApiParam;
|
|
@RestController
|
|
@RestController
|
|
@RequestMapping("${$rmp.ctr.oe}/offlineExam")
|
|
@RequestMapping("${$rmp.ctr.oe}/offlineExam")
|
|
public class OfflineExamController extends ControllerSupport {
|
|
public class OfflineExamController extends ControllerSupport {
|
|
-
|
|
|
|
|
|
+ private static final Logger log = LoggerFactory.getLogger(OfflineExamController.class);
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private OfflineExamService offlineExamService;
|
|
private OfflineExamService offlineExamService;
|
|
|
|
|
|
@@ -191,7 +194,18 @@ public class OfflineExamController extends ControllerSupport {
|
|
if (StringUtils.isBlank(offlineUploadFileType) || "[]".equals(offlineUploadFileType)) {
|
|
if (StringUtils.isBlank(offlineUploadFileType) || "[]".equals(offlineUploadFileType)) {
|
|
throw new StatusException("OfflineExamController-submitPaper-003", "当前考试设置不允许上传附件");
|
|
throw new StatusException("OfflineExamController-submitPaper-003", "当前考试设置不允许上传附件");
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ String upperFileType=fileType.toUpperCase();
|
|
|
|
+ if (("PDF".equals(upperFileType) || "ZIP".equals(upperFileType))&&fileArray.length>1){
|
|
|
|
+ StringBuilder sb=new StringBuilder();
|
|
|
|
+ for (int i = 0; i < fileArray.length; i++) {
|
|
|
|
+ MultipartFile file = fileArray[i];
|
|
|
|
+ String fileName = file.getOriginalFilename();
|
|
|
|
+ sb.append(fileName).append(",");
|
|
|
|
+ }
|
|
|
|
+ sb.deleteCharAt(sb.length()-1);
|
|
|
|
+ log.error("batchSubmitPaper-duplicate:"+examRecordDataId+":"+sb);
|
|
|
|
+ throw new StatusException("000500", "上传"+upperFileType+"类型文件时只能传一个文件");
|
|
|
|
+ }
|
|
List<File> resultFiles=new ArrayList<>();
|
|
List<File> resultFiles=new ArrayList<>();
|
|
for (int i = 0; i < fileArray.length; i++) {
|
|
for (int i = 0; i < fileArray.length; i++) {
|
|
MultipartFile file = fileArray[i];
|
|
MultipartFile file = fileArray[i];
|
|
@@ -199,7 +213,7 @@ public class OfflineExamController extends ControllerSupport {
|
|
int index = fileName.lastIndexOf(".");
|
|
int index = fileName.lastIndexOf(".");
|
|
String fileSuffix = fileName.substring(index + 1, fileName.length()).toUpperCase();
|
|
String fileSuffix = fileName.substring(index + 1, fileName.length()).toUpperCase();
|
|
|
|
|
|
- String upperFileType=fileType.toUpperCase();
|
|
|
|
|
|
+
|
|
if (!"PDF".equals(upperFileType) && !"ZIP".equals(upperFileType)
|
|
if (!"PDF".equals(upperFileType) && !"ZIP".equals(upperFileType)
|
|
&& !"IMAGE".equals(upperFileType)) {
|
|
&& !"IMAGE".equals(upperFileType)) {
|
|
throw new StatusException("100001", "文件类型不正确");
|
|
throw new StatusException("100001", "文件类型不正确");
|