Pārlūkot izejas kodu

保存热点接口拆分为新增或修改、删除两个接口

dengsixing 3 gadi atpakaļ
vecāks
revīzija
64997d94aa

+ 43 - 5
4dkankan-center-scene/src/main/java/com/fdkankan/scene/controller/SceneEditController.java

@@ -1,5 +1,6 @@
 package com.fdkankan.scene.controller;
 package com.fdkankan.scene.controller;
 
 
+import com.fdkankan.common.constant.OperationType;
 import com.fdkankan.common.constant.SceneInfoReqType;
 import com.fdkankan.common.constant.SceneInfoReqType;
 import com.fdkankan.common.controller.BaseController;
 import com.fdkankan.common.controller.BaseController;
 import com.fdkankan.scene.service.ISceneEditInfoService;
 import com.fdkankan.scene.service.ISceneEditInfoService;
@@ -228,6 +229,34 @@ public class SceneEditController extends BaseController {
 
 
     /**
     /**
      * <p>
      * <p>
+        新增或修改场景热点
+     * </p>
+     * @author dengsixing
+     * @date 2022/1/12
+     * @param param
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @PostMapping(value = "/tag/save")
+    public ResultData saveTag(@RequestBody @Validated SaveHotParamVO param) throws Exception {
+        return sceneProService.addOrUpdateTag(param);
+    }
+
+    /**
+     * <p>
+            删除热点
+     * </p>
+     * @author dengsixing
+     * @date 2022/2/16
+     * @param param
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @PostMapping(value = "/tag/delete")
+    public ResultData deleteTag(@RequestBody @Validated DeleteHotParamVO param) throws Exception {
+        return sceneProService.deleteTag(param);
+    }
+
+    /**
+     * <p>
      保存场景热点
      保存场景热点
      * </p>
      * </p>
      * @author dengsixing
      * @author dengsixing
@@ -615,7 +644,7 @@ public class SceneEditController extends BaseController {
      * @param param
      * @param param
      * @return com.fdkankan.common.response.ResultData
      * @return com.fdkankan.common.response.ResultData
      **/
      **/
-    @PostMapping(value = "/save/cad")
+    @PostMapping(value = "/cad/save")
     public ResultData saveCad(@RequestBody @Validated BaseDataParamVO param) throws Exception{
     public ResultData saveCad(@RequestBody @Validated BaseDataParamVO param) throws Exception{
         return sceneEditInfoService.saveCad(param);
         return sceneEditInfoService.saveCad(param);
     }
     }
@@ -645,10 +674,19 @@ public class SceneEditController extends BaseController {
         return sceneEditInfoService.uploadPanorama(num, file);
         return sceneEditInfoService.uploadPanorama(num, file);
     }
     }
 
 
-//    @PostMapping(value = "/downLoadPanorama")
-//    public List<String> downLoadPanorama(@RequestParam(value = "num") String num) throws Exception {
-//        return sceneEditInfoService.uploadPanorama(num, file);
-//    }
+    /**
+     * <p>
+            下载全景图
+     * </p>
+     * @author dengsixing
+     * @date 2022/2/16
+     * @param num
+     * @return java.util.List<java.lang.String>
+     **/
+    @PostMapping(value = "/downloadPanorama")
+    public List<String> downloadPanorama(@RequestParam(value = "num") String num) throws Exception {
+        return sceneEditInfoService.downloadPanorama(num);
+    }
 
 
 
 
 }
 }

+ 2 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneEditInfoService.java

@@ -34,5 +34,7 @@ public interface ISceneEditInfoService extends IService<SceneEditInfo> {
 
 
     List<String> uploadPanorama(String num, MultipartFile file) throws Exception;
     List<String> uploadPanorama(String num, MultipartFile file) throws Exception;
 
 
+    List<String> downloadPanorama(String num) throws Exception;
+
 
 
 }
 }

+ 5 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneProService.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.scene.entity.ScenePro;
 import com.fdkankan.scene.entity.ScenePro;
 import com.fdkankan.scene.entity.SceneProPO;
 import com.fdkankan.scene.entity.SceneProPO;
+import com.fdkankan.scene.vo.DeleteHotParamVO;
 import com.fdkankan.scene.vo.SaveHotParamVO;
 import com.fdkankan.scene.vo.SaveHotParamVO;
 import com.fdkankan.scene.vo.BaseDataParamVO;
 import com.fdkankan.scene.vo.BaseDataParamVO;
 import com.fdkankan.scene.vo.SaveTagsVisibleParamVO;
 import com.fdkankan.scene.vo.SaveTagsVisibleParamVO;
@@ -87,6 +88,10 @@ public interface ISceneProService extends IService<ScenePro> {
 
 
     ResultData tagSave(SaveHotParamVO param) throws Exception;
     ResultData tagSave(SaveHotParamVO param) throws Exception;
 
 
+    ResultData addOrUpdateTag(SaveHotParamVO param) throws Exception;
+
+    ResultData deleteTag(DeleteHotParamVO param) throws Exception;
+
     ResultData saveShopHot(SceneEditParamVO base) throws Exception;
     ResultData saveShopHot(SceneEditParamVO base) throws Exception;
 
 
     ResultData saveOverlay(SceneEditParamVO base) throws Exception;
     ResultData saveOverlay(SceneEditParamVO base) throws Exception;

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

@@ -481,4 +481,69 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         return notExistFileList;
         return notExistFileList;
     }
     }
 
 
+    @Override
+    public List<String> downloadPanorama(String num) throws Exception {
+
+        //先下载到
+
+
+//        String sceneNum = param.getNum();
+//        String fileName = param.getFileName();
+//        String planId = param.getPlanId();
+//        String type = param.getPlanId();
+//        if(StrUtil.isEmpty(sceneNum) || StrUtil.isEmpty(fileName) || StrUtil.isEmpty(type)|| StrUtil.isEmpty(planId)){
+//            throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
+//        }
+//
+//        if(fileName.contains("..") || fileName.contains("./\\") || fileName.contains(".//")
+//            || fileName.contains(".\\\\") || fileName.contains(".\\/")){
+//            throw new BusinessException(ErrorCode.FAILURE_CODE_3018);
+//        }
+//
+//        ScenePro scenePro = baseMapper.findByNum(sceneNum);
+//        if(scenePro == null){
+//            throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+//        }
+//        SceneProExt sceneProExt = sceneProExtService.findBySceneProId(scenePro.getId());
+//
+//        StringBuffer imagesBuf = new StringBuffer()
+//            .append("images").append(File.separator)
+//            .append("images").append(scenePro.getNum())
+//            .append(File.separator);
+//
+//        StringBuffer imagesBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(imagesBuf.toString());
+//
+//        String path = sceneProExt.getDataSource();
+//
+//        String url = "";
+//
+//        if("image".equals(type)){
+//            if(!new File(path + "/caches/images/" + fileName).exists()){
+//                throw new BusinessException(ErrorCode.FAILURE_CODE_3018);
+//            }
+//
+//            //备份原始数据
+//            if(!new File(imagesBuffer.toString() + "caches/back-" + fileName).exists()){
+//                FileUtils.copyFile(path + "/caches/images/" + fileName, imagesBuffer.toString() + "caches/back-" + fileName, false);
+//            }
+//            //复制打包数据,并且改名
+//            FileUtils.copyFile(path + "/caches/images/" + fileName, imagesBuffer.toString() + "caches/" + planId + ".jpg", true);
+//
+//            url = mainUrl + "scene/" + imagesBuf.toString() + "caches/" + planId + ".jpg";
+//        }
+//
+//        if("video".equals(type)){
+//            url = prefixAli + "video/video" + scenePro.getNum() + "/" + planId + ".mp4";
+//        }
+//
+//        Map<String, Object> map = new HashMap<>();
+//        map.put("fileUrl", url + "?t=" + System.currentTimeMillis());
+//        map.put("fileName", url.substring(url.lastIndexOf("/") + 1));
+//        return ResultData.ok(map);
+
+
+
+        return null;
+    }
+
 }
 }

+ 46 - 1
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneProServiceImpl.java

@@ -2176,7 +2176,6 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 
 
 
 
     @Override
     @Override
-//    @SystemServiceLog(description = "保存场景热点")
     public ResultData tagSave(SaveHotParamVO param) throws Exception {
     public ResultData tagSave(SaveHotParamVO param) throws Exception {
 
 
         ScenePro scenePro = this.findBySceneNum(param.getNum());
         ScenePro scenePro = this.findBySceneNum(param.getNum());
@@ -2206,6 +2205,46 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         return ResultData.ok();
         return ResultData.ok();
     }
     }
 
 
+    @Override
+    public ResultData addOrUpdateTag(SaveHotParamVO param) throws Exception {
+
+        ScenePro scenePro = this.findBySceneNum(param.getNum());
+        if (scenePro == null)
+            return ResultData.error(ErrorCode.FAILURE_CODE_5005);
+
+        List<HotParamVO> hotDataList = param.getHotDataList();
+        Map<String, String> addOrUpdateMap = new HashMap<>();
+        hotDataList.stream().forEach(hotData -> {
+            addOrUpdateMap.put(hotData.getSid(), hotData.getHotData());
+        });
+
+        //处理新增和修改数据
+        this.addOrUpdateHotData(param.getNum(), addOrUpdateMap);
+
+        //保存数据库
+        this.saveTagsToSceneEditInfo(param.getNum(), scenePro.getId());
+
+        return ResultData.ok();
+    }
+
+    @Override
+    public ResultData deleteTag(DeleteHotParamVO param) throws Exception {
+
+        ScenePro scenePro = this.findBySceneNum(param.getNum());
+        if (scenePro == null)
+            return ResultData.error(ErrorCode.FAILURE_CODE_5005);
+
+        List<String> deleteSidList = param.getSidList();
+
+        //处理删除状态数据
+        this.deleteHotData(param.getNum(), deleteSidList);
+
+        //保存数据库
+        this.saveTagsToSceneEditInfo(param.getNum(), scenePro.getId());
+
+        return ResultData.ok();
+    }
+
     private void saveTagsToSceneEditInfo(String num, Long sceneProId){
     private void saveTagsToSceneEditInfo(String num, Long sceneProId){
         //查询缓存是否包含热点数据
         //查询缓存是否包含热点数据
         String key = String.format(RedisKey.SCENE_HOT_DATA, num);
         String key = String.format(RedisKey.SCENE_HOT_DATA, num);
@@ -2219,6 +2258,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             break;
             break;
         }
         }
 
 
+        //更改热点状态
         SceneEditInfo sceneEditInfo = sceneEditInfoService.getBySceneProId(sceneProId);
         SceneEditInfo sceneEditInfo = sceneEditInfoService.getBySceneProId(sceneProId);
         if(Objects.isNull(sceneEditInfo)){
         if(Objects.isNull(sceneEditInfo)){
             sceneEditInfo = new SceneEditInfo();
             sceneEditInfo = new SceneEditInfo();
@@ -2255,6 +2295,11 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 
 
 
 
     private void deleteHotData(String num, List<String> deleteSidList) throws IOException {
     private void deleteHotData(String num, List<String> deleteSidList) throws IOException {
+
+        if(CollUtil.isEmpty(deleteSidList)){
+            return;
+        }
+
         //从redis中加载热点数据
         //从redis中加载热点数据
         String key = String.format(RedisKey.SCENE_HOT_DATA, num);
         String key = String.format(RedisKey.SCENE_HOT_DATA, num);
         List<String> deletDataList = redisUtil.hMultiGet(key, deleteSidList);
         List<String> deletDataList = redisUtil.hMultiGet(key, deleteSidList);

+ 28 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/DeleteHotParamVO.java

@@ -0,0 +1,28 @@
+package com.fdkankan.scene.vo;
+
+import java.util.List;
+import javax.validation.Valid;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * <p>
+ * 删除热点数据参数类
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/2/8
+ **/
+@Data
+public class DeleteHotParamVO {
+
+    @NotBlank(message = "场景码不能为空")
+    private String num;
+
+    @NotNull(message = "sid不能为空")
+    private List<String> sidList;
+
+
+
+}

+ 1 - 1
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/HotParamVO.java

@@ -16,7 +16,7 @@ import lombok.Data;
 @Data
 @Data
 public class HotParamVO {
 public class HotParamVO {
 
 
-    @NotNull(message = "操作类型不能为空")
+//    @NotNull(message = "操作类型不能为空")
     private Integer type;
     private Integer type;
 
 
     @NotBlank(message = "sid不能为空")
     @NotBlank(message = "sid不能为空")