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 b38e186c..a82cf28f 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 @@ -137,13 +137,13 @@ public class DatasetController { * * @param datasetId 数据集ID * @param files 上传的数据集文件 - * @param version 版本文件 + * * @return 上传结果 */ @PostMapping("/upload") @ApiOperation(value = "上传数据集", notes = "根据数据集版本表id上传数据集文件,并将信息存入数据库。") - public AjaxResult uploadDataset(@RequestParam("files") MultipartFile[] files, @RequestParam("dataset_id") Integer datasetId, @RequestParam("version") String version) throws Exception { - return AjaxResult.success(this.datasetService.uploadDataset(files,datasetId,version )); + public AjaxResult uploadDataset(@RequestParam("files") MultipartFile[] files, @RequestParam("dataset_id") Integer datasetId) throws Exception { + return AjaxResult.success(this.datasetService.uploadDataset(files,datasetId)); } /** diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/dataset/DatasetVersionController.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/dataset/DatasetVersionController.java index fd2e4b61..063b8d16 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/dataset/DatasetVersionController.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/dataset/DatasetVersionController.java @@ -113,7 +113,7 @@ public class DatasetVersionController { */ @DeleteMapping("/deleteVersion") @ApiOperation(value = "逻辑删除模型版本", notes = "根据数据集ID和版本逻辑删除模型版本记录。") - public AjaxResult deleteModelsVersion(@RequestParam("dataset_id") Integer datasetId, + public AjaxResult deleteDatasetVersion(@RequestParam("dataset_id") Integer datasetId, @RequestParam("version") String version) { return AjaxResult.success(this.datasetVersionService.deleteDatasetVersion(datasetId, version)); } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/DatasetVersionDao.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/DatasetVersionDao.java index 8a7dcbbb..19e21651 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/DatasetVersionDao.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/DatasetVersionDao.java @@ -84,7 +84,7 @@ public interface DatasetVersionDao { List queryByDatasetId(Integer datasetId); - DatasetVersion queryByDatasetVersion(DatasetVersion datasetVersion); + DatasetVersion queryByDatasetVersion(@Param("datasetVersion") DatasetVersion datasetVersion); List queryAllByDatasetVersion(@Param("datasetId") Integer datasetId, @Param("version") String version); 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 1f046fbc..29539afa 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 @@ -18,7 +18,8 @@ import java.util.Map; * @author Xidaray * @since 2023-11-28 11:51:22 */ -public interface DatasetService { +public interface +DatasetService { @@ -71,7 +72,7 @@ public interface DatasetService { ResponseEntity downloadDataset(Integer id); - Map uploadDataset(MultipartFile[] files, Integer id, String version) throws Exception; + List> uploadDataset(MultipartFile[] files, Integer id) throws Exception; Map uploadDatasetPipeline(DatasetVersion datasetVersion) 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 2a5304e1..c3c24983 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 @@ -10,6 +10,7 @@ import com.ruoyi.platform.mapper.DatasetVersionDao; import com.ruoyi.platform.service.DatasetService; import com.ruoyi.platform.service.DatasetVersionService; import com.ruoyi.platform.utils.BeansUtils; +import com.ruoyi.platform.utils.FileUtil; import com.ruoyi.platform.utils.MinioUtil; import com.ruoyi.platform.vo.DatasetVo; import com.ruoyi.system.api.model.LoginUser; @@ -35,7 +36,6 @@ import java.io.InputStream; import java.lang.reflect.Field; import java.text.SimpleDateFormat; import java.util.*; -import java.util.stream.Collectors; /** * (Dataset)表服务实现类 @@ -220,8 +220,8 @@ public class DatasetServiceImpl implements DatasetService { * @return 是否成功 */ @Override - public Map uploadDataset(MultipartFile[] files, Integer id, String version) throws Exception { - Map results = new HashMap(); + public List> uploadDataset(MultipartFile[] files, Integer id) throws Exception { + List> results = new ArrayList<>(); // 验证模型是否存在 Dataset dataset = this.datasetDao.queryById(id); @@ -233,32 +233,34 @@ public class DatasetServiceImpl implements DatasetService { if (file.isEmpty()) { throw new Exception("文件为空,无法上传"); } - // 获取文件大小并转换为KB + // 获取文件大小并转换为可读形式 long sizeInBytes = file.getSize(); - double sizeInKB = sizeInBytes / 1024.0; + String formattedSize = FileUtil.formatFileSize(sizeInBytes); // 格式化文件大小 // 其余操作基于 modelsVersionToUse String username = SecurityUtils.getLoginUser().getUsername(); String fileName = file.getOriginalFilename(); - // String timestamp = new SimpleDateFormat("yyyyMMdd-HHmmss").format(createTime); - String objectName = "datasets/" + username + "/" + dataset.getName() + "/" + version + "/" + fileName; + Date createTime = new Date(); + String timestamp = new SimpleDateFormat("yyyyMMdd-HHmmss").format(createTime); + String objectName = "datasets/" + username + "/" + dataset.getName() + "/" + timestamp + "/" + fileName; // 上传文件到MinIO并将记录新增到数据库中 try (InputStream inputStream = file.getInputStream()) { minioUtil.uploadObject(bucketName, objectName, inputStream); - DatasetVersion datasetVersion = new DatasetVersion(); - datasetVersion.setDatasetId(id); - datasetVersion.setVersion(version); - datasetVersion.setUrl(objectName); - datasetVersion.setFileName(fileName); - datasetVersion.setFileSize(String.valueOf(sizeInKB)); - - //返回插入结果 - DatasetVersion insertedDatasetversion = datasetVersionService.insert(datasetVersion); +// DatasetVersion datasetVersion = new DatasetVersion(); +// datasetVersion.setDatasetId(id); +// datasetVersion.setVersion(version); +// datasetVersion.setUrl(objectName); +// datasetVersion.setFileName(fileName); +// datasetVersion.setFileSize(formattedSize); +// +// //返回插入结果 +// DatasetVersion insertedDatasetversion = datasetVersionService.insert(datasetVersion); Map fileResult = new HashMap<>(); fileResult.put("fileName", file.getOriginalFilename()); fileResult.put("url", objectName); // objectName根据实际情况定义 - results.put(insertedDatasetversion.getId(), fileResult); + fileResult.put("fileSize", formattedSize); + results.add(fileResult); } catch (Exception e) { throw new Exception("上传数据集失败: " + e.getMessage(), e); } 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 66838b20..5bdbd900 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 @@ -155,6 +155,9 @@ public class DatasetVersionServiceImpl implements DatasetVersionService { } @Override + + + public void checkDeclaredVersion(DatasetVersion insert) throws Exception { DatasetVersion datasetVersion = datasetVersionDao.queryByDatasetVersion(insert); if (datasetVersion != null) { diff --git a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/DatasetVersionDaoMapper.xml b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/DatasetVersionDaoMapper.xml index 6dda36ee..f48f0da1 100644 --- a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/DatasetVersionDaoMapper.xml +++ b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/DatasetVersionDaoMapper.xml @@ -38,11 +38,11 @@ from dataset_version state = 1 - - and dataset_id = #{datasetId} + + and dataset_id = #{datasetVersion.datasetId} - - and version = #{version} + + and version = #{datasetVersion.version} limit 1