|
@@ -0,0 +1,68 @@
|
|
|
+package cn.com.qmth.examcloud.core.oe.task.service.impl;
|
|
|
+
|
|
|
+import cn.com.qmth.examcloud.core.oe.task.dao.ExamSyncCaptureRepo;
|
|
|
+import cn.com.qmth.examcloud.core.oe.task.dao.entity.ExamSyncCaptureEntity;
|
|
|
+import cn.com.qmth.examcloud.core.oe.task.service.ExamSyncCaptureService;
|
|
|
+import cn.com.qmth.examcloud.core.oe.task.service.bean.CompareFaceSyncInfo;
|
|
|
+import cn.com.qmth.examcloud.support.Constants;
|
|
|
+import cn.com.qmth.examcloud.web.redis.RedisClient;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.data.domain.Example;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @Description 同步抓拍照片
|
|
|
+ * @Author lideyin
|
|
|
+ * @Date 2019/12/6 16:20
|
|
|
+ * @Version 1.0
|
|
|
+ */
|
|
|
+@SuppressWarnings("ALL")
|
|
|
+@Service("examSyncCaptureService")
|
|
|
+public class ExamSyncCaptureServiceImpl implements ExamSyncCaptureService {
|
|
|
+
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ExamSyncCaptureRepo examSyncCaptureRepo;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private RedisClient redisClient;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 保存同步比较的抓拍照片结果
|
|
|
+ *
|
|
|
+ * @param studentId 学生id
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public void saveExamCaptureSyncCompareResult(Long studentId, Long examRecordDataId) {
|
|
|
+ String syncCopareResultkey = Constants.FACE_SYNC_COMPARE_RESULT_PREFIX + studentId;
|
|
|
+ CompareFaceSyncInfo compareFaceSyncInfo =
|
|
|
+ redisClient.get(syncCopareResultkey, CompareFaceSyncInfo.class);
|
|
|
+ if (compareFaceSyncInfo == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ ExamSyncCaptureEntity examCaptureEntity = new ExamSyncCaptureEntity();
|
|
|
+ examCaptureEntity.setExamRecordDataId(examRecordDataId);
|
|
|
+ examCaptureEntity.setFaceCompareResult(compareFaceSyncInfo.getFaceCompareResult());
|
|
|
+ examCaptureEntity.setFileName(compareFaceSyncInfo.getFileName());
|
|
|
+ examCaptureEntity.setFileUrl(compareFaceSyncInfo.getFileUrl());
|
|
|
+ examCaptureEntity.setIsStranger(compareFaceSyncInfo.getIsStranger());
|
|
|
+ examCaptureEntity.setIsPass(compareFaceSyncInfo.getIsPass());
|
|
|
+ examCaptureEntity.setProcessTime(compareFaceSyncInfo.getProcessTime());
|
|
|
+
|
|
|
+ //照片处理结果中如果已存在,则以已有的数据为准
|
|
|
+ ExamSyncCaptureEntity query = new ExamSyncCaptureEntity();
|
|
|
+ query.setExamRecordDataId(examRecordDataId);
|
|
|
+ query.setFileName(compareFaceSyncInfo.getFileName());
|
|
|
+ Example<ExamSyncCaptureEntity> example = Example.of(query);
|
|
|
+ if (!examSyncCaptureRepo.exists(example)) {
|
|
|
+ examSyncCaptureRepo.save(examCaptureEntity);
|
|
|
+ }
|
|
|
+
|
|
|
+ //删除redis中的同步数据
|
|
|
+ redisClient.delete(syncCopareResultkey);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|