lyhzzz před 1 rokem
rodič
revize
6f583ed71d

+ 3 - 0
src/main/java/com/fdkankan/fusion/common/util/RedisKeyUtil.java

@@ -2,6 +2,7 @@ package com.fdkankan.fusion.common.util;
 
 public class RedisKeyUtil {
 
+
     public static Long tokenTime = 2 * 60 * 60L;
     public static Long projectRandCodeKeyTime = 14 * 24 * 60 * 60L ;
     public static String mergerVideoKey = "fusion:merger:video:";
@@ -17,4 +18,6 @@ public class RedisKeyUtil {
 
 
     public static String loginAuthCode = "fusion:login:auth:%s";
+
+    public static final String SCENE_VERSION = "scenejson:num:%s";
 }

+ 13 - 4
src/main/java/com/fdkankan/fusion/service/impl/DownService.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.fdkankan.fusion.common.ResultCode;
 import com.fdkankan.fusion.common.enums.DownloadStatusEnum;
+import com.fdkankan.fusion.common.util.RedisKeyUtil;
 import com.fdkankan.fusion.entity.*;
 import com.fdkankan.fusion.exception.BusinessException;
 import com.fdkankan.fusion.httpClient.LaserService;
@@ -46,11 +47,19 @@ public class DownService implements IDownService {
     private Integer getSceneVersion( ScenePlus scenePlus) {
         Integer version = 0;
         if(scenePlus !=null){
-            SceneEditInfo sceneEditInfo = sceneEditInfoService.getByScenePlusId(scenePlus.getId());
-            if(sceneEditInfo == null){
-                throw new BusinessException(ResultCode.SCENE_NOT_EXIST);
+            String redisKey = String.format(RedisKeyUtil.SCENE_VERSION,scenePlus.getNum());
+            if(!redisUtil.hasKey(redisKey) || StringUtils.isBlank(redisUtil.get(redisKey))) {
+                SceneEditInfo sceneEditInfo = sceneEditInfoService.getByScenePlusId(scenePlus.getId());
+                if(sceneEditInfo == null){
+                    throw new BusinessException(ResultCode.SCENE_NOT_EXIST);
+                }
+                version = sceneEditInfo.getVersion();
+            }else {
+                String redisObj = redisUtil.get(redisKey);
+                JSONObject obj = JSONObject.parseObject(redisObj);
+                version = obj.getInteger("version");
             }
-            version = sceneEditInfo.getVersion();
+
         }
         return version;
     }