dengsixing 1 éve
szülő
commit
5fefbdc0a0

+ 2 - 0
src/main/java/com/fdkankan/scene/bean/SceneJsonBean.java

@@ -236,5 +236,7 @@ public class SceneJsonBean {
     //动态面板
     private int dynamicPanel;
 
+    private Integer floorLogoType;
+
 
 }

+ 6 - 0
src/main/java/com/fdkankan/scene/entity/SceneEditControls.java

@@ -149,6 +149,12 @@ public class SceneEditControls implements Serializable {
     @TableField("show_all_model")
     private Integer showAllModel;
 
+    /**
+     * 是否显示监控范围
+     */
+    @TableField("show_surveil_scope")
+    private Integer showSurveilScope;
+
 
 
     /**

+ 6 - 0
src/main/java/com/fdkankan/scene/entity/SceneEditInfoExt.java

@@ -121,6 +121,12 @@ public class SceneEditInfoExt {
     private String started;
 
     /**
+     * 地面logo类型(0-指北针,1-图标)
+     */
+    @TableField("floor_logo_type")
+    private Integer floorLogoType;
+
+    /**
      * 创建时间
      */
     @TableField("create_time")

+ 6 - 0
src/main/java/com/fdkankan/scene/service/impl/SceneEditInfoServiceImpl.java

@@ -600,6 +600,9 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         if(Objects.isNull(sceneInfoVO.getFloorPlanCompass())){
             sceneInfoVO.setFloorPlanCompass(0f);
         }
+        if(Objects.isNull(sceneInfoVO.getFloorLogoType())){
+            sceneInfoVO.setFloorLogoType(1);
+        }
         SceneEditControlsVO controls = sceneInfoVO.getControls();
         if(Objects.isNull(controls.getShowShare())){
             controls.setShowShare(CommonStatus.YES.code().intValue());
@@ -613,6 +616,9 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         if(Objects.isNull(controls.getShowDrawTitle())){
             controls.setShowDrawTitle(CommonStatus.YES.code().intValue());
         }
+        if(Objects.isNull(controls.getShowSurveilScope())){
+            controls.setShowSurveilScope(CommonStatus.YES.code().intValue());
+        }
 
         sceneInfoVO.setPayStatus(scenePlus.getPayStatus());
 

+ 58 - 20
src/main/java/com/fdkankan/scene/service/impl/SceneProServiceImpl.java

@@ -476,15 +476,33 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             return;
 
         //数据验证,新增、修改状态,hotdata不能为空
+        Set<String> linkSids = new HashSet<>();
         for (String sid : addOrUpdateMap.keySet()) {
             String hotData = addOrUpdateMap.get(sid);
             if(StrUtil.isEmpty(hotData)){
                 throw new BusinessException(ErrorCode.FAILURE_CODE_7004);
             }
+            JSONObject jsonObject = JSON.parseObject(hotData);
+            JSONArray media = jsonObject.getJSONArray("media");
+            media.stream().forEach(v->{
+                JSONObject o = (JSONObject) v;
+                String type = o.getString("type");
+                if(StrUtil.isNotEmpty(type) && type.equals("link")){
+                    linkSids.add(sid);
+                }
+            });
         }
 
-        //批量写入缓存
+        //如果是修改,且由多媒体改成link的方式,将原有的多媒体文件删除
         String key = String.format(RedisKey.SCENE_HOT_DATA, num);
+        List<String> updateList = redisUtil.hMultiGet(key, new ArrayList<>(linkSids));
+        try {
+            this.deleteHotMediaFile(num, updateList);
+        }catch (Exception e){
+            log.error("删除多媒体文件失败", e);
+        }
+
+        //批量写入缓存
         redisUtil.hmset(key, addOrUpdateMap);
     }
 
@@ -502,34 +520,54 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         List<String> deletDataList = redisUtil.hMultiGet(key, deleteSidList);
         if(CollUtil.isEmpty(deletDataList))
             return;
-        String userDataPath = String.format(UploadFilePath.USER_EDIT_PATH, num);
+
+        //从redis中移除热点数据
+        redisUtil.hdel(key, deleteSidList.toArray());
 
         //删除图片音频视频等资源文件
-        for (String data : deletDataList) {
+        this.deleteHotMediaFile(num, deletDataList);
+
+    }
+
+    private void deleteHotMediaFile(String num, List<String> hotdataList) throws Exception {
+        if(CollUtil.isEmpty(hotdataList)){
+            return;
+        }
+        //删除图片音频视频等资源文件
+        List<String> deleteFileList = new ArrayList<>();
+        for (String data : hotdataList) {
             if(StrUtil.isBlank(data)){
                 continue;
             }
             JSONObject jsonObject = JSON.parseObject(data);
-            String sid = jsonObject.getString("sid");
-            if(jsonObject.containsKey("media")){
-                String fileType = jsonObject.getString("media");
-                if(fileType.contains("photo"))
-                {
-                    fYunFileService.deleteFile(bucket,userDataPath + "hot"+sid+".jpg");
-                }
-                if(fileType.contains("audio") || fileType.contains("voice"))
-                {
-                    fYunFileService.deleteFile(bucket,userDataPath + "hot"+sid+".mp3");
-                }
-                if(fileType.contains("video"))
-                {
-                    fYunFileService.deleteFile(bucket,userDataPath + "hot"+sid+".mp4");
-                }
+
+            //删除北京音乐
+            JSONObject bgm = jsonObject.getJSONObject("bgm");
+            if(Objects.nonNull(bgm) && StrUtil.isNotEmpty(bgm.getString("src"))){
+                String bgmSrc = bgm.getString("src");
+                deleteFileList.add(bgmSrc);
             }
+
+            //删除图片、视频
+            JSONArray media = jsonObject.getJSONArray("media");
+            media.stream().forEach(v->{
+                JSONObject o = (JSONObject) v;
+                String src = o.getString("src");
+                String type = o.getString("type");
+                if(StrUtil.isNotEmpty(src) && !type.equals("link")){
+                    deleteFileList.add(src);
+                }
+            });
         }
 
-        //从redis中移除热点数据
-        redisUtil.hdel(key, deleteSidList.toArray());
+        if(CollUtil.isEmpty(deleteFileList)){
+            return;
+        }
+        sceneUploadService.delete(
+                DeleteFileParamVO.builder()
+                        .num(num)
+                        .fileNames(deleteFileList)
+                        .bizType("tag-media").build());
     }
 
     @Override

+ 2 - 0
src/main/java/com/fdkankan/scene/vo/SceneEditControlsParamVO.java

@@ -127,6 +127,8 @@ public class SceneEditControlsParamVO implements Serializable {
      */
     private Integer showAllModel;
 
+    private Integer showSurveilScope;
+
 
 
 

+ 2 - 0
src/main/java/com/fdkankan/scene/vo/SceneEditControlsVO.java

@@ -117,5 +117,7 @@ public class SceneEditControlsVO implements Serializable {
      */
     private Integer showAllModel;
 
+    private Integer showSurveilScope;
+
 
 }

+ 2 - 0
src/main/java/com/fdkankan/scene/vo/SceneEditInfoParamVO.java

@@ -84,5 +84,7 @@ public class SceneEditInfoParamVO extends BaseSceneParamVO{
      */
     private JSONObject started;
 
+    private Integer floorLogoType;
+
 
 }

+ 2 - 0
src/main/java/com/fdkankan/scene/vo/SceneInfoVO.java

@@ -264,5 +264,7 @@ public class SceneInfoVO {
 
     private Integer payStatus;
 
+    private Integer floorLogoType;
+
 
 }