Kaynağa Gözat

场景中心接口变更

dengsixing 3 yıl önce
ebeveyn
işleme
506b18e9bc

+ 2 - 2
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/UserSceneService.java

@@ -52,7 +52,7 @@ public class UserSceneService {
         Map<String,String> params = new HashMap<>(2);
         Map<String,String> params = new HashMap<>(2);
         params.put("sceneNum",param.getSceneNum());
         params.put("sceneNum",param.getSceneNum());
         params.put("type","local");
         params.put("type","local");
-        redisUtil.set(RedisKey.DOWNLOAD_TASK,JSONObject.toJSONString(params));
+        redisUtil.lRightPush(RedisKey.DOWNLOAD_TASK,JSONObject.toJSONString(params));
         return result;
         return result;
     }
     }
 
 
@@ -61,7 +61,7 @@ public class UserSceneService {
             throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
             throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
         }
         }
         // 获取下载进度
         // 获取下载进度
-        String processStr = redisUtil.get(RedisKey.PREFIX_DOWNLOAD_PROGRESS.concat(sceneNum));
+        String processStr = redisUtil.get(String.format(RedisKey.PREFIX_DOWNLOAD_PROGRESS, sceneNum));
         if (StringUtils.isEmpty(processStr)) {
         if (StringUtils.isEmpty(processStr)) {
             Map<String, Object> result = new HashMap<>(1);
             Map<String, Object> result = new HashMap<>(1);
             JSONObject object = new JSONObject();
             JSONObject object = new JSONObject();

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

@@ -733,6 +733,21 @@ public class SceneEditController extends BaseController {
         return sceneEditInfoService.deleteVideoBox(param);
         return sceneEditInfoService.deleteVideoBox(param);
     }
     }
 
 
+    @PostMapping(value = "downloadBallScreenVideo")
+    public DownloadVO downloadBallScreenVideo(@RequestBody @Validated BallScreenVideoParamVO param){
+        return sceneEditInfoService.downloadBallScreenVideo(param);
+    }
+
+    @PostMapping(value = "uploadBallScreenVideo")
+    public ResultData uploadBallScreenVideo(
+            @RequestParam("num") String num,
+            @RequestParam("fileName") String fileName,
+            @RequestParam("file") MultipartFile file){
+//        return sceneEditInfoService.uploadBallScreenVideo(num, fileName, file);
+
+        return null;
+    }
+
 
 
 
 
 
 

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

@@ -220,9 +220,9 @@ public class TestController {
     private String topicModelingA;
     private String topicModelingA;
 
 
     @GetMapping("/testMQ")
     @GetMapping("/testMQ")
-    public void testMQ(){
+    public void testMQ(int count){
 //        SceneVO body = SceneVO.builder().buildType("123").childName("sdfsdfsdf").dataSource("sadfdhgf").id(1213L).build();
 //        SceneVO body = SceneVO.builder().buildType("123").childName("sdfsdfsdf").dataSource("sadfdhgf").id(1213L).build();
-        for(int i = 0; i < 10; i++){
+        for(int i = 1; i <= count; i++){
             rocketMQProducer.sendOneWay("test_topic_dsx", "消息体" + i);
             rocketMQProducer.sendOneWay("test_topic_dsx", "消息体" + i);
         }
         }
     }
     }

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

@@ -134,6 +134,12 @@ public class SceneEditInfo implements Serializable {
     private String boxVideos;
     private String boxVideos;
 
 
     /**
     /**
+     * 是否需要处理球幕视频
+     */
+    @TableField("build_video_status")
+    private String buildVideoStatus;
+
+    /**
      * 创建时间
      * 创建时间
      */
      */
     @TableField("create_time")
     @TableField("create_time")

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

@@ -4,7 +4,9 @@ import com.fdkankan.common.response.ResultData;
 import com.fdkankan.scene.entity.SceneEditInfo;
 import com.fdkankan.scene.entity.SceneEditInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.scene.vo.*;
 import com.fdkankan.scene.vo.*;
+import java.io.IOException;
 import java.util.List;
 import java.util.List;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
 
 
 /**
 /**
@@ -43,5 +45,12 @@ public interface ISceneEditInfoService extends IService<SceneEditInfo> {
 
 
     ResultData deleteVideoBox(DeleteVidoeBoxParamVO param) throws Exception;
     ResultData deleteVideoBox(DeleteVidoeBoxParamVO param) throws Exception;
 
 
+    DownloadVO downloadBallScreenVideo(BallScreenVideoParamVO param);
+
+    ResultData uploadBallScreenVideo(String num,String fileName,MultipartFile file)
+        throws IOException;
+
+
+
 
 
 }
 }

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

@@ -24,6 +24,7 @@ import com.fdkankan.scene.bean.SceneJsonBean;
 import com.fdkankan.scene.entity.SceneEditControls;
 import com.fdkankan.scene.entity.SceneEditControls;
 import com.fdkankan.scene.entity.SceneEditInfo;
 import com.fdkankan.scene.entity.SceneEditInfo;
 import com.fdkankan.scene.entity.ScenePro;
 import com.fdkankan.scene.entity.ScenePro;
+import com.fdkankan.scene.entity.SceneProExt;
 import com.fdkankan.scene.factory.FloorLogoHandlerFactory;
 import com.fdkankan.scene.factory.FloorLogoHandlerFactory;
 import com.fdkankan.scene.factory.MusicHandlerFactory;
 import com.fdkankan.scene.factory.MusicHandlerFactory;
 import com.fdkankan.scene.factory.ScreenshotHandlerFactory;
 import com.fdkankan.scene.factory.ScreenshotHandlerFactory;
@@ -639,6 +640,52 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         return ResultData.ok();
         return ResultData.ok();
     }
     }
 
 
+    @Override
+    public DownloadVO downloadBallScreenVideo(BallScreenVideoParamVO param) {
+        String videoPath = String.format(UploadFilePath.USER_EDIT_PATH, param.getNum()) + param.getPlanId() + ".mp4";
+        String url = ossUrlPrefix + videoPath + "?t=" + System.currentTimeMillis();
+        return DownloadVO.builder()
+            .fileName(param.getFileName())
+            .url(url)
+            .build();
+    }
+
+    @Override
+    public ResultData uploadBallScreenVideo(String num, String fileName, MultipartFile file)
+        throws IOException {
+
+        if(!fileName.endsWith(".mp4")){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_7007.code(), ErrorCode.FAILURE_CODE_7007.formatMessage("mp4"));
+        }
+
+        ScenePro scenePro = sceneProService.findBySceneNum(num);
+        if(scenePro == null){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+        }
+        SceneProExt sceneProExt = sceneProExtService.findBySceneProId(scenePro.getId());
+
+        String path = sceneProExt.getDataSource();
+
+        if(path != null && !"".equals(path) && path.startsWith("http")){
+            path = ConstantFilePath.BUILD_MODEL_PATH + File.separator + path.split("/")[path.split("/").length - 2];
+        }
+
+        String target = path + "_images";
+
+        String filePath = target + File.separator + "extras/video" + File.separator + fileName;
+
+        File targetFile = new File(filePath);
+        if(!targetFile.getParentFile().exists()){
+            targetFile.getParentFile().mkdirs();
+        }
+
+        //上传文件
+        file.transferTo(targetFile);
+
+
+        return null;
+    }
+
     private void updateBoxVideos(SceneEditInfo sceneEditInfo, Long sceneProId, String boxVideos){
     private void updateBoxVideos(SceneEditInfo sceneEditInfo, Long sceneProId, String boxVideos){
         if(StrUtil.isEmpty(boxVideos)){
         if(StrUtil.isEmpty(boxVideos)){
             return;
             return;

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

@@ -545,11 +545,11 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
                 new File(ConstantFilePath.SCENE_PATH + "data" + File.separator + "data" + sceneNum + File.separator + "scene.json").createNewFile();
                 new File(ConstantFilePath.SCENE_PATH + "data" + File.separator + "data" + sceneNum + File.separator + "scene.json").createNewFile();
             }
             }
 
 
-            String path = sceneProExt.getDataSource();
+            String path = sceneProExt.getDataSource();//   /mnt/data/0662c5389/831989883441512448/4898cab04f8c_202104141602356060/
             if(path != null && !"".equals(path) && path.startsWith("http")){
             if(path != null && !"".equals(path) && path.startsWith("http")){
                 path = ConstantFilePath.BUILD_MODEL_PATH + File.separator + path.split("/")[path.split("/").length - 2];
                 path = ConstantFilePath.BUILD_MODEL_PATH + File.separator + path.split("/")[path.split("/").length - 2];
             }
             }
-            String target = path + "_ajk";
+            String target = path + "_ajk";   // /mnt/data/0662c5389/831989883441512448/4898cab04f8c_202104141602356060_ajk
             File editPath = new File(target);
             File editPath = new File(target);
             if(!editPath.exists()){
             if(!editPath.exists()){
                 editPath.mkdirs();
                 editPath.mkdirs();

+ 20 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/BallScreenVideoParamVO.java

@@ -0,0 +1,20 @@
+package com.fdkankan.scene.vo;
+
+import javax.validation.constraints.NotBlank;
+import lombok.Data;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/2/22
+ **/
+@Data
+public class BallScreenVideoParamVO extends BaseFileParamVO {
+
+    @NotBlank(message = "planId不能为空")
+    private String planId;
+
+}

+ 26 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/BaseFileParamVO.java

@@ -0,0 +1,26 @@
+package com.fdkankan.scene.vo;
+
+import lombok.Data;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/2/22
+ **/
+@Data
+public class BaseFileParamVO {
+
+    /**
+     * 场景码
+     */
+    private String num;
+
+    /**
+     * 文件名
+     */
+    private String fileName;
+
+}

+ 32 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/DownloadVO.java

@@ -0,0 +1,32 @@
+package com.fdkankan.scene.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * <p>
+ * 通用下载出参
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/2/22
+ **/
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class DownloadVO {
+
+    /**
+     * url
+     */
+    private String url;
+
+    /**
+     * 文件名
+     */
+    private String fileName;
+
+}

+ 2 - 7
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/SceneInfoVO.java

@@ -43,14 +43,9 @@ public class SceneInfoVO {
     private Integer floorLogoSize;
     private Integer floorLogoSize;
 
 
     /**
     /**
-     * 背景音乐名称
+     * 背景音乐
      */
      */
-    private String musicName;
-
-    /**
-     * 背景音乐上传地址
-     */
-    private String musicPath;
+    private String music;
 
 
     /**
     /**
      * 浏览密码
      * 浏览密码