From 2070ab3276159a2cdf6ebcf59bcdc480d1bbaf88 Mon Sep 17 00:00:00 2001 From: jiang Date: Mon, 16 Dec 2024 21:42:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AnnotationExportController.java | 5 +++++ .../bonus/ai/mapper/ReleaseVersionMapper.java | 7 +++++- .../Impl/dataset/DatasetServiceImpl.java | 22 +++++++++++++------ .../dataset/ReleaseVersionServiceImpl.java | 4 ++++ .../resources/mapper/ReleaseVersionMapper.xml | 7 +++++- 5 files changed, 36 insertions(+), 9 deletions(-) diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/AnnotationExportController.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/AnnotationExportController.java index cc6a188..83e71d2 100644 --- a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/AnnotationExportController.java +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/AnnotationExportController.java @@ -33,6 +33,11 @@ public class AnnotationExportController { @Resource private MinioUtil minioUtil; + + + + + @RequiresPermissions("dataCenter:task:annotation:export") @PostMapping("/export/{versionId}") public void exportAuditedAnnotations(HttpServletResponse response, HttpServletRequest request, @PathVariable Long versionId) { diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/mapper/ReleaseVersionMapper.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/mapper/ReleaseVersionMapper.java index 6b7be83..404af49 100644 --- a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/mapper/ReleaseVersionMapper.java +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/mapper/ReleaseVersionMapper.java @@ -15,6 +15,7 @@ public interface ReleaseVersionMapper { /** * 获取数据集版本列表 + * * @param entity 筛选条件 * @return 集合 */ @@ -22,19 +23,23 @@ public interface ReleaseVersionMapper { /** * 发布版本 + * * @param version 数据 * @return 条数 */ int release(ReleaseVersionEntity version); + int selectVersionName(ReleaseVersionEntity version); + /** * 删除版本发布 + * * @param versionIds 版本集合 * @return 条数 */ int delete(Long[] versionIds); - void releaseMap( @Param("taskBasicFile") List taskBasicFile,@Param("versionId") Long versionId); + void releaseMap(@Param("taskBasicFile") List taskBasicFile, @Param("versionId") Long versionId); List getReleaseMapList(Long versionId); diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/Impl/dataset/DatasetServiceImpl.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/Impl/dataset/DatasetServiceImpl.java index 3ac450d..28fd5dc 100644 --- a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/Impl/dataset/DatasetServiceImpl.java +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/Impl/dataset/DatasetServiceImpl.java @@ -353,21 +353,29 @@ public class DatasetServiceImpl implements DatasetService { /** * 判断文件是否符合筛选条件 + * * @param file 数据集基础文件实体,包含文件名、是否为目录等属性 * @param supportedFormats 支持的文件后缀列表 * @return 如果文件符合条件则返回 true,否则返回 false */ private boolean isValidFile(DataSetBasicFileEntity file, List supportedFormats) { - // 如果 supportedFormats 为空,不校验后缀,直接返回文件不是目录的结果 - if (supportedFormats == null || supportedFormats.isEmpty()) { - return "0".equals(file.getIsDirectory()); + // 检查是否为目录,目录返回 false + if ("1".equals(file.getIsDirectory())) { + return false; } - // 校验文件后缀 - return "0".equals(file.getIsDirectory()) && // 确保文件不是目录 - supportedFormats.stream() // 遍历支持的文件后缀 - .anyMatch(format -> file.getFileName().toLowerCase().endsWith(format)); // 文件名后缀匹配 + + // 如果 supportedFormats 为空或无内容,不校验后缀,直接返回 true + if (supportedFormats == null || supportedFormats.isEmpty()) { + return true; + } + + // 校验文件名后缀是否符合支持的格式 + String fileName = file.getFileName().toLowerCase(); + return supportedFormats.stream() + .anyMatch(format -> fileName.endsWith(format)); } + /** * 批量插入文件映射关系 * @param datasetId 数据集ID diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/Impl/dataset/ReleaseVersionServiceImpl.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/Impl/dataset/ReleaseVersionServiceImpl.java index ff755f6..b8ae4e4 100644 --- a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/Impl/dataset/ReleaseVersionServiceImpl.java +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/Impl/dataset/ReleaseVersionServiceImpl.java @@ -54,6 +54,10 @@ public class ReleaseVersionServiceImpl implements ReleaseVersionService { return AjaxResult.error("不存在已审核的标注信息,不能发布"); } version.setCreateBy(SecurityUtils.getUserId().toString()); + int i = mapper.selectVersionName(version); + if (i > 0) { + return AjaxResult.error("版本名称已存在"); + } int num = mapper.release(version); if (num > 0) { mapper.releaseMap(taskBasicFile, version.getVersionId()); diff --git a/bonus-modules/bonus-ai/src/main/resources/mapper/ReleaseVersionMapper.xml b/bonus-modules/bonus-ai/src/main/resources/mapper/ReleaseVersionMapper.xml index 8582de5..78eb7a3 100644 --- a/bonus-modules/bonus-ai/src/main/resources/mapper/ReleaseVersionMapper.xml +++ b/bonus-modules/bonus-ai/src/main/resources/mapper/ReleaseVersionMapper.xml @@ -12,7 +12,6 @@ (#{versionId}, #{item.fileId}, #{item.annotationResult}) - update ai_dataset_version set del_flag='1' where version_id in @@ -64,4 +63,10 @@ LEFT JOIN ai_basic_file adf ON avfm.file_id = adf.file_id AND adf.del_flag = '0' WHERE avfm.version_id =#{versionId} + + \ No newline at end of file