|
@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
@@ -19,6 +20,7 @@ import com.fdkankan.common.response.ResultData;
|
|
|
import com.fdkankan.common.util.ConvertUtils;
|
|
|
import com.fdkankan.common.util.DateExtUtil;
|
|
|
import com.fdkankan.common.util.FileUtils;
|
|
|
+import com.fdkankan.common.util.MatrixToImageWriterUtil;
|
|
|
import com.fdkankan.fyun.oss.UploadToOssUtil;
|
|
|
import com.fdkankan.fyun.qiniu.QiniuUpload;
|
|
|
import com.fdkankan.platform.api.dto.User;
|
|
@@ -27,6 +29,7 @@ import com.fdkankan.redis.constant.RedisKey;
|
|
|
import com.fdkankan.redis.constant.RedisLockKey;
|
|
|
import com.fdkankan.redis.util.RedisLockUtil;
|
|
|
import com.fdkankan.redis.util.RedisUtil;
|
|
|
+import com.fdkankan.scene.bean.SceneJsonBean;
|
|
|
import com.fdkankan.scene.entity.*;
|
|
|
import com.fdkankan.scene.mapper.ISceneMapper;
|
|
|
import com.fdkankan.scene.mapper.ISceneProMapper;
|
|
@@ -106,6 +109,12 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
|
|
|
@Autowired
|
|
|
private ISceneDataDownloadService sceneDataDownloadService;
|
|
|
|
|
|
+ @Value("${main.url}")
|
|
|
+ private String mainUrl;
|
|
|
+
|
|
|
+ @Value("${scene.pro.new.url}")
|
|
|
+ private String sceneProNewUrl;
|
|
|
+
|
|
|
@Override
|
|
|
public void updateUserIdByCameraId(Long userId, Long cameraId) {
|
|
|
this.update(new LambdaUpdateWrapper<Scene>().eq(Scene::getCameraId, cameraId).set(Scene::getUserId, userId));
|
|
@@ -1338,7 +1347,7 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void copyScene(CopySceneParamVO paramVO) throws IOException {
|
|
|
+ public void copyScene(CopySceneParamVO paramVO) throws Exception {
|
|
|
String num = paramVO.getOldNum();
|
|
|
String newNum = paramVO.getNewNum();
|
|
|
|
|
@@ -1363,6 +1372,10 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
|
|
|
String newPath = String.format("/mnt/4Dkankan/scene/%s/caches/images/", newNum);
|
|
|
FileUtils.copyDirectiory(oldPath,newPath);
|
|
|
|
|
|
+ String scenePath = ConstantFilePath.SCENE_V4_PATH + num;
|
|
|
+ String newScenePath = ConstantFilePath.SCENE_V4_PATH + newNum;
|
|
|
+ FileUtils.copyDirectiory(scenePath, newScenePath);
|
|
|
+
|
|
|
// 拷贝数据
|
|
|
Long proId = scenePro.getId();
|
|
|
scenePro.setId(paramVO.getNewSceneProId());
|
|
@@ -1376,6 +1389,7 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
|
|
|
SceneProExt proExt = sceneProExtService.findBySceneProId(proId);
|
|
|
proExt.setDataSource(paramVO.getDatasource());
|
|
|
proExt.setId(null);
|
|
|
+ proExt.setViewCount(0);
|
|
|
proExt.setSceneProId(scenePro.getId());
|
|
|
sceneProExtService.save(proExt);
|
|
|
|
|
@@ -1416,5 +1430,32 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
|
|
|
sceneEditControls.setEditInfoId(sceneEditInfo.getId());
|
|
|
sceneEditControlsService.save(sceneEditControls);
|
|
|
|
|
|
+ // 生成scene.json
|
|
|
+ SceneJsonBean sceneJson = new SceneJsonBean();
|
|
|
+ BeanUtil.copyProperties(sceneEditInfoExt, sceneJson);
|
|
|
+ BeanUtil.copyProperties(sceneEditInfo, sceneJson);
|
|
|
+ SceneEditControlsVO sceneEditControlsVO = BeanUtil.copyProperties(sceneEditControls, SceneEditControlsVO.class);
|
|
|
+ sceneJson.setControls(sceneEditControlsVO);
|
|
|
+ sceneJson.setNum(num);
|
|
|
+ sceneJson.setCreateTime(scenePlus.getCreateTime());
|
|
|
+
|
|
|
+ sceneJson.setSceneResolution(plusExt.getSceneResolution());
|
|
|
+ sceneJson.setSceneFrom(plusExt.getSceneFrom());
|
|
|
+ if(StrUtil.isNotEmpty(plusExt.getVideos())){
|
|
|
+ sceneJson.setVideos(plusExt.getVideos());
|
|
|
+ }
|
|
|
+
|
|
|
+ String sceneJsonPath = String.format(UploadFilePath.DATA_VIEW_PATH+"scene.json", num);
|
|
|
+ uploadToOssUtil.upload(JSON.toJSONBytes(sceneJson), sceneJsonPath);
|
|
|
+
|
|
|
+
|
|
|
+ // 生成二维码
|
|
|
+ String sceneUrl = mainUrl + "/" + sceneProNewUrl;
|
|
|
+ String outPathZh = ConstantFilePath.BASE_PATH + File.separator + "sceneQRcode/" + num + ".png";
|
|
|
+ String outPathEn = ConstantFilePath.BASE_PATH + File.separator + "sceneQRcode/" + num + "_en.png";
|
|
|
+ MatrixToImageWriterUtil.createQRCode(sceneUrl + num, outPathZh, false,null);
|
|
|
+ MatrixToImageWriterUtil.createQRCode(sceneUrl + num + "&lang=en", outPathEn, false, null);
|
|
|
+ uploadToOssUtil.upload(outPathZh, String.format(UploadFilePath.DOWNLOADS_QRCODE, num) + num + ".png");
|
|
|
+ uploadToOssUtil.upload(outPathEn, String.format(UploadFilePath.DOWNLOADS_QRCODE, num) + num + "_en.png");
|
|
|
}
|
|
|
}
|