| @@ -8,6 +8,7 @@ import org.springframework.data.domain.PageRequest; | |||||
| import org.springframework.web.bind.annotation.*; | import org.springframework.web.bind.annotation.*; | ||||
| import javax.annotation.Resource; | import javax.annotation.Resource; | ||||
| import java.util.List; | |||||
| /** | /** | ||||
| * (DatasetVersion)表控制层 | * (DatasetVersion)表控制层 | ||||
| @@ -69,7 +70,7 @@ public class DatasetVersionController { | |||||
| /** | /** | ||||
| * 新增数据 | |||||
| * 新增单条数据 | |||||
| * | * | ||||
| * @param datasetVersion 实体 | * @param datasetVersion 实体 | ||||
| * @return 新增结果 | * @return 新增结果 | ||||
| @@ -80,6 +81,20 @@ public class DatasetVersionController { | |||||
| return AjaxResult.success(this.datasetVersionService.insert(datasetVersion)); | return AjaxResult.success(this.datasetVersionService.insert(datasetVersion)); | ||||
| } | } | ||||
| /** | |||||
| * 批量新增数据集版本 | |||||
| * | |||||
| * @param datasetVersions 实体 | |||||
| * @return 新增结果 | |||||
| */ | |||||
| @PostMapping(("/addDatasetVersions")) | |||||
| @ApiOperation("添加数据集版本") | |||||
| public AjaxResult addDatasetVersions(@RequestBody List<DatasetVersion> datasetVersions) throws Exception { | |||||
| return AjaxResult.success(this.datasetVersionService.addDatasetVersions(datasetVersions)); | |||||
| } | |||||
| /** | /** | ||||
| * 编辑数据 | * 编辑数据 | ||||
| * | * | ||||
| @@ -12,6 +12,7 @@ import org.springframework.data.domain.Page; | |||||
| import org.springframework.data.domain.PageRequest; | import org.springframework.data.domain.PageRequest; | ||||
| import org.springframework.http.ResponseEntity; | import org.springframework.http.ResponseEntity; | ||||
| import org.springframework.web.bind.annotation.*; | import org.springframework.web.bind.annotation.*; | ||||
| import org.springframework.web.multipart.MultipartFile; | |||||
| import javax.annotation.Resource; | import javax.annotation.Resource; | ||||
| @@ -84,7 +85,7 @@ public class ImageController { | |||||
| /** | /** | ||||
| * 新增镜像和版本 | * 新增镜像和版本 | ||||
| * | * | ||||
| * @param datasetVo 实体 | |||||
| * @param imageVo 实体 | |||||
| * @return 新增结果 | * @return 新增结果 | ||||
| */ | */ | ||||
| @PostMapping("/addImageAndVersion") | @PostMapping("/addImageAndVersion") | ||||
| @@ -109,13 +110,36 @@ public class ImageController { | |||||
| * 删除数据 | * 删除数据 | ||||
| * | * | ||||
| * @param id 主键 | * @param id 主键 | ||||
| * | |||||
| * @return 删除是否成功 | * @return 删除是否成功 | ||||
| */ | */ | ||||
| @DeleteMapping("{id}") | @DeleteMapping("{id}") | ||||
| public AjaxResult deleteById(@PathVariable("id") Integer id) { | public AjaxResult deleteById(@PathVariable("id") Integer id) { | ||||
| return AjaxResult.success(this.imageService.removeById(id)); | return AjaxResult.success(this.imageService.removeById(id)); | ||||
| } | } | ||||
| @PostMapping("/local") | |||||
| @ApiOperation("从本地上传构建镜像") | |||||
| public AjaxResult createImageFromLocal(@RequestParam("name") String imageName, | |||||
| @RequestParam("tag") String imageTag, | |||||
| @RequestParam("description") String imageDescription){ | |||||
| return AjaxResult.success(this.imageService.createImageFromLocal(imageName,imageTag,imageDescription)); | |||||
| } | |||||
| /** | |||||
| * 镜像上传 | |||||
| * | |||||
| * | |||||
| * @param files 文件 | |||||
| * @return 上传结果 | |||||
| */ | |||||
| @PostMapping("/upload") | |||||
| @ApiOperation(value = "上传镜像文件", notes = "上传镜像tar包,返回存储路径") | |||||
| public AjaxResult uploadImageFiles(@RequestParam("files") MultipartFile[] files) throws Exception { | |||||
| return AjaxResult.success(this.imageService.uploadImageFiles(files)); | |||||
| } | |||||
| } | } | ||||
| @@ -124,14 +124,13 @@ public class ModelsController { | |||||
| * | * | ||||
| * @param files 文件 | * @param files 文件 | ||||
| * @param modelsId 模型表主键 | * @param modelsId 模型表主键 | ||||
| * @param version 模型版本表主键 | |||||
| * @return 上传结果 | * @return 上传结果 | ||||
| */ | */ | ||||
| @PostMapping("/upload") | @PostMapping("/upload") | ||||
| @ApiOperation(value = "上传模型", notes = "根据模型id和版本号上传模型文件,并将信息存入数据库。") | |||||
| public AjaxResult uploadModels(@RequestParam("files") MultipartFile[] files, @RequestParam("models_id") Integer modelsId, @RequestParam("version") String version) throws Exception { | |||||
| return AjaxResult.success(this.modelsService.uploadModels(files,modelsId,version)); | |||||
| @ApiOperation(value = "上传模型", notes = "根据模型id上传模型文件,并将信息存入数据库。") | |||||
| public AjaxResult uploadModels(@RequestParam("files") MultipartFile[] files, @RequestParam("models_id") Integer modelsId) throws Exception { | |||||
| return AjaxResult.success(this.modelsService.uploadModels(files,modelsId)); | |||||
| } | } | ||||
| @@ -10,6 +10,7 @@ import org.springframework.http.ResponseEntity; | |||||
| import org.springframework.web.bind.annotation.*; | import org.springframework.web.bind.annotation.*; | ||||
| import javax.annotation.Resource; | import javax.annotation.Resource; | ||||
| import java.util.List; | |||||
| /** | /** | ||||
| * (ModelsVersion)表控制层 | * (ModelsVersion)表控制层 | ||||
| @@ -80,6 +81,18 @@ public class ModelsVersionController { | |||||
| return AjaxResult.success(this.modelsVersionService.insert(modelsVersion)); | return AjaxResult.success(this.modelsVersionService.insert(modelsVersion)); | ||||
| } | } | ||||
| /** | |||||
| * 批量新增模型版本 | |||||
| * | |||||
| * @param datasetVersions 实体 | |||||
| * @return 新增结果 | |||||
| */ | |||||
| @PostMapping(("/addDatasetVersions")) | |||||
| @ApiOperation("添加数据集版本") | |||||
| public AjaxResult addModelVersions(@RequestBody List<ModelsVersion> modelsVersions) throws Exception { | |||||
| return AjaxResult.success(this.modelsVersionService.addModelVersions(modelsVersions)); | |||||
| } | |||||
| /** | /** | ||||
| * 编辑数据 | * 编辑数据 | ||||
| * | * | ||||
| @@ -28,12 +28,13 @@ public class DatasetVersion implements Serializable { | |||||
| * 版本 | * 版本 | ||||
| */ | */ | ||||
| @ApiModelProperty(name = "version") | @ApiModelProperty(name = "version") | ||||
| @CheckDuplicate | |||||
| //@CheckDuplicate | |||||
| private String version; | private String version; | ||||
| /** | /** | ||||
| * 数据集存储地址 | * 数据集存储地址 | ||||
| */ | */ | ||||
| @ApiModelProperty(name = "url") | @ApiModelProperty(name = "url") | ||||
| @CheckDuplicate | |||||
| private String url; | private String url; | ||||
| /** | /** | ||||
| * 文件名 | * 文件名 | ||||
| @@ -71,4 +71,6 @@ public interface DatasetVersionService { | |||||
| Map<Integer,String> deleteDatasetVersion(Integer datasetId, String version); | Map<Integer,String> deleteDatasetVersion(Integer datasetId, String version); | ||||
| void checkDeclaredVersion(DatasetVersion insert) throws Exception; | void checkDeclaredVersion(DatasetVersion insert) throws Exception; | ||||
| String addDatasetVersions(List<DatasetVersion> datasetVersions); | |||||
| } | } | ||||
| @@ -5,6 +5,7 @@ import com.ruoyi.platform.domain.Workflow; | |||||
| import com.ruoyi.platform.vo.ImageVo; | import com.ruoyi.platform.vo.ImageVo; | ||||
| import org.springframework.data.domain.Page; | import org.springframework.data.domain.Page; | ||||
| import org.springframework.data.domain.PageRequest; | import org.springframework.data.domain.PageRequest; | ||||
| import org.springframework.web.multipart.MultipartFile; | |||||
| import java.util.Collection; | import java.util.Collection; | ||||
| @@ -64,4 +65,9 @@ public interface ImageService { | |||||
| Page<Image> queryByName(String name); | Page<Image> queryByName(String name); | ||||
| String insertImageAndVersion(ImageVo imageVo) throws Exception; | String insertImageAndVersion(ImageVo imageVo) throws Exception; | ||||
| String createImageFromLocal(String imageName, String imageTag, String imageDescription); | |||||
| String uploadImageFiles(MultipartFile[] files); | |||||
| } | } | ||||
| @@ -11,6 +11,7 @@ import org.springframework.data.domain.PageRequest; | |||||
| import org.springframework.http.ResponseEntity; | import org.springframework.http.ResponseEntity; | ||||
| import org.springframework.web.multipart.MultipartFile; | import org.springframework.web.multipart.MultipartFile; | ||||
| import java.util.List; | |||||
| import java.util.Map; | import java.util.Map; | ||||
| /** | /** | ||||
| @@ -69,7 +70,7 @@ public interface ModelsService { | |||||
| Map uploadModels(MultipartFile[] files, Integer id, String version) throws Exception; | |||||
| List<Map<String, String>> uploadModels(MultipartFile[] files, Integer id) throws Exception; | |||||
| Map uploadModelsPipeline(ModelsVersion modelsVersion) throws Exception; | Map uploadModelsPipeline(ModelsVersion modelsVersion) throws Exception; | ||||
| @@ -69,4 +69,6 @@ public interface ModelsVersionService { | |||||
| List<ModelsVersion> queryByModelsIdAndVersion(Integer modelsId, String version); | List<ModelsVersion> queryByModelsIdAndVersion(Integer modelsId, String version); | ||||
| Map<Integer, String> deleteModelsVersion(Integer modelsId, String version); | Map<Integer, String> deleteModelsVersion(Integer modelsId, String version); | ||||
| String addModelVersions(List<ModelsVersion> modelsVersions); | |||||
| } | } | ||||
| @@ -340,7 +340,7 @@ public class DatasetServiceImpl implements DatasetService { | |||||
| datasetVersion.setAvailableCluster(datasetVo.getAvailableCluster()); | datasetVersion.setAvailableCluster(datasetVo.getAvailableCluster()); | ||||
| DatasetVersion datasetVersionInsert = datasetVersionService.insert(datasetVersion); | DatasetVersion datasetVersionInsert = datasetVersionService.insert(datasetVersion); | ||||
| if (datasetVersionInsert == null) { | if (datasetVersionInsert == null) { | ||||
| throw new Exception("新增数据集失败"); | |||||
| throw new Exception("新增数据集版本失败"); | |||||
| } | } | ||||
| return "新增数据集成功"; | return "新增数据集成功"; | ||||
| } | } | ||||
| @@ -65,13 +65,8 @@ public class DatasetVersionServiceImpl implements DatasetVersionService { | |||||
| */ | */ | ||||
| @Override | @Override | ||||
| public DatasetVersion insert(DatasetVersion datasetVersion) throws Exception { | public DatasetVersion insert(DatasetVersion datasetVersion) throws Exception { | ||||
| checkDeclaredVersion(datasetVersion); | |||||
| LoginUser loginUser = SecurityUtils.getLoginUser(); | |||||
| datasetVersion.setCreateBy(loginUser.getUsername()); | |||||
| datasetVersion.setUpdateBy(loginUser.getUsername()); | |||||
| datasetVersion.setUpdateTime(new Date()); | |||||
| datasetVersion.setCreateTime(new Date()); | |||||
| datasetVersion.setState(1); | |||||
| //插入预备 | |||||
| insertPrepare(datasetVersion); | |||||
| this.datasetVersionDao.insert(datasetVersion); | this.datasetVersionDao.insert(datasetVersion); | ||||
| return datasetVersion; | return datasetVersion; | ||||
| } | } | ||||
| @@ -161,13 +156,39 @@ public class DatasetVersionServiceImpl implements DatasetVersionService { | |||||
| public void checkDeclaredVersion(DatasetVersion insert) throws Exception { | public void checkDeclaredVersion(DatasetVersion insert) throws Exception { | ||||
| DatasetVersion datasetVersion = datasetVersionDao.queryByDatasetVersion(insert); | DatasetVersion datasetVersion = datasetVersionDao.queryByDatasetVersion(insert); | ||||
| if (datasetVersion != null) { | if (datasetVersion != null) { | ||||
| Field[] fields = Dataset.class.getDeclaredFields(); | |||||
| Field[] fields = DatasetVersion.class.getDeclaredFields(); | |||||
| for (Field field : fields) { | for (Field field : fields) { | ||||
| if (field.isAnnotationPresent(CheckDuplicate.class)) { | if (field.isAnnotationPresent(CheckDuplicate.class)) { | ||||
| CheckDuplicate annotation = field.getAnnotation(CheckDuplicate.class); | CheckDuplicate annotation = field.getAnnotation(CheckDuplicate.class); | ||||
| throw new Exception(annotation.value() + "不能重复"); | |||||
| throw new Exception(annotation.value() + "数据集版本不能重复"); | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @Override | |||||
| public String addDatasetVersions(List<DatasetVersion> datasetVersions) { | |||||
| try { | |||||
| // 遍历传入的 datasetVersions 列表 | |||||
| for(DatasetVersion datasetVersion : datasetVersions) { | |||||
| insertPrepare(datasetVersion); | |||||
| } | |||||
| this.datasetVersionDao.insertBatch(datasetVersions); | |||||
| return "新增数据集版本成功"; | |||||
| } catch (Exception e) { | |||||
| // 如果出现异常,返回异常消息 | |||||
| return "新增数据集版本失败: " + e.getMessage(); | |||||
| } | |||||
| } | |||||
| private void insertPrepare(DatasetVersion datasetVersion) throws Exception { | |||||
| //checkDeclaredVersion(datasetVersion); | |||||
| LoginUser loginUser = SecurityUtils.getLoginUser(); | |||||
| datasetVersion.setCreateBy(loginUser.getUsername()); | |||||
| datasetVersion.setUpdateBy(loginUser.getUsername()); | |||||
| datasetVersion.setUpdateTime(new Date()); | |||||
| datasetVersion.setCreateTime(new Date()); | |||||
| datasetVersion.setState(1); | |||||
| } | |||||
| } | } | ||||
| @@ -6,6 +6,7 @@ import com.ruoyi.platform.mapper.ImageDao; | |||||
| import com.ruoyi.platform.mapper.ImageVersionDao; | import com.ruoyi.platform.mapper.ImageVersionDao; | ||||
| import com.ruoyi.platform.service.ImageService; | import com.ruoyi.platform.service.ImageService; | ||||
| import com.ruoyi.platform.service.ImageVersionService; | import com.ruoyi.platform.service.ImageVersionService; | ||||
| import com.ruoyi.platform.utils.FileUtil; | |||||
| import com.ruoyi.platform.vo.ImageVo; | import com.ruoyi.platform.vo.ImageVo; | ||||
| import com.ruoyi.system.api.model.LoginUser; | import com.ruoyi.system.api.model.LoginUser; | ||||
| import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
| @@ -13,9 +14,14 @@ import org.springframework.stereotype.Service; | |||||
| import org.springframework.data.domain.Page; | import org.springframework.data.domain.Page; | ||||
| import org.springframework.data.domain.PageImpl; | import org.springframework.data.domain.PageImpl; | ||||
| import org.springframework.data.domain.PageRequest; | import org.springframework.data.domain.PageRequest; | ||||
| import org.springframework.transaction.annotation.Transactional; | |||||
| import org.springframework.web.multipart.MultipartFile; | |||||
| import javax.annotation.Resource; | import javax.annotation.Resource; | ||||
| import java.io.InputStream; | |||||
| import java.util.Date; | import java.util.Date; | ||||
| import java.util.HashMap; | |||||
| import java.util.Map; | |||||
| /** | /** | ||||
| * (Image)表服务实现类 | * (Image)表服务实现类 | ||||
| @@ -142,6 +148,7 @@ public class ImageServiceImpl implements ImageService { | |||||
| } | } | ||||
| @Override | @Override | ||||
| @Transactional | |||||
| public String insertImageAndVersion(ImageVo imageVo) throws Exception { | public String insertImageAndVersion(ImageVo imageVo) throws Exception { | ||||
| Image image = new Image(); | Image image = new Image(); | ||||
| image.setName(imageVo.getName()); | image.setName(imageVo.getName()); | ||||
| @@ -165,4 +172,56 @@ public class ImageServiceImpl implements ImageService { | |||||
| } | } | ||||
| return "新增镜像成功"; | return "新增镜像成功"; | ||||
| } | } | ||||
| @Override | |||||
| public String createImageFromLocal(String imageName, String imageTag, String imageDescription) { | |||||
| return null; | |||||
| } | |||||
| @Override | |||||
| public String uploadImageFiles(MultipartFile[] files) { | |||||
| // Map<Integer, Object> results = new HashMap<Integer, Object>(); | |||||
| // | |||||
| // // 验证模型是否存在 | |||||
| // Models models = this.modelsDao.queryById(id); | |||||
| // if (models == null) { | |||||
| // throw new Exception("未找到模型记录"); | |||||
| // } | |||||
| // | |||||
| // for (MultipartFile file:files){ | |||||
| // if (file.isEmpty()) { | |||||
| // throw new Exception("文件为空,无法上传"); | |||||
| // } | |||||
| // // 获取文件大小并转换为KB | |||||
| // long sizeInBytes = file.getSize(); | |||||
| // 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 = "models/" + username + "/" + models.getName() + "/" + version + "/" + fileName; | |||||
| // | |||||
| // // 上传文件到MinIO并将记录新增到数据库中 | |||||
| // try (InputStream inputStream = file.getInputStream()) { | |||||
| // minioUtil.uploadObject(bucketName, objectName, inputStream); | |||||
| // ModelsVersion modelsVersion = new ModelsVersion(); | |||||
| // modelsVersion.setModelsId(id); | |||||
| // modelsVersion.setVersion(version); | |||||
| // modelsVersion.setUrl(objectName); | |||||
| // modelsVersion.setFileName(fileName); | |||||
| // modelsVersion.setFileSize(formattedSize); | |||||
| // //返回插入结果 | |||||
| // ModelsVersion insertedModelsVersion = modelsVersionService.insert(modelsVersion); | |||||
| // Map<String, String> 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); | |||||
| // } | |||||
| // } | |||||
| // return results; | |||||
| return null; | |||||
| } | |||||
| } | } | ||||
| @@ -1,8 +1,6 @@ | |||||
| package com.ruoyi.platform.service.impl; | package com.ruoyi.platform.service.impl; | ||||
| import com.ruoyi.common.security.utils.SecurityUtils; | import com.ruoyi.common.security.utils.SecurityUtils; | ||||
| import com.ruoyi.platform.domain.Dataset; | |||||
| import com.ruoyi.platform.domain.DatasetVersion; | |||||
| import com.ruoyi.platform.domain.Models; | import com.ruoyi.platform.domain.Models; | ||||
| import com.ruoyi.platform.domain.ModelsVersion; | import com.ruoyi.platform.domain.ModelsVersion; | ||||
| import com.ruoyi.platform.mapper.ModelsDao; | import com.ruoyi.platform.mapper.ModelsDao; | ||||
| @@ -10,6 +8,7 @@ import com.ruoyi.platform.mapper.ModelsVersionDao; | |||||
| import com.ruoyi.platform.service.ModelsService; | import com.ruoyi.platform.service.ModelsService; | ||||
| import com.ruoyi.platform.service.ModelsVersionService; | import com.ruoyi.platform.service.ModelsVersionService; | ||||
| 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.ModelsVo; | import com.ruoyi.platform.vo.ModelsVo; | ||||
| import com.ruoyi.system.api.model.LoginUser; | import com.ruoyi.system.api.model.LoginUser; | ||||
| @@ -32,10 +31,8 @@ import javax.annotation.Resource; | |||||
| import java.io.ByteArrayInputStream; | import java.io.ByteArrayInputStream; | ||||
| import java.io.ByteArrayOutputStream; | import java.io.ByteArrayOutputStream; | ||||
| import java.io.InputStream; | import java.io.InputStream; | ||||
| import java.util.Date; | |||||
| import java.util.HashMap; | |||||
| import java.util.List; | |||||
| import java.util.Map; | |||||
| import java.text.SimpleDateFormat; | |||||
| import java.util.*; | |||||
| import java.util.stream.Collectors; | import java.util.stream.Collectors; | ||||
| import java.util.zip.ZipEntry; | import java.util.zip.ZipEntry; | ||||
| import java.util.zip.ZipOutputStream; | import java.util.zip.ZipOutputStream; | ||||
| @@ -209,15 +206,14 @@ public class ModelsServiceImpl implements ModelsService { | |||||
| /** | /** | ||||
| * 上传模型 | * 上传模型 | ||||
| * | * | ||||
| * @param files 文件 | |||||
| * @param id 模型id | |||||
| * @param version 模型版本 | |||||
| * @param files 文件 | |||||
| * @param id 模型id | |||||
| * @return 是否成功 | * @return 是否成功 | ||||
| */ | */ | ||||
| @Override | @Override | ||||
| public Map uploadModels(MultipartFile[] files, Integer id, String version) throws Exception { | |||||
| public List<Map<String, String>> uploadModels(MultipartFile[] files, Integer id) throws Exception { | |||||
| Map<Integer, Object> results = new HashMap<Integer, Object>(); | |||||
| List<Map<String, String>> results = new ArrayList<>(); | |||||
| // 验证模型是否存在 | // 验证模型是否存在 | ||||
| Models models = this.modelsDao.queryById(id); | Models models = this.modelsDao.queryById(id); | ||||
| @@ -231,33 +227,36 @@ public class ModelsServiceImpl implements ModelsService { | |||||
| } | } | ||||
| // 获取文件大小并转换为KB | // 获取文件大小并转换为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 = "models/" + username + "/" + models.getName() + "/" + version + "/" + fileName; | |||||
| Date createTime = new Date(); | |||||
| String timestamp = new SimpleDateFormat("yyyyMMdd-HHmmss").format(createTime); | |||||
| String objectName = "models/" + username + "/" + models.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); | ||||
| ModelsVersion modelsVersion = new ModelsVersion(); | |||||
| modelsVersion.setModelsId(id); | |||||
| modelsVersion.setVersion(version); | |||||
| modelsVersion.setUrl(objectName); | |||||
| modelsVersion.setFileName(fileName); | |||||
| modelsVersion.setFileSize(String.valueOf(sizeInKB)); | |||||
| //返回插入结果 | |||||
| ModelsVersion insertedModelsVersion = modelsVersionService.insert(modelsVersion); | |||||
| // ModelsVersion modelsVersion = new ModelsVersion(); | |||||
| // modelsVersion.setModelsId(id); | |||||
| // modelsVersion.setVersion(version); | |||||
| // modelsVersion.setUrl(objectName); | |||||
| // modelsVersion.setFileName(fileName); | |||||
| // modelsVersion.setFileSize(formattedSize); | |||||
| // //返回插入结果 | |||||
| // ModelsVersion insertedModelsVersion = modelsVersionService.insert(modelsVersion); | |||||
| 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(insertedModelsVersion.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); | |||||
| } | } | ||||
| } | } | ||||
| return results; | return results; | ||||
| } | } | ||||
| @@ -1,6 +1,7 @@ | |||||
| package com.ruoyi.platform.service.impl; | package com.ruoyi.platform.service.impl; | ||||
| import com.ruoyi.common.security.utils.SecurityUtils; | import com.ruoyi.common.security.utils.SecurityUtils; | ||||
| import com.ruoyi.platform.domain.DatasetVersion; | |||||
| import com.ruoyi.platform.domain.ModelsVersion; | import com.ruoyi.platform.domain.ModelsVersion; | ||||
| import com.ruoyi.platform.mapper.ModelsDao; | import com.ruoyi.platform.mapper.ModelsDao; | ||||
| import com.ruoyi.platform.mapper.ModelsVersionDao; | import com.ruoyi.platform.mapper.ModelsVersionDao; | ||||
| @@ -64,12 +65,8 @@ public class ModelsVersionServiceImpl implements ModelsVersionService { | |||||
| */ | */ | ||||
| @Override | @Override | ||||
| public ModelsVersion insert(ModelsVersion modelsVersion) { | public ModelsVersion insert(ModelsVersion modelsVersion) { | ||||
| LoginUser loginUser = SecurityUtils.getLoginUser(); | |||||
| modelsVersion.setCreateBy(loginUser.getUsername()); | |||||
| modelsVersion.setUpdateBy(loginUser.getUsername()); | |||||
| modelsVersion.setUpdateTime(new Date()); | |||||
| modelsVersion.setCreateTime(new Date()); | |||||
| modelsVersion.setState(1); | |||||
| //插入预备 | |||||
| insertPrepare(modelsVersion); | |||||
| this.modelsVersionDao.insert(modelsVersion); | this.modelsVersionDao.insert(modelsVersion); | ||||
| return modelsVersion; | return modelsVersion; | ||||
| } | } | ||||
| @@ -179,4 +176,29 @@ public class ModelsVersionServiceImpl implements ModelsVersionService { | |||||
| return results; | return results; | ||||
| } | } | ||||
| @Override | |||||
| public String addModelVersions(List<ModelsVersion> modelsVersions) { | |||||
| try { | |||||
| // 遍历传入的 datasetVersions 列表 | |||||
| for(ModelsVersion modelsVersion : modelsVersions) { | |||||
| insertPrepare(modelsVersion); | |||||
| } | |||||
| this.modelsVersionDao.insertBatch(modelsVersions); | |||||
| return "新增模型版本成功"; | |||||
| } catch (Exception e) { | |||||
| // 如果出现异常,返回异常消息 | |||||
| return "新增模型版本失败: " + e.getMessage(); | |||||
| } | |||||
| } | |||||
| private void insertPrepare(ModelsVersion modelsVersion) { | |||||
| LoginUser loginUser = SecurityUtils.getLoginUser(); | |||||
| modelsVersion.setCreateBy(loginUser.getUsername()); | |||||
| modelsVersion.setUpdateBy(loginUser.getUsername()); | |||||
| modelsVersion.setUpdateTime(new Date()); | |||||
| modelsVersion.setCreateTime(new Date()); | |||||
| modelsVersion.setState(1); | |||||
| } | |||||
| } | } | ||||
| @@ -21,4 +21,7 @@ public class FileUtil { | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -171,7 +171,7 @@ | |||||
| </insert> | </insert> | ||||
| <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true"> | <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true"> | ||||
| insert into dataset_version(dataset_idversionurlfile_namefile_sizeavailable_clusterstatuscreate_bycreate_timeupdate_byupdate_timestate) | |||||
| insert into dataset_version(dataset_id,version,url,file_name,file_size,available_cluster,status,create_by,create_time,update_by,update_time,state) | |||||
| values | values | ||||
| <foreach collection="entities" item="entity" separator=","> | <foreach collection="entities" item="entity" separator=","> | ||||
| (#{entity.datasetId},#{entity.version},#{entity.url},#{entity.fileName},#{entity.fileSize},#{entity.availableCluster},#{entity.status},#{entity.createBy},#{entity.createTime},#{entity.updateBy},#{entity.updateTime},#{entity.state}) | (#{entity.datasetId},#{entity.version},#{entity.url},#{entity.fileName},#{entity.fileSize},#{entity.availableCluster},#{entity.status},#{entity.createBy},#{entity.createTime},#{entity.updateBy},#{entity.updateTime},#{entity.state}) | ||||
| @@ -179,7 +179,7 @@ | |||||
| </insert> | </insert> | ||||
| <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true"> | <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true"> | ||||
| insert into dataset_version(dataset_idversionurlfile_namefile_sizeavailable_clusterstatuscreate_bycreate_timeupdate_byupdate_timestate) | |||||
| insert into dataset_version(dataset_id,version,url,file_name,file_size,available_cluster,status,create_by,create_time,update_by,update_time,state) | |||||
| values | values | ||||
| <foreach collection="entities" item="entity" separator=","> | <foreach collection="entities" item="entity" separator=","> | ||||
| (#{entity.datasetId},#{entity.version},#{entity.url},#{entity.fileName},#{entity.fileSize},#{entity.availableCluster},#{entity.status},#{entity.createBy},#{entity.createTime},#{entity.updateBy},#{entity.updateTime},#{entity.state}) | (#{entity.datasetId},#{entity.version},#{entity.url},#{entity.fileName},#{entity.fileSize},#{entity.availableCluster},#{entity.status},#{entity.createBy},#{entity.createTime},#{entity.updateBy},#{entity.updateTime},#{entity.state}) | ||||