Przeglądaj źródła

Merge remote-tracking branch 'origin/master'

dengsixing 2 lat temu
rodzic
commit
9cf5af61d3

+ 0 - 2
src/main/java/com/fdkankan/ucenter/common/constants/ShellCmd.java

@@ -10,6 +10,4 @@ public class ShellCmd {
 	public static final String FYUN_UPLOAD = "sudo bash /opt/ossutil/fyun-upload.sh %s %s /%s %s %s";
 	public static final String FYUN_DOWN = "sudo bash /opt/ossutil/fyun-download.sh %s /%s %s %s %s";
 
-
-
 }

+ 45 - 3
src/main/java/com/fdkankan/ucenter/httpClient/service/LaserService.java

@@ -1,8 +1,11 @@
 package com.fdkankan.ucenter.httpClient.service;
 
+import cn.hutool.core.io.FileUtil;
 import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.ucenter.common.CameraTypeEnum;
 import com.fdkankan.ucenter.common.Result;
+import com.fdkankan.ucenter.common.utils.ShellUtil;
 import com.fdkankan.ucenter.entity.Camera;
 import com.fdkankan.ucenter.entity.CameraDetail;
 import com.fdkankan.ucenter.entity.User;
@@ -11,6 +14,7 @@ import com.fdkankan.ucenter.service.ICameraService;
 import com.fdkankan.ucenter.service.IUserService;
 import com.fdkankan.ucenter.vo.response.SceneNumVo;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
@@ -19,6 +23,8 @@ import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.io.File;
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -116,7 +122,37 @@ public class LaserService {
         return JSONObject.parseObject(JSONObject.toJSONString(result.getData()));
     }
 
-    public void copy(Long camaraId, String createTime, String newNum, Integer status, String sceneKey, String sceneName, Long userId){
+
+    public String copyDataSource( String oldDataSource,String dataSource) {
+        //计算成功  激光转台相机推送
+        log.info("激光转台相机 同步 请求 ");
+        try {
+            //创建目录
+            if(oldDataSource.lastIndexOf("/")!=-1){
+                oldDataSource = oldDataSource + "_laserData";
+            }else{
+                oldDataSource = oldDataSource.substring(0,oldDataSource.length()-1) + "_laserData";
+            }
+
+            if(dataSource.lastIndexOf("/")!=-1){
+                dataSource = dataSource + "_laserData";
+            }else{
+                dataSource = dataSource.substring(0,dataSource.length()-1) + "_laserData";
+            }
+
+            FileUtils.copyDirectiory(oldDataSource  ,dataSource);
+
+            return  dataSource + File.separator + "laserData";
+
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+
+    public void copy(Long camaraId, String createTime, String newNum, Integer status,
+                     String  path, String sceneKey, String sceneName, Long userId){
         String phone = null;
         String snCode = null;
         if(userId != null){
@@ -133,15 +169,21 @@ public class LaserService {
         params.put("phone", phone);
         params.put("sceneCode", newNum);
         params.put("snCode",snCode);
-        params.put("status", status);
+        params.put("status", 0);
         params.put("password", sceneKey);
         params.put("title", sceneName);
         params.put("userId", userId);
-        params.put("copy", true);
+        params.put("isCopy", true);
+        params.put("path",path);
         Result result = laserClient.saveOrEdit(newNum, params);
         if( result.getCode() != HttpStatus.OK.value()){
             log.error("激光场景状态同步失败!");
         }
+        params.put("status",2);
+        result = laserClient.saveOrEdit(newNum, params);
+        if( result.getCode() != HttpStatus.OK.value()){
+            log.error("激光场景状态同步失败!");
+        }
     }
 
 }

+ 11 - 2
src/main/java/com/fdkankan/ucenter/service/impl/ScenePlusServiceImpl.java

@@ -66,6 +66,8 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
     RedisUtil redisUtil;
     @Autowired
     LaserService laserService;
+    @Autowired
+    ISceneCopyLogService sceneCopyLogService;
 
     @Value("${main.url}")
     private String mainUrl;
@@ -185,7 +187,6 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
                     FileUtils.copyDirectiory(scenePath, newScenePath);
                 }
 
-
                 String newVideos = plusExt.getVideos().replaceAll("https://4dkk.4dage.com/data/data" + num, "https://4dkk.4dage.com/scene_view_data/" + newNum + "/data");
                 String oldDataSource  = plusExt.getDataSource();
                 String newDataSource =  sceneProService.setDataSource(plusExt.getDataSource(),time);
@@ -225,6 +226,11 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
                 sceneEditControls.setEditInfoId(sceneEditInfo.getId());
                 sceneEditControlsService.save(sceneEditControls);
 
+                if(scenePlus.getSceneSource() == 4){  //深时复制
+                    laserService.copy(scenePlus.getCameraId(),scenePlus.getCreateTime(),newNum,0,null,
+                            sceneEditInfo.getScenePassword(),scenePlus.getTitle(),scenePlus.getUserId());
+                }
+
                 List<Surveillance> list = surveillanceService.list(new LambdaQueryWrapper<Surveillance>().eq(Surveillance::getNum, num));
                 if (!Objects.isNull(list)) {
                     list.stream().forEach(item -> {
@@ -272,9 +278,12 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
                 this.updateById(scenePlus);
                 log.info("复制场景结束-{}", new Date());
                 if(scenePlus.getSceneSource() == 4){  //深时复制
-                    laserService.copy(scenePlus.getCameraId(),scenePlus.getCreateTime(),newNum,scenePlus.getSceneStatus(),
+                    String laserPath = laserService.copyDataSource(oldDataSource,plusExt.getDataSource());
+                    laserService.copy(scenePlus.getCameraId(),scenePlus.getCreateTime(),newNum,2,laserPath,
                             sceneEditInfo.getScenePassword(),scenePlus.getTitle(),scenePlus.getUserId());
                 }
+                sceneCopyLogService.saveByNum(num,newNum,scenePlus.getUserId());
+
             }catch (Exception e){
                 this.removeById(scenePlus.getId());
                 log.error("复制场景异常", e);

+ 8 - 4
src/main/java/com/fdkankan/ucenter/service/impl/SceneProServiceImpl.java

@@ -529,7 +529,6 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         FolderScene folderScene = folderSceneService.getByType(sceneId, null);
         String time = DateUtil.date2String(new Date(),DateUtil.YYYYMMDDHHMMSSSSS_DATA_FORMAT);
 
-
         if(scenePro !=null){        //v3场景复制
             log.info("场景复制--V3--OldNum:{},oldTitle:{},newNum:{},newTitle:{}",
                     scenePro.getNum(),scenePro.getSceneName(),newNum,newTitle);
@@ -581,6 +580,10 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         oldScene.setDataSource(newDataSource);
 
         this.save(oldScene);
+        if(oldScene.getSceneSource() == 4){  //深时复制
+            laserService.copy(oldScene.getCameraId(),oldScene.getCreateTime(),newNum,0,null,
+                    oldEditScene.getSceneKey(),oldScene.getSceneName(),oldScene.getUserId());
+        }
         //更新video
         Map map = new HashMap();
         JSONObject object = new JSONObject();
@@ -602,7 +605,6 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         map.put("id",oldScene.getId());
         map.put("dataSource",oldScene.getDataSource());
 
-        sceneCopyLogService.saveByNum(oldNum,newNum,oldScene.getUserId());
         //复制完成更新相机容量
 
         oldEditScene.setId(null);
@@ -648,9 +650,12 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
                 this.updateById(oldScene);
                 log.info("复制场景结束-{}", new Date());
                 if(oldScene.getSceneSource() == 4){  //深时复制
-                    laserService.copy(oldScene.getCameraId(),oldScene.getCreateTime(),newNum,oldScene.getStatus(),
+                    String laserPath = laserService.copyDataSource(preDataSource,oldScene.getDataSource());
+                    laserService.copy(oldScene.getCameraId(),oldScene.getCreateTime(),newNum,2,laserPath,
                             oldEditScene.getSceneKey(),oldScene.getSceneName(),oldScene.getUserId());
                 }
+                sceneCopyLogService.saveByNum(oldNum,newNum,oldScene.getUserId());
+
             } catch (Exception e) {
                 this.removeById(oldScene.getId());
                 log.error("复制场景异常", e);
@@ -707,7 +712,6 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         }
         FileUtils.delAllFile(newDataSource);
 
-
         FileUtils.copyFolderAllFiles(oldDataSource+"/",newDataSource+"/", true);
 
     }