浏览代码

场景中心业务代码迁移

by su 3 年之前
父节点
当前提交
bdcf1c7c80

+ 0 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/config/file.txt


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

@@ -6,6 +6,7 @@ import com.fdkankan.scene.vo.SceneVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
@@ -29,8 +30,7 @@ public class SceneController {
      * 获取场景详情
      * 获取场景详情
      */
      */
     @RequestMapping(value = "/getInfo")
     @RequestMapping(value = "/getInfo")
-    public SceneVO getInfo(HttpServletRequest request) throws Exception {
-        String sceneNum = request.getParameter("num");
+    public SceneVO getInfo(@RequestParam(value = "num") String sceneNum){
         return sceneProService.getInfo(sceneNum);
         return sceneProService.getInfo(sceneNum);
     }
     }
 
 

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

@@ -4,10 +4,13 @@ import com.fdkankan.common.controller.BaseController;
 import com.fdkankan.scene.service.ISceneProService;
 import com.fdkankan.scene.service.ISceneProService;
 import com.fdkankan.scene.vo.SceneEditVO;
 import com.fdkankan.scene.vo.SceneEditVO;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.common.response.ResultData;
+import com.fdkankan.scene.vo.UploadFileParamVO;
 import lombok.extern.log4j.Log4j2;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 
 /**
 /**
  * 场景编辑管理
  * 场景编辑管理
@@ -20,114 +23,83 @@ public class SceneEditController extends BaseController {
     @Autowired
     @Autowired
     private ISceneProService sceneProService;
     private ISceneProService sceneProService;
 
 
-    @Value("${main.url}")
-    private String mainUrl;
-
     /**
     /**
-     * 保存编辑的数据并生效
-     * @return
-     */
+     * <p>
+        保存编辑的数据并生效
+     * </p>
+     * @author dengsixing
+     * @date 2022/1/12
+     * @param sceneEditVO
+     * @return com.fdkankan.common.response.ResultData
+     **/
     @PostMapping(value = "/saveSceneInfo")
     @PostMapping(value = "/saveSceneInfo")
-    public ResultData saveSceneInfo(@RequestBody SceneEditVO param) throws Exception {
-        return sceneProService.saveSceneInfo(param);
+    public ResultData saveSceneInfo(@RequestBody SceneEditVO sceneEditVO) throws Exception {
+        return sceneProService.saveSceneInfo(sceneEditVO);
+    }
+
+    /**
+     * <p>
+        单独保存tourList
+     * </p>
+     * @author dengsixing
+     * @date 2022/1/12
+     * @param sceneEditVO
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @PostMapping(value = "/saveTourList")
+    public ResultData saveTourList(@RequestBody SceneEditVO sceneEditVO) throws Exception {
+        return sceneProService.saveTourList(sceneEditVO);
+    }
+
+    /**
+     * <p>
+        删除导览
+     * </p>
+     * @author dengsixing
+     * @date 2022/1/12
+     * @param sceneEditVO
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @PostMapping(value = "/deleteScreencap")
+    public ResultData deleteScreencap(@RequestBody SceneEditVO sceneEditVO) throws Exception {
+        return sceneProService.deleteScreencap(sceneEditVO);
+    }
+
+    /**
+     * <p>
+        删除录屏音频文件
+     * </p>
+     * @author dengsixing
+     * @date 2022/1/12
+     * @param sceneEditVO
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @PostMapping(value = "/deleteScreencapVoiceNew")
+    public ResultData deleteScreencapVoiceNew(@RequestBody SceneEditVO sceneEditVO) throws Exception {
+        return sceneProService.deleteScreencapVoice(sceneEditVO);
     }
     }
 
 
     /**
     /**
-     * 单独保存tourList
+     * 上传音频
+     * @param file
      * @return
      * @return
      */
      */
+    @PostMapping(value = "/uploadScreencapVoiceNew")
+    public ResultData uploadScreencapVoice(@RequestBody @Validated UploadFileParamVO param,
+                                           @RequestParam("file") MultipartFile file) throws Exception {
+        return sceneProService.uploadScreencapVoiceNew(param, file);
+    }
+
     /**
     /**
-     *
-     * @param base
+     * 上传音频
+     * @param file
      * @return
      * @return
-     * @throws Exception
      */
      */
-    @RequestMapping(value = "/saveTourList", method = RequestMethod.POST)
-    public ResultData saveTourList(@RequestBody SceneEditVO base) throws Exception {
-        return sceneProService.saveTourList(base);
+    @PostMapping(value = "/uploadScreencapVoiceNewV3")
+    public ResultData uploadScreencapVoiceV3(@RequestBody @Validated UploadFileParamVO param,
+                                         @RequestParam("file")  MultipartFile file) throws Exception {
+        return sceneProService.uploadScreencapVoiceNewV3(param, file);
     }
     }
-
-//    /**
-//     * 删除导览
-//     * @return
-//     */
-//    @RequestMapping(value = "/deleteScreencap", method = RequestMethod.POST)
-//    public Result deleteScreencap(HttpServletRequest request, HttpServletResponse response) throws Exception {
-//        RequestSceneEdit base = new RequestSceneEdit();
-//        base.setSceneNum(request.getParameter("sceneNum"));
-//        return sceneProService.deleteScreencap(base);
-//    }
-
-//    /**
-//     * 删除录屏音频文件
-//     * @return
-//     */
-//    @ApiOperation("删除录屏音频文件")
-//    @CheckCurrentUser(description = "删除录屏音频文件")
-//    @RequestMapping(value = "/deleteScreencapVoiceNew", method = RequestMethod.POST)
-//    @ApiImplicitParams({
-//            @ApiImplicitParam(name = "sceneNum", value = "场景编码", dataType = "String"),
-//            @ApiImplicitParam(name = "type", value = "sound为sound录音,其余普通录音", dataType = "String")})
-//    public Result deleteScreencapVoiceNew(HttpServletRequest request, HttpServletResponse response) throws Exception {
-//        RequestSceneEdit base = new RequestSceneEdit();
-//        base.setSceneNum(request.getParameter("sceneNum"));
-//        base.setType(request.getParameter("type"));
-//        return sceneProService.deleteScreencapVoice(base);
-//    }
-//
-//    /**
-//     * 上传音频
-//     * @param file
-//     * @return
-//     */
-//    @ApiOperation("上传音频")
-//    @CheckCurrentUser(description = "上传音频")
-//    @RequestMapping(value = "/uploadScreencapVoiceNew", method = RequestMethod.POST)
-//    @ApiImplicitParams({
-//            @ApiImplicitParam(name = "sceneNum", value = "场景编码", dataType = "String"),
-//            @ApiImplicitParam(name = "type", value = "sound为sound录音,其余普通录音", dataType = "String"),
-//            @ApiImplicitParam(name = "fileName", value = "文件名", dataType = "String"),
-//            @ApiImplicitParam(name = "file", value = "文件", dataType = "MultipartFile")})
-//    public Result uploadScreencapVoice(HttpServletRequest request, HttpServletResponse response, @RequestParam("file")  MultipartFile file) throws Exception {
-//        String sceneNum = request.getParameter("sceneNum");
-//        String type = request.getParameter("type");
-//        String fileName = request.getParameter("fileName");
-//        String length = request.getParameter("length");
-//        //替换视频,1为替换,0或没值为不替换
-//        String replace = request.getParameter("replace");
-//
-//        return sceneProService.uploadScreencapVoiceNew(sceneNum, type, fileName, file, length, replace);
-//    }
-//
-//    /**
-//     * 上传音频
-//     * @param file
-//     * @return
-//     */
-//    @ApiOperation("上传音频")
-//    @CheckCurrentUser(description = "上传音频")
-//    @RequestMapping(value = "/uploadScreencapVoiceNewV3", method = RequestMethod.POST)
-//    @ApiImplicitParams({
-//            @ApiImplicitParam(name = "sceneNum", value = "场景编码", dataType = "String"),
-//            @ApiImplicitParam(name = "type", value = "sound为sound录音,其余普通录音", dataType = "String"),
-//            @ApiImplicitParam(name = "fileName", value = "文件名", dataType = "String"),
-//            @ApiImplicitParam(name = "length", value = "当前视频大小", dataType = "String"),
-//            @ApiImplicitParam(name = "replace", value = "1为替换,0或没值为不替换", dataType = "String"),
-//            @ApiImplicitParam(name = "times", value = "所有房间的每个视频长度", dataType = "String"),
-//            @ApiImplicitParam(name = "index", value = "当前视频的序号", dataType = "String"),
-//            @ApiImplicitParam(name = "file", value = "文件", dataType = "MultipartFile")})
-//    public Result uploadScreencapVoiceV3(HttpServletRequest request, HttpServletResponse response, @RequestParam("file")  MultipartFile file) throws Exception {
-//        String sceneNum = request.getParameter("sceneNum");
-//        String type = request.getParameter("type");
-//        String fileName = request.getParameter("fileName");
-//        String length = request.getParameter("length");
-//        //替换视频,1为替换,0或没值为不替换
-//        String replace = request.getParameter("replace");
-//
-//        String times = request.getParameter("times");
-//        String index = request.getParameter("index");
-//        return sceneProService.uploadScreencapVoiceNewV3(sceneNum, type, fileName, file, length, replace, times, index);
-//    }
 //
 //
 //    /**
 //    /**
 //     * 删除某部分音频
 //     * 删除某部分音频

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

@@ -3,6 +3,7 @@ package com.fdkankan.scene.controller;
 import com.alibaba.druid.pool.DruidDataSource;
 import com.alibaba.druid.pool.DruidDataSource;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.common.constant.ConstantFilePath;
 import com.fdkankan.common.util.MatrixToImageWriterUtil;
 import com.fdkankan.common.util.MatrixToImageWriterUtil;
 import com.fdkankan.mq.message.BuildSceneMqMessage;
 import com.fdkankan.mq.message.BuildSceneMqMessage;
 import com.fdkankan.mq.util.RocketMQProducer;
 import com.fdkankan.mq.util.RocketMQProducer;

+ 3 - 2
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneProService.java

@@ -7,6 +7,7 @@ import com.fdkankan.scene.entity.SceneProPO;
 import com.fdkankan.scene.vo.SceneEditVO;
 import com.fdkankan.scene.vo.SceneEditVO;
 import com.fdkankan.scene.vo.SceneVO;
 import com.fdkankan.scene.vo.SceneVO;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.common.response.ResultData;
+import com.fdkankan.scene.vo.UploadFileParamVO;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
 
 
 import java.util.List;
 import java.util.List;
@@ -59,9 +60,9 @@ public interface ISceneProService extends IService<ScenePro> {
 
 
     ResultData getScreencapVoice(SceneEditVO base) throws Exception;
     ResultData getScreencapVoice(SceneEditVO base) throws Exception;
 
 
-    ResultData uploadScreencapVoiceNew(String sceneNum, String type, String fileName, MultipartFile file, String length, String replace) throws Exception;
+    ResultData uploadScreencapVoiceNew(UploadFileParamVO param, MultipartFile file) throws Exception;
 
 
-    ResultData uploadScreencapVoiceNewV3(String sceneNum, String type, String fileName, MultipartFile file, String length, String replace, String times, String index) throws Exception;
+    ResultData uploadScreencapVoiceNewV3(UploadFileParamVO param, MultipartFile file) throws Exception;
 
 
     ResultData deleteScreencapVoicePart(String sceneNum, String fileName, String times, String index) throws Exception;
     ResultData deleteScreencapVoicePart(String sceneNum, String fileName, String times, String index) throws Exception;
 
 

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

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.fdkankan.common.constant.RecStatus;
 import com.fdkankan.common.constant.RecStatus;
 import com.fdkankan.common.constant.TbStatus;
 import com.fdkankan.common.constant.TbStatus;
 import com.fdkankan.redis.constant.RedisKey;
 import com.fdkankan.redis.constant.RedisKey;
+import com.fdkankan.redis.constant.RedisLockKey;
 import com.fdkankan.redis.util.RedisLockUtil;
 import com.fdkankan.redis.util.RedisLockUtil;
 import com.fdkankan.redis.util.RedisUtil;
 import com.fdkankan.redis.util.RedisUtil;
 import com.fdkankan.scene.entity.Scene3dNum;
 import com.fdkankan.scene.entity.Scene3dNum;
@@ -68,7 +69,7 @@ public class Scene3dNumServiceImpl extends ServiceImpl<IScene3dNumMapper, Scene3
             return sceneNum;
             return sceneNum;
         }
         }
         // 分布式加锁
         // 分布式加锁
-        Long loading =  redisUtil.incr(RedisKey.LOCK_FDKANKAN_SCENE_NUMS, 1);
+        Long loading =  redisUtil.incr(RedisLockKey.LOCK_FDKANKAN_SCENE_NUMS, 1);
         if (loading.compareTo(1L) == 0) {
         if (loading.compareTo(1L) == 0) {
             try {
             try {
                 log.info("开始从数据库加载场景码");
                 log.info("开始从数据库加载场景码");
@@ -79,7 +80,7 @@ public class Scene3dNumServiceImpl extends ServiceImpl<IScene3dNumMapper, Scene3
             } catch (Exception e) {
             } catch (Exception e) {
                 e.printStackTrace();
                 e.printStackTrace();
             } finally {
             } finally {
-                redisUtil.decr(RedisKey.LOCK_FDKANKAN_SCENE_NUMS, 1);
+                redisUtil.decr(RedisLockKey.LOCK_FDKANKAN_SCENE_NUMS, 1);
             }
             }
         }else{
         }else{
             // 等待1秒加载缓存
             // 等待1秒加载缓存

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

@@ -10,6 +10,7 @@ import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.fyun.oss.UploadToOssUtil;
 import com.fdkankan.fyun.oss.UploadToOssUtil;
 import com.fdkankan.common.util.WeiXinUtils;
 import com.fdkankan.common.util.WeiXinUtils;
 import com.fdkankan.redis.constant.RedisKey;
 import com.fdkankan.redis.constant.RedisKey;
+import com.fdkankan.redis.constant.RedisLockKey;
 import com.fdkankan.redis.util.RedisLockUtil;
 import com.fdkankan.redis.util.RedisLockUtil;
 import com.fdkankan.scene.entity.Scene;
 import com.fdkankan.scene.entity.Scene;
 import com.fdkankan.scene.entity.SceneExt;
 import com.fdkankan.scene.entity.SceneExt;
@@ -521,7 +522,7 @@ public class SceneAppServiceImpl extends ServiceImpl<ISceneMapper, Scene> implem
             return -99;
             return -99;
         }
         }
 
 
-        String lockKey = String.format(RedisKey.LOCK_UPLOAD_PIC, sceneNum);
+        String lockKey = String.format(RedisLockKey.LOCK_UPLOAD_PIC, sceneNum);
 //        Boolean lock = redisTemplate.opsForValue()
 //        Boolean lock = redisTemplate.opsForValue()
 //                                    .setIfAbsent(lockKey, Thread.currentThread().getId(), RedisKey.EXPIRE_TIME_10_MINUTE, TimeUnit.MILLISECONDS);
 //                                    .setIfAbsent(lockKey, Thread.currentThread().getId(), RedisKey.EXPIRE_TIME_10_MINUTE, TimeUnit.MILLISECONDS);
         Boolean lock = redisLockUtil.lock(lockKey, RedisKey.EXPIRE_TIME_10_MINUTE);
         Boolean lock = redisLockUtil.lock(lockKey, RedisKey.EXPIRE_TIME_10_MINUTE);
@@ -576,7 +577,7 @@ public class SceneAppServiceImpl extends ServiceImpl<ISceneMapper, Scene> implem
             return -99;
             return -99;
         }
         }
 
 
-        String lockKey = String.format(RedisKey.LOCK_UPLOAD_VOICE, sceneNum);
+        String lockKey = String.format(RedisLockKey.LOCK_UPLOAD_VOICE, sceneNum);
         Boolean lock = redisLockUtil.lock(lockKey, RedisKey.EXPIRE_TIME_30_MINUTE);
         Boolean lock = redisLockUtil.lock(lockKey, RedisKey.EXPIRE_TIME_30_MINUTE);
 
 
         if(!lock){
         if(!lock){

+ 5 - 4
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneProAppServiceImpl.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.common.constant.*;
 import com.fdkankan.common.constant.*;
 import com.fdkankan.common.util.*;
 import com.fdkankan.common.util.*;
 import com.fdkankan.redis.constant.RedisKey;
 import com.fdkankan.redis.constant.RedisKey;
+import com.fdkankan.redis.constant.RedisLockKey;
 import com.fdkankan.redis.util.RedisLockUtil;
 import com.fdkankan.redis.util.RedisLockUtil;
 import com.fdkankan.scene.entity.ScenePro;
 import com.fdkankan.scene.entity.ScenePro;
 import com.fdkankan.scene.entity.SceneProEdit;
 import com.fdkankan.scene.entity.SceneProEdit;
@@ -456,7 +457,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
             throw new BusinessException(ErrorCode.FAILURE_CODE_5012);
             throw new BusinessException(ErrorCode.FAILURE_CODE_5012);
         }
         }
 
 
-        String lockKey = String.format(RedisKey.LOCK_UPLOAD_PRO_PIC, sceneNum);
+        String lockKey = String.format(RedisLockKey.LOCK_UPLOAD_PRO_PIC, sceneNum);
         Boolean lock = redisLockUtil.lock(lockKey, RedisKey.EXPIRE_TIME_10_MINUTE);
         Boolean lock = redisLockUtil.lock(lockKey, RedisKey.EXPIRE_TIME_10_MINUTE);
 
 
         if(!lock){
         if(!lock){
@@ -510,7 +511,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
             throw new BusinessException(ErrorCode.FAILURE_CODE_5012);
             throw new BusinessException(ErrorCode.FAILURE_CODE_5012);
         }
         }
 
 
-        String lockKey = String.format(RedisKey.LOCK_UPLOAD_PRO_VOICE, sceneNum);
+        String lockKey = String.format(RedisLockKey.LOCK_UPLOAD_PRO_VOICE, sceneNum);
         Boolean lock = redisLockUtil.lock(lockKey, RedisKey.EXPIRE_TIME_30_MINUTE);
         Boolean lock = redisLockUtil.lock(lockKey, RedisKey.EXPIRE_TIME_30_MINUTE);
 
 
         if(!lock){
         if(!lock){
@@ -1117,7 +1118,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     @Override
     @Override
     public ResultData uploadFloorJsonAndRebuild(SceneEditVO sceneEdit) throws Exception {
     public ResultData uploadFloorJsonAndRebuild(SceneEditVO sceneEdit) throws Exception {
 
 
-        String lockKey = String.format(RedisKey.LOCK_UPLOAD_FLOORJSON_REBUILD, sceneEdit.getSceneNum());
+        String lockKey = String.format(RedisLockKey.LOCK_UPLOAD_FLOORJSON_REBUILD, sceneEdit.getSceneNum());
         Boolean lock = redisLockUtil.lock(lockKey, RedisKey.EXPIRE_TIME_2_HOUR);
         Boolean lock = redisLockUtil.lock(lockKey, RedisKey.EXPIRE_TIME_2_HOUR);
         if(!lock){
         if(!lock){
             throw new BusinessException(ErrorCode.FAILURE_CODE_5036);
             throw new BusinessException(ErrorCode.FAILURE_CODE_5036);
@@ -1330,7 +1331,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
         }
         }
 
 
-        String lockKey = String.format(RedisKey.LOCK_UPLOAD_FLOORPLAN_PNG, sceneNum);
+        String lockKey = String.format(RedisLockKey.LOCK_UPLOAD_FLOORPLAN_PNG, sceneNum);
         Boolean lock = redisLockUtil.lock(lockKey, RedisKey.EXPIRE_TIME_30_MINUTE);
         Boolean lock = redisLockUtil.lock(lockKey, RedisKey.EXPIRE_TIME_30_MINUTE);
         if(!lock){
         if(!lock){
             throw new BusinessException(ErrorCode.FAILURE_CODE_5036);
             throw new BusinessException(ErrorCode.FAILURE_CODE_5036);

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

@@ -16,6 +16,7 @@ import com.fdkankan.common.constant.*;
 import com.fdkankan.common.util.*;
 import com.fdkankan.common.util.*;
 import com.fdkankan.platform.api.feign.PlatformClient;
 import com.fdkankan.platform.api.feign.PlatformClient;
 import com.fdkankan.redis.constant.RedisKey;
 import com.fdkankan.redis.constant.RedisKey;
+import com.fdkankan.redis.constant.RedisLockKey;
 import com.fdkankan.redis.util.RedisLockUtil;
 import com.fdkankan.redis.util.RedisLockUtil;
 import com.fdkankan.scene.entity.*;
 import com.fdkankan.scene.entity.*;
 import com.fdkankan.scene.mapper.ISceneProMapper;
 import com.fdkankan.scene.mapper.ISceneProMapper;
@@ -27,6 +28,7 @@ import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.fyun.oss.UploadToOssUtil;
 import com.fdkankan.fyun.oss.UploadToOssUtil;
+import com.fdkankan.scene.vo.UploadFileParamVO;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import net.coobird.thumbnailator.Thumbnails;
 import net.coobird.thumbnailator.Thumbnails;
 import org.joda.time.DateTime;
 import org.joda.time.DateTime;
@@ -245,7 +247,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     @Override
     @Override
     public ResultData uploadFloorJson(SceneEditVO sceneEdit) throws Exception {
     public ResultData uploadFloorJson(SceneEditVO sceneEdit) throws Exception {
 
 
-        String lockKey = String.format(RedisKey.LOCK_UPLOAD_FLOORJSON_REBUILD, sceneEdit.getSceneNum());
+        String lockKey = String.format(RedisLockKey.LOCK_UPLOAD_FLOORJSON_REBUILD, sceneEdit.getSceneNum());
         Boolean lock = redisLockUtil.lock(lockKey, RedisKey.EXPIRE_TIME_2_HOUR);
         Boolean lock = redisLockUtil.lock(lockKey, RedisKey.EXPIRE_TIME_2_HOUR);
         if(!lock){
         if(!lock){
             throw new BusinessException(ErrorCode.FAILURE_CODE_5036);
             throw new BusinessException(ErrorCode.FAILURE_CODE_5036);
@@ -481,7 +483,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     @Override
     @Override
     public ResultData uploadFloorJsonAjk(String sceneNum, String ajkJson, String cameraJson, String floorPlanJson, MultipartFile[] file) throws Exception {
     public ResultData uploadFloorJsonAjk(String sceneNum, String ajkJson, String cameraJson, String floorPlanJson, MultipartFile[] file) throws Exception {
 
 
-        String lockKey = String.format(RedisKey.LOCK_UPLOAD_FLOORJSON_REBUILD, sceneNum);
+        String lockKey = String.format(RedisLockKey.LOCK_UPLOAD_FLOORJSON_REBUILD, sceneNum);
         Boolean lock = redisLockUtil.lock(lockKey, RedisKey.EXPIRE_TIME_2_HOUR);
         Boolean lock = redisLockUtil.lock(lockKey, RedisKey.EXPIRE_TIME_2_HOUR);
         if(!lock){
         if(!lock){
             throw new BusinessException(ErrorCode.FAILURE_CODE_5036);
             throw new BusinessException(ErrorCode.FAILURE_CODE_5036);
@@ -937,11 +939,9 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
     }
 
 
     @Override
     @Override
-    public ResultData uploadScreencapVoiceNew(String sceneNum, String type, String fileName, MultipartFile file, String length, String replace) throws Exception{
-        if(StrUtil.isEmpty(sceneNum)){
-            throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
-        }
-
+    public ResultData uploadScreencapVoiceNew(UploadFileParamVO param, MultipartFile file) throws Exception{
+        String sceneNum = param.getSceneNum();
+        String fileName = param.getFileName();
         ScenePro scenePro = findBySceneNum(sceneNum);
         ScenePro scenePro = findBySceneNum(sceneNum);
         if(scenePro == null){
         if(scenePro == null){
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
@@ -968,7 +968,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         if(strsceneInfos!=null) {
         if(strsceneInfos!=null) {
             scenejson = JSONObject.parseObject(strsceneInfos);
             scenejson = JSONObject.parseObject(strsceneInfos);
         }
         }
-        if("soundsync".equals(type) && !"1".equals(replace)){
+        if("soundsync".equals(type) && !"1".equals(param.getReplace())){
             synchronized(this){
             synchronized(this){
                 if(scenejson.containsKey("screencapVoiceSoundsync") && !StrUtil.isEmpty(scenejson.getString("screencapVoiceSoundsync"))){
                 if(scenejson.containsKey("screencapVoiceSoundsync") && !StrUtil.isEmpty(scenejson.getString("screencapVoiceSoundsync"))){
                     String target = ConstantFilePath.SCENE_PATH + scenejson.getString("screencapVoiceSoundsync").substring(
                     String target = ConstantFilePath.SCENE_PATH + scenejson.getString("screencapVoiceSoundsync").substring(
@@ -987,7 +987,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
                         new File(target).renameTo(new File(path + File.separator + "oldSound201810.mp3"));
                         new File(target).renameTo(new File(path + File.separator + "oldSound201810.mp3"));
 
 
                         //判断音频时长,不够拼接空白音效
                         //判断音频时长,不够拼接空白音效
-                        double total = Double.parseDouble(length);
+                        double total = param.getLength();
                         double now = (FileUtils.getAudioPlayTime(new File(path + File.separator + "oldSound201810.mp3")) +
                         double now = (FileUtils.getAudioPlayTime(new File(path + File.separator + "oldSound201810.mp3")) +
                                 FileUtils.getAudioPlayTime(new File(path + File.separator + "newSound201810.mp3"))) / 1000.0;
                                 FileUtils.getAudioPlayTime(new File(path + File.separator + "newSound201810.mp3"))) / 1000.0;
                         if(total - now > 0.5){
                         if(total - now > 0.5){
@@ -1027,7 +1027,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
                     file.transferTo(targetFile);
                     file.transferTo(targetFile);
                     //判断音频时长,不够拼接空白音效
                     //判断音频时长,不够拼接空白音效
                     FileUtils.changeVoiceToMp3(path + File.separator + soundFileName, path + File.separator + "newSound201810.mp3");
                     FileUtils.changeVoiceToMp3(path + File.separator + soundFileName, path + File.separator + "newSound201810.mp3");
-                    double total = Double.parseDouble(length);
+                    double total = param.getLength();
                     double now = (FileUtils.getAudioPlayTime(new File(path + File.separator + "newSound201810.mp3"))) / 1000.0;
                     double now = (FileUtils.getAudioPlayTime(new File(path + File.separator + "newSound201810.mp3"))) / 1000.0;
                     log.info("前端传的时长:" + total);
                     log.info("前端传的时长:" + total);
                     log.info("获取文件的时长:" + now);
                     log.info("获取文件的时长:" + now);
@@ -1120,7 +1120,9 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
     }
 
 
     @Override
     @Override
-    public ResultData uploadScreencapVoiceNewV3(String sceneNum, String type, String fileName, MultipartFile file, String length, String replace, String times, String index) throws Exception{
+    public ResultData uploadScreencapVoiceNewV3(UploadFileParamVO param, MultipartFile file) throws Exception{
+        String sceneNum = param.getSceneNum();
+        String fileName = param.getFileName();
         if(StrUtil.isEmpty(sceneNum)){
         if(StrUtil.isEmpty(sceneNum)){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -1147,7 +1149,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         if(strsceneInfos!=null) {
         if(strsceneInfos!=null) {
             scenejson = JSONObject.parseObject(strsceneInfos);
             scenejson = JSONObject.parseObject(strsceneInfos);
         }
         }
-        if("soundsync".equals(type) && !"1".equals(replace)){
+        if("soundsync".equals(type) && !"1".equals(param.getReplace())){
             //判断分房间模块文件夹是否存在
             //判断分房间模块文件夹是否存在
             String partPath = path + File.separator + "part";
             String partPath = path + File.separator + "part";
             File partFile = new File(partPath);
             File partFile = new File(partPath);
@@ -1165,7 +1167,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             }
             }
 
 
             //获取总音频多少段,每段时长
             //获取总音频多少段,每段时长
-            String[] time = times.split(",");
+            String[] time = param.getTimes().split(",");
             //遍历判断音频是否存在,不存在生成空白音效
             //遍历判断音频是否存在,不存在生成空白音效
             for(int i = 0, len = time.length; i < len; i++){
             for(int i = 0, len = time.length; i < len; i++){
                 if(!new File(partPath + File.separator + i + ".mp3").exists()){
                 if(!new File(partPath + File.separator + i + ".mp3").exists()){

+ 4 - 3
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneServiceImpl.java

@@ -19,6 +19,7 @@ import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.fyun.oss.UploadToOssUtil;
 import com.fdkankan.fyun.oss.UploadToOssUtil;
 import com.fdkankan.fyun.qiniu.QiniuUpload;
 import com.fdkankan.fyun.qiniu.QiniuUpload;
 import com.fdkankan.redis.constant.RedisKey;
 import com.fdkankan.redis.constant.RedisKey;
+import com.fdkankan.redis.constant.RedisLockKey;
 import com.fdkankan.redis.util.RedisLockUtil;
 import com.fdkankan.redis.util.RedisLockUtil;
 import com.fdkankan.redis.util.RedisUtil;
 import com.fdkankan.redis.util.RedisUtil;
 import com.fdkankan.scene.entity.*;
 import com.fdkankan.scene.entity.*;
@@ -1023,7 +1024,7 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
         Object countObject = redisUtil.get(key);
         Object countObject = redisUtil.get(key);
         int count = 0;
         int count = 0;
         if(countObject == null){
         if(countObject == null){
-            String lockKey = String.format(RedisKey.LOCK_SCENE_VISIT_CNT, sceneNum);
+            String lockKey = String.format(RedisLockKey.LOCK_SCENE_VISIT_CNT, sceneNum);
             boolean lock = redisLockUtil.lock(lockKey, RedisKey.EXPIRE_TIME_10_MINUTE);
             boolean lock = redisLockUtil.lock(lockKey, RedisKey.EXPIRE_TIME_10_MINUTE);
             try {
             try {
                 if(!lock){
                 if(!lock){
@@ -1053,7 +1054,7 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
     @Override
     @Override
     public void updatePv(){
     public void updatePv(){
 
 
-        Boolean lock = redisLockUtil.lock(RedisKey.LOCK_SCENE_VISIT_UPDATE, RedisKey.EXPIRE_TIME_2_HOUR);
+        Boolean lock = redisLockUtil.lock(RedisLockKey.LOCK_SCENE_VISIT_UPDATE, RedisKey.EXPIRE_TIME_2_HOUR);
         if(!lock){
         if(!lock){
             return;
             return;
         }
         }
@@ -1082,7 +1083,7 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
                 }
                 }
             }
             }
         }finally {
         }finally {
-            redisLockUtil.unlockLua(RedisKey.LOCK_SCENE_VISIT_UPDATE);
+            redisLockUtil.unlockLua(RedisLockKey.LOCK_SCENE_VISIT_UPDATE);
 
 
         }
         }
 
 

+ 50 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/UploadFileParamVO.java

@@ -0,0 +1,50 @@
+package com.fdkankan.scene.vo;
+
+import lombok.*;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * <p>
+ * 上传
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/1/12
+ **/
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class UploadFileParamVO {
+
+    /**
+     * 场景吗
+     */
+    @NotBlank(message = "sceneNum不能为空!")
+    private String sceneNum;
+
+    private String type;
+
+    /**
+     * 文件名
+     */
+    private String fileName;
+
+    /**
+     * 是否替换 0-不替换,1-替换
+     */
+    private String replace;
+
+    /**
+     * 视频或音频时长
+     */
+    private Double length;
+
+    private String times;
+
+
+
+
+}

+ 1 - 0
4dkankan-center-scene/src/test/java/com/fdkankan/scene/SceneApplicationTests.java

@@ -1,5 +1,6 @@
 package com.fdkankan.scene;
 package com.fdkankan.scene;
 
 
+import com.fdkankan.common.constant.ConstantFilePath;
 import com.fdkankan.common.util.MatrixToImageWriterUtil;
 import com.fdkankan.common.util.MatrixToImageWriterUtil;
 import com.fdkankan.scene.service.IFolderService;
 import com.fdkankan.scene.service.IFolderService;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;