|
|
@@ -10,6 +10,7 @@ import com.ruoyi.platform.mapper.DatasetVersionDao; |
|
|
import com.ruoyi.platform.service.DatasetService; |
|
|
import com.ruoyi.platform.service.DatasetService; |
|
|
import com.ruoyi.platform.service.DatasetVersionService; |
|
|
import com.ruoyi.platform.service.DatasetVersionService; |
|
|
import com.ruoyi.platform.utils.BeansUtils; |
|
|
import com.ruoyi.platform.utils.BeansUtils; |
|
|
|
|
|
import com.ruoyi.platform.utils.FileUtil; |
|
|
import com.ruoyi.platform.utils.MinioUtil; |
|
|
import com.ruoyi.platform.utils.MinioUtil; |
|
|
import com.ruoyi.platform.vo.DatasetVo; |
|
|
import com.ruoyi.platform.vo.DatasetVo; |
|
|
import com.ruoyi.system.api.model.LoginUser; |
|
|
import com.ruoyi.system.api.model.LoginUser; |
|
|
@@ -35,7 +36,6 @@ import java.io.InputStream; |
|
|
import java.lang.reflect.Field; |
|
|
import java.lang.reflect.Field; |
|
|
import java.text.SimpleDateFormat; |
|
|
import java.text.SimpleDateFormat; |
|
|
import java.util.*; |
|
|
import java.util.*; |
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* (Dataset)表服务实现类 |
|
|
* (Dataset)表服务实现类 |
|
|
@@ -220,8 +220,8 @@ public class DatasetServiceImpl implements DatasetService { |
|
|
* @return 是否成功 |
|
|
* @return 是否成功 |
|
|
*/ |
|
|
*/ |
|
|
@Override |
|
|
@Override |
|
|
public Map uploadDataset(MultipartFile[] files, Integer id, String version) throws Exception { |
|
|
|
|
|
Map<Integer, Object> results = new HashMap<Integer, Object>(); |
|
|
|
|
|
|
|
|
public List<Map<String, String>> uploadDataset(MultipartFile[] files, Integer id) throws Exception { |
|
|
|
|
|
List<Map<String, String>> results = new ArrayList<>(); |
|
|
|
|
|
|
|
|
// 验证模型是否存在 |
|
|
// 验证模型是否存在 |
|
|
Dataset dataset = this.datasetDao.queryById(id); |
|
|
Dataset dataset = this.datasetDao.queryById(id); |
|
|
@@ -233,32 +233,34 @@ public class DatasetServiceImpl implements DatasetService { |
|
|
if (file.isEmpty()) { |
|
|
if (file.isEmpty()) { |
|
|
throw new Exception("文件为空,无法上传"); |
|
|
throw new Exception("文件为空,无法上传"); |
|
|
} |
|
|
} |
|
|
// 获取文件大小并转换为KB |
|
|
|
|
|
|
|
|
// 获取文件大小并转换为可读形式 |
|
|
long sizeInBytes = file.getSize(); |
|
|
long sizeInBytes = file.getSize(); |
|
|
double sizeInKB = sizeInBytes / 1024.0; |
|
|
|
|
|
|
|
|
String formattedSize = FileUtil.formatFileSize(sizeInBytes); // 格式化文件大小 |
|
|
|
|
|
|
|
|
// 其余操作基于 modelsVersionToUse |
|
|
// 其余操作基于 modelsVersionToUse |
|
|
String username = SecurityUtils.getLoginUser().getUsername(); |
|
|
String username = SecurityUtils.getLoginUser().getUsername(); |
|
|
String fileName = file.getOriginalFilename(); |
|
|
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并将记录新增到数据库中 |
|
|
// 上传文件到MinIO并将记录新增到数据库中 |
|
|
try (InputStream inputStream = file.getInputStream()) { |
|
|
try (InputStream inputStream = file.getInputStream()) { |
|
|
minioUtil.uploadObject(bucketName, objectName, inputStream); |
|
|
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<String, String> fileResult = new HashMap<>(); |
|
|
Map<String, String> fileResult = new HashMap<>(); |
|
|
fileResult.put("fileName", file.getOriginalFilename()); |
|
|
fileResult.put("fileName", file.getOriginalFilename()); |
|
|
fileResult.put("url", objectName); // objectName根据实际情况定义 |
|
|
fileResult.put("url", objectName); // objectName根据实际情况定义 |
|
|
results.put(insertedDatasetversion.getId(), fileResult); |
|
|
|
|
|
|
|
|
fileResult.put("fileSize", formattedSize); |
|
|
|
|
|
results.add(fileResult); |
|
|
} catch (Exception e) { |
|
|
} catch (Exception e) { |
|
|
throw new Exception("上传数据集失败: " + e.getMessage(), e); |
|
|
throw new Exception("上传数据集失败: " + e.getMessage(), e); |
|
|
} |
|
|
} |
|
|
|