|
@@ -172,13 +172,16 @@ public class CrtDramaProjectStoryboardServiceImpl implements CrtDramaProjectStor
|
|
|
|
|
|
// [DB] 查询分镜
|
|
// [DB] 查询分镜
|
|
List<CrtDramaProjectStoryboard> storyboardList = crtDramaProjectStoryboardDao.selectList(wrapper);
|
|
List<CrtDramaProjectStoryboard> storyboardList = crtDramaProjectStoryboardDao.selectList(wrapper);
|
|
- if (storyboardList == null || storyboardList.size() == 0) throw new CustException("分镜不存在");
|
|
|
|
- CrtDramaProjectStoryboard storyboardDetail = storyboardList.get(0);
|
|
|
|
|
|
+ if (storyboardList == null || storyboardList.isEmpty()) throw new CustException("分镜不存在");
|
|
|
|
+
|
|
|
|
+ // 删除或清空全部,需要有项目的所有者权限
|
|
|
|
+ CrtDramaProject dramaProjectDetail = crtDramaProjectDao.selectById(drama_project_id);
|
|
|
|
+ if (dramaProjectDetail == null) throw new CustException("项目不存在");
|
|
|
|
|
|
// 是否 [分镜] 拥有者,权限:
|
|
// 是否 [分镜] 拥有者,权限:
|
|
// - 编辑自己的 (需 36.2.6.1 权限)
|
|
// - 编辑自己的 (需 36.2.6.1 权限)
|
|
// - 编辑自己及他人的 (需要 36.2.6 权限或超级管理员)
|
|
// - 编辑自己及他人的 (需要 36.2.6 权限或超级管理员)
|
|
- Boolean isOwner = storyboardDetail.getUser_id() == SecurityUtil.getUserId();
|
|
|
|
|
|
+ Boolean isOwner = dramaProjectDetail.getUser_id() == SecurityUtil.getUserId();
|
|
if (isOwner && !securityUtil.hasPermissions(Arrays.asList("36.2.6", "36.2.6.1"), MatchType.OR)) {
|
|
if (isOwner && !securityUtil.hasPermissions(Arrays.asList("36.2.6", "36.2.6.1"), MatchType.OR)) {
|
|
throw new CustException(SecurityEnum.NOAUTH);
|
|
throw new CustException(SecurityEnum.NOAUTH);
|
|
}
|
|
}
|
|
@@ -189,6 +192,12 @@ public class CrtDramaProjectStoryboardServiceImpl implements CrtDramaProjectStor
|
|
|
|
|
|
// [DB] 清空当前分集的所有分镜
|
|
// [DB] 清空当前分集的所有分镜
|
|
crtDramaProjectStoryboardDao.delete(wrapper);
|
|
crtDramaProjectStoryboardDao.delete(wrapper);
|
|
|
|
+
|
|
|
|
+ // [DB/OBJ] 删除分镜下的生图内容 (批量删除 cos/tos)
|
|
|
|
+ storyboardList.forEach(storyboard -> {
|
|
|
|
+ deleteStoryboardImage(storyboard.getDrama_project_storyboard_id());
|
|
|
|
+ });
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -265,7 +274,16 @@ public class CrtDramaProjectStoryboardServiceImpl implements CrtDramaProjectStor
|
|
// [DB] 删除分镜
|
|
// [DB] 删除分镜
|
|
crtDramaProjectStoryboardDao.deleteById(drama_project_storyboard_id);
|
|
crtDramaProjectStoryboardDao.deleteById(drama_project_storyboard_id);
|
|
|
|
|
|
- // 同时删除分镜下的生图内容 (批量删除 cos/tos)
|
|
|
|
|
|
+ // [DB/OBJ] 删除分镜下的生图内容 (批量删除 cos/tos)
|
|
|
|
+ deleteStoryboardImage(drama_project_storyboard_id);
|
|
|
|
+
|
|
|
|
+ return Map.of("drama_project_storyboard_id", drama_project_storyboard_id);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * [DB/OBJ] 删除分镜下的生图内容 (批量删除 cos/tos)
|
|
|
|
+ */
|
|
|
|
+ private void deleteStoryboardImage(Long drama_project_storyboard_id) {
|
|
LambdaQueryWrapper<CrtGenerateImage> wrapper = new LambdaQueryWrapper<>();
|
|
LambdaQueryWrapper<CrtGenerateImage> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(CrtGenerateImage::getDrama_project_storyboard_id, drama_project_storyboard_id);
|
|
wrapper.eq(CrtGenerateImage::getDrama_project_storyboard_id, drama_project_storyboard_id);
|
|
List<CrtGenerateImage> generateImageList = crtGenerateImageDao.selectList(wrapper);
|
|
List<CrtGenerateImage> generateImageList = crtGenerateImageDao.selectList(wrapper);
|
|
@@ -288,8 +306,6 @@ public class CrtDramaProjectStoryboardServiceImpl implements CrtDramaProjectStor
|
|
});
|
|
});
|
|
|
|
|
|
}
|
|
}
|
|
-
|
|
|
|
- return Map.of("drama_project_storyboard_id", drama_project_storyboard_id);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|