瀏覽代碼

计算结果处理

dengsixing 3 年之前
父節點
當前提交
798b34611f

+ 5 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/listener/BuildSceneResultMQListener.java

@@ -20,6 +20,7 @@ import com.fdkankan.platform.api.feign.PlatformGoodsClient;
 import com.fdkankan.platform.api.feign.PlatformUserClient;
 import com.fdkankan.platform.api.vo.CameraDetail;
 import com.fdkankan.platform.api.vo.UserIncrement;
+import com.fdkankan.redis.constant.RedisKey;
 import com.fdkankan.redis.util.RedisUtil;
 import com.fdkankan.scene.bean.SceneJsonBean;
 import com.fdkankan.scene.entity.SceneEditControls;
@@ -196,10 +197,14 @@ public class BuildSceneResultMQListener implements RocketMQListener<String> {
 
             //写scene.json
             String sceneJson = buildScenePreService.writeSceneJson(sceneCode, videosJson, sceneEditInfo, sceneEditControls, scenePro, sceneProExt);
+
             //上传sceneJson文件
             String sceneJsonPath = String.format(UploadFilePath.DATA_VIEW_PATH+"scene.json", sceneCode);
             uploadToOssUtil.upload(sceneJson.getBytes(), sceneJsonPath);
 
+            //scenejson写入缓存
+            redisUtil.set(String.format(RedisKey.SCENE_JSON, sceneCode), sceneJson);
+
         }catch (Exception e){
             log.error("场景计算后置处理出错", e);
             //发送钉钉

+ 9 - 6
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/BuildScenePreServiceImpl.java

@@ -12,6 +12,8 @@ import static com.fdkankan.push.PushMessageConfig.IOS_SECRET_Z;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.fdkankan.common.constant.ConstantFilePath;
@@ -460,11 +462,11 @@ public class BuildScenePreServiceImpl implements IBuildScenePreService {
         SceneEditControls sceneEditControls, ScenePro scenePro, SceneProExt sceneProExt)  throws Exception{
         String sceneJsonPath = String.format(ConstantFilePath.SCENE_PATH_FORMAT, num);
         String strsceneInfos = FileUtils.readFile(sceneJsonPath);
-        JSONObject scenejson = new JSONObject();
+        SceneJsonBean sceneJson = null;
         if(strsceneInfos!=null){
-            scenejson = JSONObject.parseObject(strsceneInfos);
+            sceneJson = JSON.parseObject(strsceneInfos, SceneJsonBean.class);
         }else{
-            SceneJsonBean sceneJson = BeanUtil.copyProperties(sceneEditInfo, SceneJsonBean.class);
+            sceneJson = BeanUtil.copyProperties(sceneEditInfo, SceneJsonBean.class);
             SceneEditControlsVO sceneEditControlsVO = BeanUtil.copyProperties(sceneEditControls, SceneEditControlsVO.class);
             sceneJson.setControls(sceneEditControlsVO);
             sceneJson.setNum(num);
@@ -473,8 +475,9 @@ public class BuildScenePreServiceImpl implements IBuildScenePreService {
             sceneJson.setSceneFrom(sceneProExt.getSceneFrom());
             sceneJson.setVideos(videosJson);
         }
-        scenejson.put("videos", videosJson);
-        FileUtils.writeFile(sceneJsonPath, scenejson.toString());
-        return scenejson.toString();
+        sceneJson.setVideos(videosJson);
+        String sceneJsonStr = JSON.toJSONString(sceneJson);
+        FileUtils.writeFile(sceneJsonPath, sceneJsonStr);
+        return sceneJsonStr;
     }
 }

+ 3 - 2
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneEditInfoServiceImpl.java

@@ -394,7 +394,8 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
 
         ScenePro scenePro = sceneProService.findBySceneNum(num);
 
-        String sceneJson = redisUtil.get(String.format(RedisKey.SCENE_JSON, num));
+        String key = String.format(RedisKey.SCENE_JSON, num);
+        String sceneJson = redisUtil.get(key);
         SceneInfoVO sceneInfoVO = null;
         //先查询redis
         if(StrUtil.isNotEmpty(sceneJson)){
@@ -409,8 +410,8 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         if(StrUtil.isEmpty(objectContent))
             return null;
         sceneInfoVO = JSON.parseObject(objectContent, SceneInfoVO.class);
-
         this.setExtData(sceneInfoVO, scenePro.getCameraId());
+        redisUtil.set(key, JSON.toJSONString(sceneInfoVO));
 
         return sceneInfoVO;
     }