diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/dataset/DatasetController.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/dataset/DatasetController.java index c78c780..3e1fc85 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/dataset/DatasetController.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/dataset/DatasetController.java @@ -63,6 +63,13 @@ public class DatasetController { return AjaxResult.success(this.datasetService.queryById(id)); } + @GetMapping("/versions/{datasetId}") + @ApiOperation(value = "获取数据集的所有版本", notes = "根据数据集ID获取该数据集的所有版本信息。") + public AjaxResult getDatasetVersions(@PathVariable("datasetId") Integer datasetId) throws Exception { + return AjaxResult.success(this.datasetService.getDatasetVersions(datasetId)); + } + + /** * 新增数据 * diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/ModelsController.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/ModelsController.java index f8caa8e..43d7731 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/ModelsController.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/ModelsController.java @@ -55,9 +55,16 @@ public class ModelsController { @GetMapping("{id}") @ApiOperation("根据id查询") public AjaxResult queryById(@PathVariable("id") Integer id) { - return AjaxResult.success(this.modelsService.queryById(id)); + return AjaxResult.success(this.modelsService.queryById(id)); } + @GetMapping("/versions/{modelId}") + @ApiOperation(value = "获取模型的所有版本", notes = "根据模型ID获取该模型的所有版本信息。") + public AjaxResult getModelVersions(@PathVariable("modelId") Integer modelId) throws Exception { + return AjaxResult.success(this.modelsService.getModelVersions(modelId)); + } + + /** * 新增数据 * diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/DatasetService.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/DatasetService.java index 77040fd..ae8ad81 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/DatasetService.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/DatasetService.java @@ -72,4 +72,6 @@ public interface DatasetService { Map uploadDataset(MultipartFile[] files, Integer id, String version) throws Exception; Map uploadDatasetPipeline(DatasetVersion datasetVersion) throws Exception; + + Map getDatasetVersions(Integer datasetId) throws Exception; } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java index 2298c60..8a487ff 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java @@ -73,4 +73,5 @@ public interface ModelsService { Map uploadModelsPipeline(ModelsVersion modelsVersion) throws Exception; ResponseEntity downloadAllModelFiles(Integer modelsId, String version); + Map getModelVersions(Integer modelId) throws Exception; } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DatasetServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DatasetServiceImpl.java index b8a2155..5dddd07 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DatasetServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DatasetServiceImpl.java @@ -34,7 +34,9 @@ import java.io.InputStream; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; +import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * (Dataset)表服务实现类 @@ -218,7 +220,7 @@ public class DatasetServiceImpl implements DatasetService { */ @Override public Map uploadDataset(MultipartFile[] files, Integer id, String version) throws Exception { - Map results = new HashMap(); + Map results = new HashMap(); // 验证模型是否存在 Dataset dataset = this.datasetDao.queryById(id); @@ -249,15 +251,16 @@ public class DatasetServiceImpl implements DatasetService { datasetVersion.setUrl(objectName); datasetVersion.setFileName(fileName); datasetVersion.setFileSize(String.valueOf(sizeInKB)); - datasetVersionService.insert(datasetVersion); + + //返回插入结果 + DatasetVersion insertedDatasetversion = datasetVersionService.insert(datasetVersion); + Map fileResult = new HashMap<>(); + fileResult.put("fileName", file.getOriginalFilename()); + fileResult.put("url", objectName); // objectName根据实际情况定义 + results.put(insertedDatasetversion.getId(), fileResult); } catch (Exception e) { throw new Exception("上传数据集失败: " + e.getMessage(), e); } - Map fileResult = new HashMap<>(); - fileResult.put("fileName", file.getOriginalFilename()); - fileResult.put("url", objectName); // objectName根据实际情况定义 - results.put(file.getOriginalFilename(), fileResult); - } return results; @@ -300,6 +303,18 @@ public class DatasetServiceImpl implements DatasetService { return result; } + @Override + public Map> getDatasetVersions(Integer datasetId) throws Exception { + // 获取所有相同模型ID的记录 + List versions = datasetVersionDao.queryByDatasetId(datasetId); + + if (versions.isEmpty()) { + throw new Exception("未找到相关数据集版本记录"); + } + // 将结果按照版本分类 + return versions.stream().collect(Collectors.groupingBy(DatasetVersion::getVersion)); + } + private String extractFileName(String urlStr) { return urlStr.substring(urlStr.lastIndexOf('/') + 1); diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DatasetVersionServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DatasetVersionServiceImpl.java index 6886ec9..b13b714 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DatasetVersionServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DatasetVersionServiceImpl.java @@ -149,6 +149,7 @@ public class DatasetVersionServiceImpl implements DatasetVersionService { } @Override + public List queryByDatasetIdAndVersion(Integer datasetId, String version) { return this.datasetVersionDao.queryAllByDatasetVersion(datasetId, version); } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java index 3358c4e..0fde206 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java @@ -32,6 +32,7 @@ import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -212,7 +213,7 @@ public class ModelsServiceImpl implements ModelsService { @Override public Map uploadModels(MultipartFile[] files, Integer id, String version) throws Exception { - Map results = new HashMap(); + Map results = new HashMap(); // 验证模型是否存在 Models models = this.modelsDao.queryById(id); @@ -243,15 +244,15 @@ public class ModelsServiceImpl implements ModelsService { modelsVersion.setUrl(objectName); modelsVersion.setFileName(fileName); modelsVersion.setFileSize(String.valueOf(sizeInKB)); - modelsVersionService.insert(modelsVersion); + //返回插入结果 + ModelsVersion insertedModelsVersion = modelsVersionService.insert(modelsVersion); + Map fileResult = new HashMap<>(); + fileResult.put("fileName", file.getOriginalFilename()); + fileResult.put("url", objectName); // objectName根据实际情况定义 + results.put(insertedModelsVersion.getId(), fileResult); } catch (Exception e) { throw new Exception("上传到模型失败: " + e.getMessage(), e); } - Map fileResult = new HashMap<>(); - fileResult.put("fileName", file.getOriginalFilename()); - fileResult.put("url", objectName); // objectName根据实际情况定义 - results.put(file.getOriginalFilename(), fileResult); - } return results; } @@ -348,6 +349,18 @@ public class ModelsServiceImpl implements ModelsService { } + @Override + public Map> getModelVersions(Integer modelId) throws Exception { + // 获取所有相同模型ID的记录 + List versions = modelsVersionDao.queryByModelsId(modelId); + + if (versions.isEmpty()) { + throw new Exception("未找到相关模型版本记录"); + } + // 将结果按照版本分类 + return versions.stream().collect(Collectors.groupingBy(ModelsVersion::getVersion)); + } + private String extractFileName(String urlStr) { return urlStr.substring(urlStr.lastIndexOf('/') + 1); }