Prechádzať zdrojové kódy

上传文件后保存接口

dengsixing 3 rokov pred
rodič
commit
4263e9b505
15 zmenil súbory, kde vykonal 280 pridanie a 85 odobranie
  1. 16 5
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/controller/SceneEditController.java
  2. 4 16
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/entity/SceneEditInfo.java
  3. 22 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/factory/FloorLogoHandlerFactory.java
  4. 17 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/factory/ISaveUploadHandlerFactory.java
  5. 21 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/factory/MusicHandlerFactory.java
  6. 56 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/factory/handler/FloorLogoHandler.java
  7. 19 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/factory/handler/ISaveUploadHandler.java
  8. 51 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/factory/handler/MusicHandler.java
  9. 1 26
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/generate/AutoGenerate.java
  10. 2 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneEditInfoService.java
  11. 21 2
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneEditInfoServiceImpl.java
  12. 10 12
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneProServiceImpl.java
  13. 36 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/SaveUploadParamVO.java
  14. 2 12
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/SceneEditInfoParamVO.java
  15. 2 12
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/SceneEditInfoVO.java

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

@@ -3,11 +3,8 @@ package com.fdkankan.scene.controller;
 import com.fdkankan.common.controller.BaseController;
 import com.fdkankan.scene.service.ISceneEditInfoService;
 import com.fdkankan.scene.service.ISceneProService;
-import com.fdkankan.scene.vo.SceneEditInfoParamVO;
-import com.fdkankan.scene.vo.SceneEditInfoVO;
-import com.fdkankan.scene.vo.SceneEditParamVO;
+import com.fdkankan.scene.vo.*;
 import com.fdkankan.common.response.ResultData;
-import com.fdkankan.scene.vo.FileParamVO;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
@@ -50,7 +47,7 @@ public class SceneEditController extends BaseController {
      * @param param
      * @return com.fdkankan.common.response.ResultData
      **/
-    @PostMapping(value = "/saveSceneEditInfo")
+    @PostMapping(value = "/saveScene")
     public SceneEditInfoVO saveSceneEditInfo(@RequestBody @Validated SceneEditInfoParamVO param){
         return sceneEditInfoService.saveSceneEditInfo(param);
     }
@@ -593,4 +590,18 @@ public class SceneEditController extends BaseController {
         return sceneProService.downloadPanoramaData(param);
     }
 
+    /**
+     * <p>
+            上传后保存
+     * </p>
+     * @author dengsixing
+     * @date 2022/1/20
+     * @param param
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @PostMapping(value = "/saveUpload")
+    public ResultData saveUpload(@RequestBody SaveUploadParamVO param) throws Exception{
+        return sceneEditInfoService.saveUpload(param);
+    }
+
 }

+ 4 - 16
4dkankan-center-scene/src/main/java/com/fdkankan/scene/entity/SceneEditInfo.java

@@ -34,14 +34,8 @@ public class SceneEditInfo implements Serializable {
     /**
      * 地面logo名称
      */
-    @TableField("floor_logo_name")
-    private String floorLogoName;
-
-    /**
-     * 地面logo上传地址
-     */
-    @TableField("floor_logo_path")
-    private String floorLogoPath;
+    @TableField("floor_logo")
+    private String floorLogo;
 
     /**
      * 地面logo大小
@@ -52,14 +46,8 @@ public class SceneEditInfo implements Serializable {
     /**
      * 背景音乐名称
      */
-    @TableField("music_name")
-    private String musicName;
-
-    /**
-     * 背景音乐上传地址
-     */
-    @TableField("music_path")
-    private String musicPath;
+    @TableField("music")
+    private String music;
 
     /**
      * 浏览密码

+ 22 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/factory/FloorLogoHandlerFactory.java

@@ -0,0 +1,22 @@
+package com.fdkankan.scene.factory;
+
+import cn.hutool.extra.spring.SpringUtil;
+import com.fdkankan.scene.factory.handler.FloorLogoHandler;
+import com.fdkankan.scene.factory.handler.ISaveUploadHandler;
+import com.fdkankan.scene.factory.handler.MusicHandler;
+
+/**
+ * <p>
+ * logo图片保存业务处理器工厂
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/1/20
+ **/
+public class FloorLogoHandlerFactory implements ISaveUploadHandlerFactory {
+
+    @Override
+    public ISaveUploadHandler getHandler() {
+        return SpringUtil.getBean(FloorLogoHandler.class);
+    }
+}

+ 17 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/factory/ISaveUploadHandlerFactory.java

@@ -0,0 +1,17 @@
+package com.fdkankan.scene.factory;
+
+import com.fdkankan.scene.factory.handler.ISaveUploadHandler;
+
+/**
+ * <p>
+ * 文件上传后保存处理器工厂接口
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/1/20
+ **/
+public interface ISaveUploadHandlerFactory {
+
+    ISaveUploadHandler getHandler();
+
+}

+ 21 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/factory/MusicHandlerFactory.java

@@ -0,0 +1,21 @@
+package com.fdkankan.scene.factory;
+
+import cn.hutool.extra.spring.SpringUtil;
+import com.fdkankan.scene.factory.handler.ISaveUploadHandler;
+import com.fdkankan.scene.factory.handler.MusicHandler;
+
+/**
+ * <p>
+ * 背景音乐保存业务处理器工厂
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/1/20
+ **/
+public class MusicHandlerFactory implements ISaveUploadHandlerFactory {
+
+    @Override
+    public ISaveUploadHandler getHandler() {
+        return SpringUtil.getBean(MusicHandler.class);
+    }
+}

+ 56 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/factory/handler/FloorLogoHandler.java

@@ -0,0 +1,56 @@
+package com.fdkankan.scene.factory.handler;
+
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.scene.entity.SceneEditInfo;
+import com.fdkankan.scene.entity.ScenePro;
+import com.fdkankan.scene.service.ISceneEditInfoService;
+import com.fdkankan.scene.service.ISceneProService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * <p>
+ * logo图片保存业务处理器
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/1/20
+ **/
+@Component
+public class FloorLogoHandler implements ISaveUploadHandler {
+
+    @Autowired
+    private ISceneEditInfoService sceneEditInfoService;
+    @Autowired
+    private ISceneProService sceneProService;
+
+    @Override
+    public ResultData save(String num, String fileInfo) {
+
+        ScenePro scenePro = sceneProService.findBySceneNum(num);
+        if(Objects.isNull(scenePro))
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+
+        JSONObject fileInfoJson = JSON.parseObject(fileInfo);
+        String floorLogo = fileInfoJson.getString("floorLogo");
+        //如果传过来的文件路径是空,则置为系统默认
+        floorLogo = StrUtil.isBlank(floorLogo) ? "0" : floorLogo;
+        Integer floorLogoSize = fileInfoJson.getInteger("floorLogoSize");
+        sceneEditInfoService.update(new LambdaUpdateWrapper<SceneEditInfo>()
+                .eq(SceneEditInfo::getSceneProId, scenePro.getId())
+                .set(SceneEditInfo::getFloorLogo, floorLogo)
+                .set(SceneEditInfo::getFloorLogoSize, floorLogoSize));
+
+
+        return ResultData.ok();
+    }
+}

+ 19 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/factory/handler/ISaveUploadHandler.java

@@ -0,0 +1,19 @@
+package com.fdkankan.scene.factory.handler;
+
+import com.fdkankan.common.response.ResultData;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 上传后保存业务处理器接口
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/1/20
+ **/
+public interface ISaveUploadHandler {
+
+    ResultData save(String num, String fileInfo);
+
+}

+ 51 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/factory/handler/MusicHandler.java

@@ -0,0 +1,51 @@
+package com.fdkankan.scene.factory.handler;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.scene.entity.SceneEditInfo;
+import com.fdkankan.scene.entity.ScenePro;
+import com.fdkankan.scene.service.ISceneEditInfoService;
+import com.fdkankan.scene.service.ISceneProService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * <p>
+ * 背景音乐保存业务处理器
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/1/20
+ **/
+@Component
+public class MusicHandler implements ISaveUploadHandler {
+
+    @Autowired
+    private ISceneEditInfoService sceneEditInfoService;
+    @Autowired
+    private ISceneProService sceneProService;
+
+    @Override
+    public ResultData save(String num, String fileInfo) {
+
+        ScenePro scenePro = sceneProService.findBySceneNum(num);
+        if(Objects.isNull(scenePro))
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+
+        JSONObject fileInfoJson = JSON.parseObject(fileInfo);
+        String music = fileInfoJson.getString("music");
+        sceneEditInfoService.update(new LambdaUpdateWrapper<SceneEditInfo>()
+                .eq(SceneEditInfo::getSceneProId, scenePro.getId())
+                .set(SceneEditInfo::getMusic, music));
+
+
+        return ResultData.ok();
+    }
+}

+ 1 - 26
4dkankan-center-scene/src/main/java/com/fdkankan/scene/generate/AutoGenerate.java

@@ -21,32 +21,7 @@ public class AutoGenerate {
         String path =System.getProperty("user.dir") + "\\4dkankan-center-scene";
 
         generate(path,"test", getTables(new String[]{
-                "t_folder",
-                "t_folder_scene",
-                "t_pic_scene_progress",
-                "t_scene",
-                "t_scene_3d_num",
-                "t_scene_3dfamily",
-                "t_scene_cooperation",
-                "t_scene_data_download",
-                "t_scene_download_log",
-                "t_scene_edit_controls",
-                "t_scene_edit_info",
-                "t_scene_ext",
-                "t_scene_feedback",
-                "t_scene_file_build",
-                "t_scene_file_upload",
-                "t_scene_module_video",
-                "t_scene_pro",
-                "t_scene_pro_edit",
-                "t_scene_pro_edit_ext",
-                "t_scene_pro_ext",
-                "t_scene_record",
-                "t_scene_resource",
-                "t_scene_resource_camera",
-                "t_scene_resource_cooperation",
-                "t_scene_statistics",
-                "t_video_scene_progress"
+                "t_scene_edit_info"
         }));
 
 //        generate(path,"goods", getTables(new String[]{

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

@@ -24,4 +24,6 @@ public interface ISceneEditInfoService extends IService<SceneEditInfo> {
 
     SceneInfoVO getSceneInfo(SceneInfoParamVO param);
 
+    ResultData saveUpload(SaveUploadParamVO param);
+
 }

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

@@ -4,8 +4,10 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.common.constant.ConstantFilePath;
 import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.constant.FileBizType;
 import com.fdkankan.common.constant.TbStatus;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.response.ResultData;
@@ -16,17 +18,17 @@ import com.fdkankan.scene.bean.SceneJsonBean;
 import com.fdkankan.scene.entity.SceneEditControls;
 import com.fdkankan.scene.entity.SceneEditInfo;
 import com.fdkankan.scene.entity.ScenePro;
+import com.fdkankan.scene.factory.FloorLogoHandlerFactory;
+import com.fdkankan.scene.factory.MusicHandlerFactory;
 import com.fdkankan.scene.mapper.ISceneEditInfoMapper;
 import com.fdkankan.scene.service.ISceneEditControlsService;
 import com.fdkankan.scene.service.ISceneEditInfoService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.scene.service.ISceneProService;
 import com.fdkankan.scene.vo.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.Calendar;
-import java.util.List;
 import java.util.Objects;
 
 /**
@@ -157,4 +159,21 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         return sceneInfoVO;
     }
 
+    @Override
+    public ResultData saveUpload(SaveUploadParamVO param) {
+        FileBizType fileBizType = FileBizType.get(param.getType());
+        if(Objects.isNull(fileBizType)){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_7003);
+        }
+        switch (fileBizType){
+            case MUSIC:
+                return new MusicHandlerFactory().getHandler().save(param.getNum(), param.getFileInfo());
+            case FLOOR_LOGO:
+                return new FloorLogoHandlerFactory().getHandler().save(param.getNum(), param.getFileInfo());
+        }
+
+
+        return ResultData.ok();
+    }
+
 }

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

@@ -156,20 +156,18 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     @Override
     public Long getSceneCount(Long cameraId) {
 
-        return this.count(new QueryWrapper<ScenePro>()
-                .eq("camera_id", cameraId)
-                .eq("tb_status",TbStatus.VALID.code())
-                .eq("rec_status",RecStatus.VALID.code())
-                .notIn("scene_type", SceneType.YJHZXNFY.code()));
+        return this.count(new LambdaQueryWrapper<ScenePro>()
+                .eq(ScenePro::getCameraId, cameraId)
+                .eq(ScenePro::getTbStatus,TbStatus.VALID.code())
+                .notIn(ScenePro::getSceneType, SceneType.YJHZXNFY.code()));
 
     }
 
     @Override
     public ScenePro findBySceneNum(String sceneNum) {
-        List<ScenePro> list = this.list(new QueryWrapper<ScenePro>()
-                .eq("tb_status", TbStatus.VALID.code())
-                .eq("rec_status", RecStatus.VALID.code())
-                .eq("scene_code", sceneNum));
+        List<ScenePro> list = this.list(new LambdaQueryWrapper<ScenePro>()
+                .eq(ScenePro::getTbStatus, TbStatus.VALID.code())
+                .eq(ScenePro::getNum, sceneNum));
         if(CollUtil.isEmpty(list)){
             return null;
         }
@@ -179,9 +177,9 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     @Override
     public ScenePro findDeleteSceneBySceneNum(String sceneNum) {
 
-        List<ScenePro> list = this.list(new QueryWrapper<ScenePro>()
-                .eq("rec_status", RecStatus.DISABLE.code())
-                .eq("scene_code", sceneNum));
+        List<ScenePro> list = this.list(new LambdaQueryWrapper<ScenePro>()
+                .eq(ScenePro::getTbStatus, TbStatus.DELETE.code())
+                .eq(ScenePro::getNum, sceneNum));
         if(CollUtil.isEmpty(list)){
             return null;
         }

+ 36 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/SaveUploadParamVO.java

@@ -0,0 +1,36 @@
+package com.fdkankan.scene.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import java.util.List;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/1/20
+ **/
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class SaveUploadParamVO {
+
+    @NotBlank(message = "场景码不能为空")
+    private String num;
+
+    @NotBlank(message = "文件业务类型不能为空")
+    private String type;
+
+//    private List<String> filePathList;
+
+    private String fileInfo;
+
+}

+ 2 - 12
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/SceneEditInfoParamVO.java

@@ -30,12 +30,7 @@ public class SceneEditInfoParamVO {
     /**
      * 地面logo名称
      */
-    private String floorLogoName;
-
-    /**
-     * 地面logo上传地址
-     */
-    private String floorLogoPath;
+    private String floorLogo;
 
     /**
      * 地面logo大小
@@ -45,12 +40,7 @@ public class SceneEditInfoParamVO {
     /**
      * 背景音乐名称
      */
-    private String musicName;
-
-    /**
-     * 背景音乐上传地址
-     */
-    private String musicPath;
+    private String music;
 
     /**
      * 浏览密码

+ 2 - 12
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/SceneEditInfoVO.java

@@ -22,12 +22,7 @@ public class SceneEditInfoVO implements Serializable {
     /**
      * 地面logo名称
      */
-    private String floorLogoName;
-
-    /**
-     * 地面logo上传地址
-     */
-    private String floorLogoPath;
+    private String floorLogo;
 
     /**
      * 地面logo大小
@@ -37,12 +32,7 @@ public class SceneEditInfoVO implements Serializable {
     /**
      * 背景音乐名称
      */
-    private String musicName;
-
-    /**
-     * 背景音乐上传地址
-     */
-    private String musicPath;
+    private String music;
 
     /**
      * 浏览密码