wangliang 2 жил өмнө
parent
commit
3f6608ab66

+ 1 - 2
themis-admin/src/main/java/com/qmth/themis/admin/api/SysController.java

@@ -498,8 +498,7 @@ public class SysController {
                                 lock = redisUtil.lock(SystemConstant.REDIS_LOCK_TENCENT_VIDEO_PREFIX + videoSource, SystemConstant.REDIS_LOCK_TENCENT_VIDEO_TIME_OUT);
                                 if (lock) {
                                     try {
-                                        TMTencentVideoMessage tencentVideoMessage = new TMTencentVideoMessage(response.getRequestId(), JacksonUtil.parseJson(response), t.getId(), videoSource, startTime, endTime, mediaBasicInfo.getMediaUrl());
-                                        tencentVideoMessageService.save(tencentVideoMessage);
+                                        tencentVideoMessageService.saveAndCount(new TMTencentVideoMessage(response.getRequestId(), JacksonUtil.parseJson(response), t.getId(), videoSource, startTime, endTime, mediaBasicInfo.getMediaUrl()));
                                         break;
                                     } finally {
                                         redisUtil.releaseLock(SystemConstant.REDIS_LOCK_TENCENT_VIDEO_PREFIX + videoSource);

+ 2 - 4
themis-admin/src/main/java/com/qmth/themis/admin/api/TENotifyController.java

@@ -1,7 +1,7 @@
 package com.qmth.themis.admin.api;
 
-import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qmth.themis.admin.config.DictionaryConfig;
 import com.qmth.themis.business.bean.admin.TencentEventBean;
 import com.qmth.themis.business.bean.status.MonitorStatusBean;
@@ -30,7 +30,6 @@ import com.qmth.themis.common.util.Result;
 import com.qmth.themis.common.util.ResultUtil;
 import com.tencentcloudapi.common.Sign;
 import io.swagger.annotations.*;
-import org.apache.http.client.utils.DateUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.transaction.annotation.Transactional;
@@ -115,8 +114,7 @@ public class TENotifyController {
                     if (Objects.nonNull(streamId)) {
                         String[] str = streamId.split("_");
                         recordId = Long.parseLong(str[2]);
-                        TMTencentVideoMessage tencentVideoMessage = new TMTencentVideoMessage(SystemConstant.getUuid(), jsonObject.toJSONString(), recordId, videoSource, startTime * 1000, endTime * 1000, String.valueOf(jsonObject.get("video_url")));
-                        tencentVideoMessageService.save(tencentVideoMessage);
+                        tencentVideoMessageService.saveAndCount(new TMTencentVideoMessage(SystemConstant.getUuid(), jsonObject.toJSONString(), recordId, videoSource, startTime * 1000, endTime * 1000, String.valueOf(jsonObject.get("video_url"))));
                     }
                 } finally {
                     redisUtil.releaseLock(SystemConstant.REDIS_LOCK_TENCENT_VIDEO_PREFIX + videoSource);

+ 6 - 0
themis-business/src/main/java/com/qmth/themis/business/service/TMTencentVideoMessageService.java

@@ -13,4 +13,10 @@ import com.qmth.themis.business.entity.TMTencentVideoMessage;
  */
 public interface TMTencentVideoMessageService extends IService<TMTencentVideoMessage> {
 
+    /**
+     * 保存视频
+     *
+     * @param tencentVideoMessage
+     */
+    public void saveAndCount(TMTencentVideoMessage tencentVideoMessage);
 }

+ 18 - 0
themis-business/src/main/java/com/qmth/themis/business/service/impl/TMTencentVideoMessageServiceImpl.java

@@ -1,5 +1,6 @@
 package com.qmth.themis.business.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.themis.business.dao.TMTencentVideoMessageMapper;
 import com.qmth.themis.business.entity.TMTencentVideoMessage;
@@ -17,4 +18,21 @@ import org.springframework.stereotype.Service;
 @Service
 public class TMTencentVideoMessageServiceImpl extends ServiceImpl<TMTencentVideoMessageMapper, TMTencentVideoMessage> implements TMTencentVideoMessageService {
 
+    /**
+     * 保存视频
+     *
+     * @param tencentVideoMessage
+     */
+    @Override
+    public void saveAndCount(TMTencentVideoMessage tencentVideoMessage) {
+        QueryWrapper<TMTencentVideoMessage> tencentVideoMessageQueryWrapper = new QueryWrapper<>();
+        tencentVideoMessageQueryWrapper.lambda().eq(TMTencentVideoMessage::getExamRecordId, tencentVideoMessage.getExamRecordId())
+                .eq(TMTencentVideoMessage::getVideoSource, tencentVideoMessage.getVideoSource())
+                .eq(TMTencentVideoMessage::getStartTime, tencentVideoMessage.getStartTime())
+                .eq(TMTencentVideoMessage::getEndTime, tencentVideoMessage.getEndTime());
+        int count = this.count(tencentVideoMessageQueryWrapper);
+        if (count == 0) {
+            this.save(tencentVideoMessage);
+        }
+    }
 }

+ 1 - 2
themis-mq/src/main/java/com/qmth/themis/mq/service/impl/MqLogicServiceImpl.java

@@ -349,8 +349,7 @@ public class MqLogicServiceImpl implements MqLogicService {
                         lock = redisUtil.lock(SystemConstant.REDIS_LOCK_TENCENT_VIDEO_PREFIX + videoSource, SystemConstant.REDIS_LOCK_TENCENT_VIDEO_TIME_OUT);
                         if (lock) {
                             try {
-                                TMTencentVideoMessage tencentVideoMessage = new TMTencentVideoMessage(response.getRequestId(), JacksonUtil.parseJson(response), recordId, videoSource, startTime, endTime, mediaBasicInfo.getMediaUrl());
-                                tencentVideoMessageService.save(tencentVideoMessage);
+                                tencentVideoMessageService.saveAndCount(new TMTencentVideoMessage(response.getRequestId(), JacksonUtil.parseJson(response), recordId, videoSource, startTime, endTime, mediaBasicInfo.getMediaUrl()));
                                 break;
                             } finally {
                                 redisUtil.releaseLock(SystemConstant.REDIS_LOCK_TENCENT_VIDEO_PREFIX + videoSource);