deason 1 ano atrás
pai
commit
06640b662a

+ 14 - 0
examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/impl/ExamSkipFaceServiceImpl.java

@@ -1,11 +1,15 @@
 package cn.com.qmth.examcloud.core.examwork.service.impl;
 
 import cn.com.qmth.examcloud.commons.exception.StatusException;
+import cn.com.qmth.examcloud.commons.util.StringUtil;
 import cn.com.qmth.examcloud.core.examwork.dao.ExamSkipFaceRepo;
 import cn.com.qmth.examcloud.core.examwork.dao.entity.ExamSkipFaceEntity;
 import cn.com.qmth.examcloud.core.examwork.service.ExamSkipFaceService;
 import cn.com.qmth.examcloud.core.examwork.service.bean.ExamSkipFaceInfo;
 import cn.com.qmth.examcloud.core.examwork.service.bean.ExamSkipFaceQuery;
+import cn.com.qmth.examcloud.support.cache.CacheHelper;
+import cn.com.qmth.examcloud.support.cache.bean.ExamPropertyCacheBean;
+import cn.com.qmth.examcloud.support.enums.ExamProperties;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -123,6 +127,16 @@ public class ExamSkipFaceServiceImpl implements ExamSkipFaceService {
                 examId, examStudentIds, enabled, operateId);
 
         if (enabled) {
+            ExamPropertyCacheBean isFaceEnableProperty = CacheHelper.getExamProperty(examId, ExamProperties.IS_FACE_ENABLE.name());
+            boolean isFaceEnable = isFaceEnableProperty != null && StringUtil.isTrue(isFaceEnableProperty.getValue());
+
+            ExamPropertyCacheBean isFaceCheckProperty = CacheHelper.getExamProperty(examId, ExamProperties.IS_FACE_CHECK.name());
+            boolean isFaceCheck = isFaceCheckProperty != null && StringUtil.isTrue(isFaceCheckProperty.getValue());
+
+            if (isFaceEnable && isFaceCheck) {
+                throw new StatusException("当前考试未开启强制人脸验证,无需设置!");
+            }
+
             List<ExamSkipFaceEntity> exists = examSkipFaceRepo.findByExamIdAndExamStudentIdIn(examId, Arrays.asList(examStudentIds));
             Map<Long, ExamSkipFaceEntity> maps = exists.stream().collect(Collectors.toMap(ExamSkipFaceEntity::getExamStudentId, Function.identity()));