Forráskód Böngészése

添加遗漏的实现类

lideyin 5 éve
szülő
commit
03028eb36c

+ 0 - 1
examcloud-core-oe-task-service/src/main/java/cn/com/qmth/examcloud/core/oe/task/service/ExamSyncCaptureService.java

@@ -9,6 +9,5 @@ import org.springframework.transaction.annotation.Transactional;
  * @Version 1.0
  */
 public interface ExamSyncCaptureService {
-	@Transactional
 	void saveExamCaptureSyncCompareResult(Long studentId, Long examRecordDataId);
 }

+ 68 - 0
examcloud-core-oe-task-service/src/main/java/cn/com/qmth/examcloud/core/oe/task/service/impl/ExamSyncCaptureServiceImpl.java

@@ -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);
+    }
+
+}