Преглед на файлове

project-jmga-2.2.0-2.0.1

dengsixing преди 4 седмици
родител
ревизия
422c4e2c12

+ 4 - 0
src/main/java/com/fdkankan/contro/constant/RedisConstants.java

@@ -6,4 +6,8 @@ public class RedisConstants {
     public static final String FOLDER_LOCK_BUILD = "model-controls:lock:%s";
     public static final String SCENE_PREPARE_BUILDING = "model-controls:scene:building:prepare:message:";
     public static final String SCENE_POST_BUILDING = "model-controls:scene:building:post:message:";
+
+    public static final String LOCK_UPLOAD_SHOOTING = "lock:uploadshooting:upload:@uuid@:@index@";
+    public static final String BATCH_ID_UPLOAD_SHOOTING = "uploadshooting:upload:@uuid@:@INDEX@";
+
 }

+ 12 - 0
src/main/java/com/fdkankan/contro/mq/listener/UploadShootingListener.java

@@ -1,10 +1,13 @@
 package com.fdkankan.contro.mq.listener;
 
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.fdkankan.common.constant.CommonStatus;
 import com.fdkankan.common.constant.CommonSuccessStatus;
 import com.fdkankan.common.constant.SceneStatus;
+import com.fdkankan.contro.constant.RedisConstants;
 import com.fdkankan.contro.entity.OrigFileUpload;
+import com.fdkankan.contro.entity.OrigFileUploadBatch;
 import com.fdkankan.contro.entity.ScenePlus;
 import com.fdkankan.contro.service.IOrigFileUploadBatchService;
 import com.fdkankan.contro.service.IOrigFileUploadService;
@@ -12,6 +15,7 @@ import com.fdkankan.contro.service.IScenePlusService;
 import com.fdkankan.contro.util.HttpUtilExt;
 import com.fdkankan.model.constants.ConstantFilePath;
 import com.fdkankan.rabbitmq.util.RabbitMqProducer;
+import com.fdkankan.redis.util.RedisUtil;
 import com.rabbitmq.client.Channel;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.amqp.core.Message;
@@ -36,6 +40,8 @@ public class UploadShootingListener {
     private RabbitMqProducer mqProducer;
     @Autowired
     private IScenePlusService scenePlusService;
+    @Resource
+    private RedisUtil redisUtil;
 
 
     @RabbitListener(
@@ -57,6 +63,12 @@ public class UploadShootingListener {
             }
             params.put("path", path);
             mqProducer.sendByWorkQueue("laser-preview-scene-handler", params);
+
+            String batchKey = RedisConstants.BATCH_ID_UPLOAD_SHOOTING.replace("@uuid@", uuid).replace("@index@", String.valueOf(index));
+            redisUtil.del(batchKey);
+
+            origFileUploadBatchService.update(new LambdaUpdateWrapper<OrigFileUploadBatch>().set(OrigFileUploadBatch::getStatus, 3).eq(OrigFileUploadBatch::getBatchId,batchId));
+
         }catch (Exception e){
             log.error("场景预览文件处理出错, num:{}", num, e);
         }finally {

+ 1 - 0
src/main/java/com/fdkankan/contro/mq/service/impl/CallBuildServiceImpl.java

@@ -49,6 +49,7 @@ public class CallBuildServiceImpl implements CallBuildService {
         List<OrigFileUploadBatch> list = origFileUploadBatchService.list(
                 new LambdaQueryWrapper<OrigFileUploadBatch>()
                         .eq(OrigFileUploadBatch::getStatus, 4)
+                        .eq(OrigFileUploadBatch::getCallType, 1)
                         .orderByAsc(OrigFileUploadBatch::getCreateTime));
         if(CollUtil.isEmpty(list)){
             return;

+ 8 - 5
src/main/java/com/fdkankan/contro/service/impl/UploadShootingServiceImpl.java

@@ -11,6 +11,7 @@ import com.fdkankan.common.util.AesUtil;
 import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.contro.bean.SendCallAlgorithmDetail;
 import com.fdkankan.contro.constant.ApiConstant;
+import com.fdkankan.contro.constant.RedisConstants;
 import com.fdkankan.contro.entity.*;
 import com.fdkankan.contro.enums.CameraTypeEnum;
 import com.fdkankan.contro.httpclient.MyClient;
@@ -88,12 +89,14 @@ public class UploadShootingServiceImpl implements UploadShootingService {
         }
         String uuid = details.getUuid();
 
-        boolean lock = redisLockUtil.lock("lock:uploadshooting:upload:uuid:" + uuid+ ":index:" + details.getIndex(), uuid, 1);
+        String lockKey = RedisConstants.LOCK_UPLOAD_SHOOTING.replace("@uuid@", details.getUuid()).replace("@index@", String.valueOf(details.getIndex()));
+        boolean lock = redisLockUtil.lock(lockKey, uuid, 1);
         if (!lock) {//如果拿不到锁,证明
             Thread.sleep(2000L);
         }
 
-        String batchId = redisUtil.get("uploadshooting:upload:uuid:" + uuid + ":index:" + details.getIndex());
+        String batchKey = RedisConstants.BATCH_ID_UPLOAD_SHOOTING.replace("@uuid@", details.getUuid()).replace("@index@", String.valueOf(details.getIndex()));
+        String batchId = redisUtil.get(batchKey);
         if (StrUtil.isEmpty(batchId)) {
             OrigFileUploadBatch condition = new OrigFileUploadBatch();
             condition.setUuid(uuid);
@@ -102,10 +105,10 @@ public class UploadShootingServiceImpl implements UploadShootingService {
             condition.setCallType(2);
             OrigFileUploadBatch origFileUploadBatch = origFileUploadBatchService.getByCondition(condition);
             if (Objects.isNull(origFileUploadBatch)) {
-                batchId = redisUtil.get("uploadshooting:upload:uuid:" + uuid + ":index:" + details.getIndex());
+                batchId = redisUtil.get(batchKey);
                 if (StrUtil.isEmpty(batchId)) {
                     batchId = UUID.fastUUID().toString().replace("-", "");
-                    redisUtil.set("uploadshooting:upload:uuid:" + uuid+ ":index:" + details.getIndex(), batchId);
+                    redisUtil.set(batchKey, batchId);
                     origFileUploadBatch = new OrigFileUploadBatch();
                     origFileUploadBatch.setUuid(uuid);
                     origFileUploadBatch.setBatchId(batchId);
@@ -124,7 +127,7 @@ public class UploadShootingServiceImpl implements UploadShootingService {
         origFileUploadService.save(origFileUpload);
 
         if (lock) {
-            redisLockUtil.unlockLua("lock:single:upload:uuid:" + uuid + ":index:" + details.getIndex(), uuid);
+            redisLockUtil.unlockLua(lockKey, uuid);
         }
 
     }