|
@@ -33,6 +33,7 @@ import com.fdkankan.scene.mapper.ISceneProMapper;
|
|
import com.fdkankan.scene.service.*;
|
|
import com.fdkankan.scene.service.*;
|
|
import com.fdkankan.scene.vo.*;
|
|
import com.fdkankan.scene.vo.*;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
+import org.apache.commons.lang3.ObjectUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.joda.time.DateTime;
|
|
import org.joda.time.DateTime;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
@@ -86,6 +87,22 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
|
|
PlatformUserClient platformUserClient;
|
|
PlatformUserClient platformUserClient;
|
|
@Autowired
|
|
@Autowired
|
|
ISceneService sceneService;
|
|
ISceneService sceneService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private IScenePlusService scenePlusService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private IScenePlusExtService scenePlusExtService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private ISceneEditInfoService sceneEditInfoService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private ISceneEditInfoExtService sceneEditInfoExtService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private ISceneEditControlsService sceneEditControlsService;
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private ISceneDataDownloadService sceneDataDownloadService;
|
|
private ISceneDataDownloadService sceneDataDownloadService;
|
|
|
|
|
|
@@ -1319,4 +1336,85 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
|
|
}
|
|
}
|
|
return this.count(queryWrapper);
|
|
return this.count(queryWrapper);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void copyScene(CopySceneParamVO paramVO) throws IOException {
|
|
|
|
+ String num = paramVO.getOldNum();
|
|
|
|
+ String newNum = paramVO.getNewNum();
|
|
|
|
+
|
|
|
|
+ ScenePro scenePro = sceneProService.findBySceneNum(num);
|
|
|
|
+ if (ObjectUtils.isEmpty(scenePro)) {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 拷贝场景编辑资源
|
|
|
|
+ String oldEditPath = String.format(UploadFilePath.USER_EDIT_PATH, num);
|
|
|
|
+
|
|
|
|
+ String newEditPath = String.format(UploadFilePath.USER_EDIT_PATH, newNum);
|
|
|
|
+ uploadToOssUtil.copyFiles(oldEditPath,newEditPath);
|
|
|
|
+
|
|
|
|
+ // 拷贝场景展示资源
|
|
|
|
+ String oldViewPath = String.format(UploadFilePath.USER_VIEW_PATH, num);
|
|
|
|
+ String newViewPath = String.format(UploadFilePath.USER_VIEW_PATH, newNum);
|
|
|
|
+ uploadToOssUtil.copyFiles(oldViewPath,newViewPath);
|
|
|
|
+
|
|
|
|
+ // 拷贝本地资源
|
|
|
|
+ String oldPath = String.format("/mnt/4Dkankan/scene/%s/caches/images/", num);
|
|
|
|
+ String newPath = String.format("/mnt/4Dkankan/scene/%s/caches/images/", newNum);
|
|
|
|
+ FileUtils.copyDirectiory(oldPath,newPath);
|
|
|
|
+
|
|
|
|
+ // 拷贝数据
|
|
|
|
+ Long proId = scenePro.getId();
|
|
|
|
+ scenePro.setId(null);
|
|
|
|
+ scenePro.setWebSite(scenePro.getWebSite().replace(num,newNum));
|
|
|
|
+ scenePro.setSceneName(paramVO.getNewSceneName());
|
|
|
|
+ scenePro.setThumb(scenePro.getThumb().replace(num,newNum));
|
|
|
|
+ scenePro.setVideos(scenePro.getVideos().replaceAll(num,newNum));
|
|
|
|
+ scenePro.setNum(newNum);
|
|
|
|
+ sceneProService.save(scenePro);
|
|
|
|
+
|
|
|
|
+ SceneProExt proExt = sceneProExtService.findBySceneProId(proId);
|
|
|
|
+ proExt.setDataSource(paramVO.getDatasource());
|
|
|
|
+ proExt.setId(null);
|
|
|
|
+ proExt.setSceneProId(scenePro.getId());
|
|
|
|
+ sceneProExtService.save(proExt);
|
|
|
|
+
|
|
|
|
+ ScenePlus scenePlus = scenePlusService.getScenePlusByNum(num);
|
|
|
|
+ Long plusId = scenePlus.getId();
|
|
|
|
+ scenePlus.setNum(newNum);
|
|
|
|
+ scenePlus.setId(null);
|
|
|
|
+ scenePlus.setTitle(scenePro.getSceneName());
|
|
|
|
+ scenePlusService.save(scenePlus);
|
|
|
|
+
|
|
|
|
+ ScenePlusExt plusExt = scenePlusExtService.getScenePlusExtByPlusId(plusId);
|
|
|
|
+ plusExt.setId(null);
|
|
|
|
+ plusExt.setPlusId(scenePlus.getId());
|
|
|
|
+ plusExt.setDataSource(paramVO.getDatasource());
|
|
|
|
+ plusExt.setWebSite(plusExt.getWebSite().replace(num,newNum));
|
|
|
|
+ plusExt.setThumb(plusExt.getThumb().replace(num,newNum));
|
|
|
|
+ plusExt.setVideos(plusExt.getVideos().replace(num,newNum));
|
|
|
|
+ scenePlusExtService.save(plusExt);
|
|
|
|
+
|
|
|
|
+ SceneEditInfo sceneEditInfo = sceneEditInfoService.getByScenePlusId(plusId);
|
|
|
|
+ Long sceneEditInfoId = sceneEditInfo.getId();
|
|
|
|
+
|
|
|
|
+ sceneEditInfo.setId(null);
|
|
|
|
+ sceneEditInfo.setScenePlusId(scenePlus.getId());
|
|
|
|
+ sceneEditInfo.setSceneProId(scenePro.getId());
|
|
|
|
+ sceneEditInfo.setTitle(paramVO.getNewSceneName());
|
|
|
|
+ sceneEditInfoService.save(sceneEditInfo);
|
|
|
|
+
|
|
|
|
+ SceneEditInfoExt sceneEditInfoExt = sceneEditInfoExtService.getByEditInfoId(sceneEditInfoId);
|
|
|
|
+ sceneEditInfoExt.setId(null);
|
|
|
|
+ sceneEditInfoExt.setEditInfoId(sceneEditInfo.getId());
|
|
|
|
+ sceneEditInfoExt.setScenePlusId(scenePlus.getId());
|
|
|
|
+ sceneEditInfoExt.setSceneProId(scenePro.getId());
|
|
|
|
+ sceneEditInfoExtService.save(sceneEditInfoExt);
|
|
|
|
+
|
|
|
|
+ SceneEditControls sceneEditControls = sceneEditControlsService.getBySceneEditId(sceneEditInfoId);
|
|
|
|
+ sceneEditControls.setId(null);
|
|
|
|
+ sceneEditControls.setEditInfoId(sceneEditInfo.getId());
|
|
|
|
+ sceneEditControlsService.save(sceneEditControls);
|
|
|
|
+
|
|
|
|
+ }
|
|
}
|
|
}
|