فهرست منبع

扫描端两个接口增加考试类型验证:
获取考试
上传考生答案

ting.yin 5 سال پیش
والد
کامیت
fdf7788094

+ 16 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/query/ExamSearchQuery.java

@@ -9,6 +9,7 @@ import org.springframework.data.domain.Sort.Direction;
 import cn.com.qmth.stmms.biz.common.BaseQuery;
 import cn.com.qmth.stmms.biz.exam.model.Exam;
 import cn.com.qmth.stmms.common.enums.ExamStatus;
+import cn.com.qmth.stmms.common.enums.ExamType;
 
 public class ExamSearchQuery extends BaseQuery<Exam> {
 
@@ -22,6 +23,8 @@ public class ExamSearchQuery extends BaseQuery<Exam> {
 
     private Set<Integer> ids;
 
+    private Set<ExamType> typeSet;
+
     public void orderByIdDesc() {
         setSort(new Sort(Direction.DESC, "id"));
     }
@@ -55,6 +58,19 @@ public class ExamSearchQuery extends BaseQuery<Exam> {
         }
     }
 
+    public Set<ExamType> getTypeSet() {
+        return typeSet;
+    }
+
+    public void addTypes(ExamType type) {
+        if (typeSet == null) {
+            typeSet = new HashSet<ExamType>();
+        }
+        if (type != null) {
+            typeSet.add(type);
+        }
+    }
+
     public Set<Integer> getIds() {
         return ids;
     }

+ 11 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/ExamServiceImpl.java

@@ -25,6 +25,7 @@ import cn.com.qmth.stmms.biz.mark.model.PictureConfigItem;
 import cn.com.qmth.stmms.biz.mark.model.ProblemType;
 import cn.com.qmth.stmms.biz.mark.service.ProblemTypeService;
 import cn.com.qmth.stmms.common.enums.ExamStatus;
+import cn.com.qmth.stmms.common.enums.ExamType;
 
 @Service
 public class ExamServiceImpl extends BaseQueryService<Exam> implements ExamService {
@@ -126,6 +127,16 @@ public class ExamServiceImpl extends BaseQueryService<Exam> implements ExamServi
                     }
                 }
 
+                if (query.getTypeSet() != null && query.getTypeSet().size() > 0) {
+                    List<Predicate> typePredicates = new LinkedList<Predicate>();
+                    for (ExamType type : query.getTypeSet()) {
+                        typePredicates.add(cb.equal(root.get("type"), type));
+                    }
+                    if (!typePredicates.isEmpty()) {
+                        predicates.add(cb.or(typePredicates.toArray(new Predicate[typePredicates.size()])));
+                    }
+                }
+
                 if (query.getIds() != null && query.getIds().size() > 0) {
                     List<Predicate> idsPredicates = new LinkedList<Predicate>();
                     for (Integer id : query.getIds()) {

+ 2 - 0
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/ExamInfoController.java

@@ -29,6 +29,7 @@ import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
 import cn.com.qmth.stmms.biz.mark.model.PictureConfigItem;
 import cn.com.qmth.stmms.biz.user.model.User;
 import cn.com.qmth.stmms.common.enums.ExamStatus;
+import cn.com.qmth.stmms.common.enums.ExamType;
 import cn.com.qmth.stmms.common.utils.DateUtils;
 import cn.com.qmth.stmms.common.utils.RequestUtils;
 
@@ -63,6 +64,7 @@ public class ExamInfoController extends BaseApiController {
             if (query.getPageSize() < 1) {
                 query.setPageSize(20);
             }
+            query.addTypes(ExamType.SCAN_IMAGE);
             query.orderByIdDesc();
             query = examService.findByQuery(query);
             for (Exam exam : query.getResult()) {

+ 5 - 2
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/ScanController.java

@@ -27,6 +27,7 @@ import cn.com.qmth.stmms.biz.exam.service.ExamService;
 import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
 import cn.com.qmth.stmms.biz.user.model.User;
 import cn.com.qmth.stmms.common.enums.CheckType;
+import cn.com.qmth.stmms.common.enums.ExamType;
 import cn.com.qmth.stmms.common.utils.DateUtils;
 import cn.com.qmth.stmms.common.utils.RequestUtils;
 
@@ -63,7 +64,8 @@ public class ScanController extends BaseApiController {
         Exam exam = examService.findById(examId);
         JSONArray array = new JSONArray();
         // 判断上传权限
-        if (exam == null || !exam.getSchoolId().equals(user.getSchoolId())) {
+        if (exam == null || !exam.getSchoolId().equals(user.getSchoolId())
+                || !ExamType.SCAN_IMAGE.equals(exam.getType())) {
             throw ApiException.EXAM_NOT_ACCESSIBLED;
         }
         if (scStudentParameter != null && scStudentParameter.length > 0) {
@@ -85,7 +87,8 @@ public class ScanController extends BaseApiController {
                         array.add(obj);
                         // 增加人工审核数据
                         if (sc.isManual()) {
-                            checkStudentService.save(new CheckStudent(student.getId(), examId, student.getSubjectCode(), CheckType.MANUAL));
+                            checkStudentService.save(new CheckStudent(student.getId(), examId,
+                                    student.getSubjectCode(), CheckType.MANUAL));
                         }
                     }
                 }