|
@@ -1,11 +1,15 @@
|
|
package cn.com.qmth.examcloud.core.examwork.service.impl;
|
|
package cn.com.qmth.examcloud.core.examwork.service.impl;
|
|
|
|
|
|
import cn.com.qmth.examcloud.commons.exception.StatusException;
|
|
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.ExamSkipFaceRepo;
|
|
import cn.com.qmth.examcloud.core.examwork.dao.entity.ExamSkipFaceEntity;
|
|
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.ExamSkipFaceService;
|
|
import cn.com.qmth.examcloud.core.examwork.service.bean.ExamSkipFaceInfo;
|
|
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.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.collections4.CollectionUtils;
|
|
import org.apache.commons.lang3.ArrayUtils;
|
|
import org.apache.commons.lang3.ArrayUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
@@ -123,6 +127,16 @@ public class ExamSkipFaceServiceImpl implements ExamSkipFaceService {
|
|
examId, examStudentIds, enabled, operateId);
|
|
examId, examStudentIds, enabled, operateId);
|
|
|
|
|
|
if (enabled) {
|
|
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));
|
|
List<ExamSkipFaceEntity> exists = examSkipFaceRepo.findByExamIdAndExamStudentIdIn(examId, Arrays.asList(examStudentIds));
|
|
Map<Long, ExamSkipFaceEntity> maps = exists.stream().collect(Collectors.toMap(ExamSkipFaceEntity::getExamStudentId, Function.identity()));
|
|
Map<Long, ExamSkipFaceEntity> maps = exists.stream().collect(Collectors.toMap(ExamSkipFaceEntity::getExamStudentId, Function.identity()));
|
|
|
|
|