Browse Source

删除\保存空间贴图

dengsixing 3 years ago
parent
commit
b4aea2295f

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

@@ -10,7 +10,6 @@ import com.fdkankan.scene.service.ISceneProService;
 import com.fdkankan.scene.service.ISceneUploadService;
 import com.fdkankan.scene.vo.*;
 import com.fdkankan.common.response.ResultData;
-import java.util.List;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -754,7 +753,7 @@ public class SceneEditController extends BaseController {
      * @return com.fdkankan.common.response.ResultData
      **/
     @PostMapping(value = "/video/box/delete")
-    public ResultData deleteVideoBox(@RequestBody @Validated DeleteVidoeBoxParamVO param) throws Exception {
+    public ResultData deleteVideoBox(@RequestBody @Validated DeleteSidParamVO param) throws Exception {
         return sceneEditInfoService.deleteVideoBox(param);
     }
 
@@ -768,10 +767,24 @@ public class SceneEditController extends BaseController {
      * @return com.fdkankan.common.response.ResultData
      **/
     @PostMapping(value = "/photo/box/save")
-    public ResultData saveVideoBox(@RequestBody @Validated BaseDataParamVO param) throws Exception {
+    public ResultData savePhotoBox(@RequestBody @Validated BaseDataParamVO param) throws Exception {
         return sceneEditInfoService.saveBoxPhoto(param);
     }
 
+    /**
+     * <p>
+     删除空间贴图
+     * </p>
+     * @author dengsixing
+     * @date 2022/2/18
+     * @param param
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @PostMapping(value = "/photo/box/delete")
+    public ResultData deletePhotoBox(@RequestBody @Validated DeleteSidParamVO param) throws Exception {
+        return sceneEditInfoService.deleteBoxPhoto(param);
+    }
+
 
     /**
      * <p>
@@ -870,7 +883,7 @@ public class SceneEditController extends BaseController {
      * </p>
      * @author dengsixing
      * @date 2022/4/11
-     * @param file
+     * @param param
      * @return com.fdkankan.common.response.ResultData
      **/
     @PostMapping(value = "/locales")

+ 8 - 29
4dkankan-center-scene/src/main/java/com/fdkankan/scene/controller/TestController.java

@@ -2,40 +2,28 @@ package com.fdkankan.scene.controller;
 
 import com.alibaba.druid.pool.DruidDataSource;
 import com.alibaba.fastjson.JSONObject;
-import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.controller.BaseController;
-import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.response.ResultData;
-import com.fdkankan.common.util.SpringUtil;
-import com.fdkankan.mq.message.BuildSceneMqMessage;
 import com.fdkankan.mq.util.RocketMQProducer;
-import com.fdkankan.platform.api.feign.PlatformGoodsClient;
-import com.fdkankan.platform.api.feign.PlatformUserClient;
 import com.fdkankan.platform.api.dto.Camera;
 import com.fdkankan.platform.api.dto.Company;
 import com.fdkankan.platform.api.dto.User;
+import com.fdkankan.platform.api.feign.PlatformGoodsClient;
+import com.fdkankan.platform.api.feign.PlatformUserClient;
 import com.fdkankan.redis.util.RedisLockUtil;
 import com.fdkankan.redis.util.RedisUtil;
 import com.fdkankan.scene.service.IFolderService;
 import com.fdkankan.scene.service.IScene3dNumService;
 import com.fdkankan.scene.service.ISceneService;
-import com.fdkankan.scene.service.impl.IFdkkLaserServiceImpl.Result;
-import com.fdkankan.scene.vo.SceneEditInfoVO;
 import com.fdkankan.scene.vo.SceneVO;
-import com.fdkankan.scene.vo.UploadPanoramaVO;
 import com.google.common.collect.Lists;
-import com.sun.org.apache.bcel.internal.generic.RETURN;
-import com.yomahub.tlog.core.mq.TLogMqWrapBean;
-import com.yomahub.tlog.id.TLogIdGenerator;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.concurrent.Callable;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
-import javax.swing.Spring;
+import java.sql.SQLException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import javax.sql.DataSource;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.rocketmq.client.producer.MQProducer;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.cloud.context.config.annotation.RefreshScope;
@@ -43,17 +31,8 @@ import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
-import javax.sql.DataSource;
-import java.sql.SQLException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import org.springframework.web.multipart.MultipartFile;
-
 @RefreshScope
 @RestController
 @RequestMapping("/api/scene/test")

+ 1 - 4
4dkankan-center-scene/src/main/java/com/fdkankan/scene/entity/SceneProPO.java

@@ -1,12 +1,9 @@
 package com.fdkankan.scene.entity;
 
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.fdkankan.mq.message.BuildSceneMqMessage;
+import java.util.Date;
 import lombok.Data;
 import org.springframework.data.annotation.Transient;
 
-import java.util.Date;
-
 @Data
 public class SceneProPO {
 

+ 0 - 3
4dkankan-center-scene/src/main/java/com/fdkankan/scene/listener/BuildSceneFailDTMQListener.java

@@ -1,10 +1,8 @@
 package com.fdkankan.scene.listener;
 
 import com.alibaba.fastjson.JSONObject;
-import com.fdkankan.common.util.ComputerUtil;
 import com.fdkankan.fyun.oss.UploadToOssUtil;
 import com.fdkankan.mq.message.BuildSceneFailDTMqMessage;
-import com.fdkankan.mq.message.BuildSceneMqMessage;
 import com.fdkankan.mq.util.RocketMQProducer;
 import com.fdkankan.platform.api.feign.PlatformGoodsClient;
 import com.fdkankan.platform.api.feign.PlatformUserClient;
@@ -15,7 +13,6 @@ import com.fdkankan.scene.service.ISceneFileBuildService;
 import com.fdkankan.scene.service.ISceneProExtService;
 import com.fdkankan.scene.service.ISceneProService;
 import com.fdkankan.scene.service.ISceneService;
-import com.fdkankan.scene.service.impl.BuildScenePreServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.rocketmq.spring.annotation.MessageModel;
 import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;

+ 3 - 5
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneEditInfoService.java

@@ -5,10 +5,6 @@ import com.fdkankan.scene.api.dto.SceneInfoDTO;
 import com.fdkankan.scene.entity.SceneEditInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.scene.vo.*;
-import java.io.IOException;
-import java.util.List;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.multipart.MultipartFile;
 
 /**
@@ -49,9 +45,11 @@ public interface ISceneEditInfoService extends IService<SceneEditInfo> {
 
     ResultData saveVideoBox(FileNameAndDataParamVO param) throws Exception;
 
+    ResultData deleteVideoBox(DeleteSidParamVO param) throws Exception;
+
     ResultData saveBoxPhoto(BaseDataParamVO param);
 
-    ResultData deleteVideoBox(DeleteVidoeBoxParamVO param) throws Exception;
+    ResultData deleteBoxPhoto(DeleteSidParamVO param);
 
     DownloadVO downloadBallScreenVideo(BallScreenVideoParamVO param);
 

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

@@ -37,7 +37,6 @@ import com.fdkankan.scene.entity.SceneEditInfoExt;
 import com.fdkankan.scene.entity.ScenePlus;
 import com.fdkankan.scene.entity.ScenePlusExt;
 import com.fdkankan.scene.entity.ScenePro;
-import com.fdkankan.scene.entity.SceneProExt;
 import com.fdkankan.scene.factory.FloorLogoHandlerFactory;
 import com.fdkankan.scene.factory.MusicHandlerFactory;
 import com.fdkankan.scene.factory.ScreenshotHandlerFactory;
@@ -50,12 +49,10 @@ import com.fdkankan.scene.service.IScenePlusExtService;
 import com.fdkankan.scene.service.IScenePlusService;
 import com.fdkankan.scene.service.ISceneProExtService;
 import com.fdkankan.scene.service.ISceneProService;
-import com.fdkankan.scene.service.impl.IFdkkLaserServiceImpl.Result;
 import com.fdkankan.scene.vo.*;
 import com.google.common.collect.Lists;
 import com.google.errorprone.annotations.Var;
 import java.io.File;
-import java.io.FileInputStream;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.HashMap;
@@ -64,7 +61,6 @@ import java.util.Map;
 import java.util.Map.Entry;
 import java.util.UUID;
 import java.util.stream.Collectors;
-import javax.sound.sampled.AudioSystem;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -1069,24 +1065,50 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
     }
 
     @Override
-    public ResultData saveBoxPhoto(BaseDataParamVO param){
+    public ResultData deleteVideoBox(DeleteSidParamVO param) throws Exception {
+
+//        ScenePro scenePro = sceneProService.findBySceneNum(param.getNum());
         ScenePlus scenePlus = scenePlusService.getScenePlusByNum(param.getNum());
-        if(Objects.isNull(scenePlus)){
+        if(Objects.isNull(scenePlus))
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+
+        SceneEditInfo sceneEditInfo = this.getByScenePlusId(scenePlus.getId());
+
+        //根据sid移除json
+        String boxVideos = this.createBoxVideos(param.getSid(), null, sceneEditInfo, OperationType.DELETE.code());
+
+        //写数据库
+        this.updateBoxVideos(sceneEditInfo,scenePlus.getId(),boxVideos);
+
+        return ResultData.ok();
+    }
+
+    @Override
+    public ResultData saveBoxPhoto(BaseDataParamVO param){
+
+        JSONObject boxPhoto = JSONObject.parseObject(param.getData());
+        String sid = boxPhoto.getString("sid");
+        if(StrUtil.isEmpty(sid)){
+            throw new BusinessException(ServerCode.PARAM_REQUIRED, sid);
         }
+        ScenePlus scenePlus = scenePlusService.getScenePlusByNum(param.getNum());
+        if(Objects.isNull(scenePlus))
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+
         SceneEditInfo sceneEditInfo = this.getByScenePlusId(scenePlus.getId());
-        this.update(new LambdaUpdateWrapper<SceneEditInfo>()
-            .set(SceneEditInfo::getBoxPhotos, param.getData())
-            .setSql("version = version + 1")
-            .eq(SceneEditInfo::getId, sceneEditInfo.getId()));
+
+        //生成boxVideos数据
+        String boxPhotos = this.createBoxPhotos(sid, boxPhoto, sceneEditInfo, OperationType.ADDORUPDATE.code());
+
+        //更新数据库
+        this.updateBoxPhotos(sceneEditInfo, boxPhotos);
 
         return ResultData.ok();
     }
 
     @Override
-    public ResultData deleteVideoBox(DeleteVidoeBoxParamVO param) throws Exception {
+    public ResultData deleteBoxPhoto(DeleteSidParamVO param){
 
-//        ScenePro scenePro = sceneProService.findBySceneNum(param.getNum());
         ScenePlus scenePlus = scenePlusService.getScenePlusByNum(param.getNum());
         if(Objects.isNull(scenePlus))
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
@@ -1094,10 +1116,10 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         SceneEditInfo sceneEditInfo = this.getByScenePlusId(scenePlus.getId());
 
         //根据sid移除json
-        String boxVideos = this.createBoxVideos(param.getSid(), null, sceneEditInfo, OperationType.DELETE.code());
+        String boxPhotos = this.createBoxPhotos(param.getSid(), null, sceneEditInfo, OperationType.DELETE.code());
 
         //写数据库
-        this.updateBoxVideos(sceneEditInfo,scenePlus.getId(),boxVideos);
+        this.updateBoxPhotos(sceneEditInfo, boxPhotos);
 
         return ResultData.ok();
     }
@@ -1401,6 +1423,13 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         }
     }
 
+    private void updateBoxPhotos(SceneEditInfo sceneEditInfo, String boxPhotos){
+        this.update(new LambdaUpdateWrapper<SceneEditInfo>()
+            .set(SceneEditInfo::getBoxPhotos, boxPhotos)
+            .setSql("version = version + 1")
+            .eq(SceneEditInfo::getId, sceneEditInfo.getId()));
+    }
+
     private String createBoxVideos(String sid, JSONObject boxVideo, SceneEditInfo sceneEditInfo, int type){
 
         String boxVideos = null;
@@ -1454,6 +1483,54 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         return result;
     }
 
+    private String createBoxPhotos(String sid, JSONObject boxPhoto, SceneEditInfo sceneEditInfo, int type){
+
+        String boxPhotos = null;
+        if(sceneEditInfo != null){
+            boxPhotos = sceneEditInfo.getBoxPhotos();
+        }
+        JSONArray boxPhotosJson = null;
+        if (StrUtil.isNotEmpty(boxPhotos)) {
+            boxPhotosJson = JSONArray.parseArray(boxPhotos);
+        }else {
+            boxPhotosJson = new JSONArray();
+        }
+
+        String result = null;
+        //删除
+        if(type == OperationType.DELETE.code()){
+            if(boxPhotosJson.size() == 0)
+                return null;
+            for(int i=0;i<boxPhotosJson.size();++i){
+                JSONObject ele = boxPhotosJson.getJSONObject(i);
+                if(ele.getString("sid").equals(sid)){
+                    boxPhotosJson.remove(i);
+                }
+            }
+
+        }else{
+            //更新
+            boolean exist = false;
+            for(int i=0;i<boxPhotosJson.size();++i){
+                JSONObject ele = boxPhotosJson.getJSONObject(i);
+                if(ele.getString("sid").equals(sid)){
+                    boxPhotosJson.set(i, boxPhoto);
+                    exist = true;
+                }
+            }
+            //新增
+            if(!exist){
+                boxPhotosJson.add(boxPhoto);
+            }
+
+        }
+        if(boxPhotosJson.size() != 0){
+            result = boxPhotosJson.toJSONString();
+        }
+
+        return result;
+    }
+
     private void transferToFlv(String num, String fileName) throws Exception {
 
         String userEditPath = String.format(UploadFilePath.USER_EDIT_PATH, num);

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

@@ -12,7 +12,7 @@ import lombok.Data;
  * @since 2022/2/18
  **/
 @Data
-public class DeleteVidoeBoxParamVO{
+public class DeleteSidParamVO {
 
     @NotBlank(message = "场景码不能为空")
     private String num;