根据id查询该模型、数据集下所有版本信息接口实现

This commit is contained in:
西大锐 2024-03-02 14:31:47 +08:00
parent 608835fa3a
commit 31c5b6a1d0
7 changed files with 61 additions and 15 deletions

View File

@ -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));
}
/**
* 新增数据
*

View File

@ -58,6 +58,13 @@ public class ModelsController {
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));
}
/**
* 新增数据
*

View File

@ -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;
}

View File

@ -73,4 +73,5 @@ public interface ModelsService {
Map uploadModelsPipeline(ModelsVersion modelsVersion) throws Exception;
ResponseEntity<InputStreamResource> downloadAllModelFiles(Integer modelsId, String version);
Map getModelVersions(Integer modelId) throws Exception;
}

View File

@ -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<String, Object> results = new HashMap<String, Object>();
Map<Integer, Object> results = new HashMap<Integer, Object>();
// 验证模型是否存在
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);
} catch (Exception e) {
throw new Exception("上传数据集失败: " + e.getMessage(), e);
}
//返回插入结果
DatasetVersion insertedDatasetversion = datasetVersionService.insert(datasetVersion);
Map<String, String> fileResult = new HashMap<>();
fileResult.put("fileName", file.getOriginalFilename());
fileResult.put("url", objectName); // objectName根据实际情况定义
results.put(file.getOriginalFilename(), fileResult);
results.put(insertedDatasetversion.getId(), fileResult);
} catch (Exception e) {
throw new Exception("上传数据集失败: " + e.getMessage(), e);
}
}
return results;
@ -300,6 +303,18 @@ public class DatasetServiceImpl implements DatasetService {
return result;
}
@Override
public Map<String, List<DatasetVersion>> getDatasetVersions(Integer datasetId) throws Exception {
// 获取所有相同模型ID的记录
List<DatasetVersion> 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);

View File

@ -149,6 +149,7 @@ public class DatasetVersionServiceImpl implements DatasetVersionService {
}
@Override
public List<DatasetVersion> queryByDatasetIdAndVersion(Integer datasetId, String version) {
return this.datasetVersionDao.queryAllByDatasetVersion(datasetId, version);
}

View File

@ -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<String, Object> results = new HashMap<String, Object>();
Map<Integer, Object> results = new HashMap<Integer, Object>();
// 验证模型是否存在
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);
} catch (Exception e) {
throw new Exception("上传到模型失败: " + e.getMessage(), e);
}
//返回插入结果
ModelsVersion insertedModelsVersion = modelsVersionService.insert(modelsVersion);
Map<String, String> fileResult = new HashMap<>();
fileResult.put("fileName", file.getOriginalFilename());
fileResult.put("url", objectName); // objectName根据实际情况定义
results.put(file.getOriginalFilename(), fileResult);
results.put(insertedModelsVersion.getId(), fileResult);
} catch (Exception e) {
throw new Exception("上传到模型失败: " + e.getMessage(), e);
}
}
return results;
}
@ -348,6 +349,18 @@ public class ModelsServiceImpl implements ModelsService {
}
@Override
public Map<String, List<ModelsVersion>> getModelVersions(Integer modelId) throws Exception {
// 获取所有相同模型ID的记录
List<ModelsVersion> 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);
}