|
@@ -221,14 +221,23 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
|
|
|
|
|
|
// 检测是否有生成
|
|
|
String fileId = redisUtil.get(String.format(RedisConstants.FOLDER_FILEID_BUILD, folderName));
|
|
|
- if (!ObjectUtils.isEmpty(fileId)) {
|
|
|
- responseSceneFile.setFileId(fileId);
|
|
|
- return responseSceneFile;
|
|
|
+ if (StrUtil.isEmpty(fileId)) {
|
|
|
+ SceneFileBuild sceneFileBuild = this.findByUnicode(folderName);
|
|
|
+ if (sceneFileBuild != null) {
|
|
|
+ fileId = sceneFileBuild.getFileId();
|
|
|
+ }
|
|
|
}
|
|
|
+ if(StrUtil.isNotEmpty(fileId)){
|
|
|
+
|
|
|
+ //校验目录是否被上锁,如果上锁,抛出错误(避免删除原始资源定时任务执行过程中,有场景补拍重新上传)
|
|
|
+ String homePath = redisUtil.get(String.format(RedisKey.SCENE_OSS_HOME_DIR_DELETE, folderName));
|
|
|
+ if(StrUtil.isNotEmpty(homePath)){
|
|
|
+ throw new BusinessException(ErrorCode.FAILURE_CODE_5073);
|
|
|
+ }
|
|
|
+ //如果原始资源目录不是正在被定时任务删除中,就加上上传锁,并正常返回
|
|
|
+ homePath = ConstantFilePath.OSS_PREFIX.concat(mac).concat("/").concat(fileId).concat("/").concat(folderName);
|
|
|
+ redisUtil.set(String.format(RedisKey.SCENE_OSS_HOME_DIR_UPLOAD, folderName), homePath, RedisKey.CAMERA_EXPIRE_7_TIME);
|
|
|
|
|
|
- SceneFileBuild sceneFileBuild = this.findByUnicode(folderName);
|
|
|
- if (sceneFileBuild != null) {
|
|
|
- fileId = sceneFileBuild.getFileId();
|
|
|
responseSceneFile.setFileId(fileId);
|
|
|
redisUtil.set(String.format(RedisConstants.FOLDER_FILEID_BUILD, folderName), fileId, 2 * 24 * 60 * 60);
|
|
|
return responseSceneFile;
|
|
@@ -242,7 +251,7 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
|
|
|
|
|
|
// 查找场景表
|
|
|
LambdaQueryWrapper<ScenePro> proWrapper = new LambdaQueryWrapper<>();
|
|
|
- proWrapper.like(ScenePro::getDataSource, "/" + folderName).eq(ScenePro::getRecStatus, 'A');
|
|
|
+ proWrapper.like(ScenePro::getDataSource, "/" + folderName);
|
|
|
ScenePro pro = sceneProService.getOne(proWrapper);
|
|
|
|
|
|
String dataSource = null;
|
|
@@ -266,10 +275,7 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
|
|
|
log.info("新生成build数据,{}", fileId);
|
|
|
}
|
|
|
|
|
|
- //校验目录是否被上锁,如果上锁,抛出错误(由于定时任务)
|
|
|
- redisUtil.hget()
|
|
|
-
|
|
|
- sceneFileBuild = new SceneFileBuild();
|
|
|
+ SceneFileBuild sceneFileBuild = new SceneFileBuild();
|
|
|
sceneFileBuild.setChildName(mac);
|
|
|
sceneFileBuild.setFileId(fileId);
|
|
|
sceneFileBuild.setRecStatus("A");
|