wangliang 4 жил өмнө
parent
commit
124b996e47

+ 25 - 9
themis-business/src/main/java/com/qmth/themis/business/service/impl/TEExamServiceImpl.java

@@ -15,11 +15,7 @@ import com.qmth.themis.business.dto.response.TEExamDto;
 import com.qmth.themis.business.dto.response.TEExamQueryDto;
 import com.qmth.themis.business.entity.TEExam;
 import com.qmth.themis.business.entity.TOeExamRecord;
-import com.qmth.themis.business.enums.ExamRecordStatusEnum;
-import com.qmth.themis.business.enums.FinishExamResultEnum;
-import com.qmth.themis.business.enums.FinishTypeEnum;
-import com.qmth.themis.business.enums.InvigilateVerifyEnum;
-import com.qmth.themis.business.enums.ReviewResultEnum;
+import com.qmth.themis.business.enums.*;
 import com.qmth.themis.business.service.*;
 import com.qmth.themis.business.util.OssUtil;
 import com.qmth.themis.business.util.RedisUtil;
@@ -107,11 +103,11 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
                 List<TEExamActivityDto> teExamActivityList = teExamActivityService.getWaitingExam(studentId, s.getId(), s.getExamActivityId());
                 teExamActivityList.forEach(v -> {
                     if (Objects.nonNull(v.getInProcessLivenessFixedRangeStr())) {
-                        String[] longs = v.getInProcessLivenessFixedRangeStr().trim().split(",");
+                        String[] longs = v.getInProcessLivenessFixedRangeStr().trim().replaceAll(" ", "").split(",");
                         List inProcessLivenessFixedRange = new ArrayList();
                         for (int i = 0; i < longs.length; i++) {
-                            Long l = Long.valueOf(longs[i].trim());
-                            inProcessLivenessFixedRange.add(l);
+                            Integer integer = Integer.valueOf(longs[i].trim());
+                            inProcessLivenessFixedRange.add(integer);
                         }
                         if (Objects.equals(inProcessLivenessFixedRange.toString().trim().replaceAll(" ", ""), "")) {
                             v.setInProcessLivenessFixedRange(null);
@@ -120,10 +116,30 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
                         }
                     }
                     if (Objects.nonNull(v.getMonitorVideoSourceStr()) && !Objects.equals(v.getMonitorVideoSourceStr().toString().trim().replaceAll(" ", ""), "")) {
-                        v.setMonitorVideoSource(Arrays.asList(v.getMonitorVideoSourceStr().trim().split(",")));
+                        v.setMonitorVideoSource(Arrays.asList(v.getMonitorVideoSourceStr().trim().toUpperCase().replaceAll(" ", "").split(",")));
+                        //加入monitorAudioEnable逻辑
+                        if (v.getMonitorVideoSourceStr().toUpperCase().contains(MonitorVideoSourceEnum.CLIENT_SCREEN.name()) && v.getMonitorVideoSourceStr().toUpperCase().contains(MonitorVideoSourceEnum.CLIENT_CAMERA.name())) {
+                            v.setMonitorAudioEnable(true);
+                        }
+                        //加入hardwareTest逻辑
+                        if (v.getMonitorVideoSourceStr().toUpperCase().contains(MonitorVideoSourceEnum.CLIENT_CAMERA.name()) || (Objects.nonNull(v.getEntryAuthenticationPolicy()) && (Objects.equals(v.getEntryAuthenticationPolicy(), EntryAuthenticationPolicyEnum.LIVENESS.name()) || Objects.equals(v.getEntryAuthenticationPolicy(), EntryAuthenticationPolicyEnum.FACE_VERIFY_FORCE.name()))) || (Objects.nonNull(v.getCameraPhotoUpload()) && v.getCameraPhotoUpload() == 1)) {
+                            List<String> hardwareTest = v.getHardwareTest();
+                            if (Objects.isNull(hardwareTest)) {
+                                hardwareTest = new ArrayList<>();
+                            }
+                            hardwareTest.add(HardwareTestEnum.CAMERA.name());
+                            //取course缓存
+                            ExamCourseCacheBean examCourseCacheBean = teExamCourseService.getExamCourseCacheBean(v.getExamId(), v.getCourseCode());
+                            if (Objects.nonNull(examCourseCacheBean) && Objects.nonNull(examCourseCacheBean.getHasAudio()) && examCourseCacheBean.getHasAudio() == 1) {
+                                hardwareTest.add(HardwareTestEnum.AUDIOPLAY.name());
+                            }
+                            v.setHardwareTest(hardwareTest);
+                        }
                     } else {
                         v.setMonitorVideoSource(null);
                     }
+                    ExamStudentCacheBean examStudentCacheBean = teExamStudentService.getExamStudnetCacheBean(v.getExamStudentId());
+                    v.setLeftExamCount(examStudentCacheBean.getLeftExamCount());
                 });
                 s.setActivities(teExamActivityList);
             });