| @@ -134,7 +134,7 @@ public class DatasetController { | |||||
| */ | */ | ||||
| @PostMapping("/upload_pipeline") | @PostMapping("/upload_pipeline") | ||||
| @ApiOperation(value = "从流水线上传数据集", notes = "并将信息存入数据库。") | @ApiOperation(value = "从流水线上传数据集", notes = "并将信息存入数据库。") | ||||
| public ResponseEntity<String> uploadDatasetPipeline(@RequestBody DatasetVersion datasetVersion) { | |||||
| public ResponseEntity<String> uploadDatasetPipeline(@RequestBody(required =false) DatasetVersion datasetVersion) { | |||||
| return ResponseEntity.ok(this.datasetService.uploadDatasetPipeline(datasetVersion)); | return ResponseEntity.ok(this.datasetService.uploadDatasetPipeline(datasetVersion)); | ||||
| } | } | ||||
| } | } | ||||
| @@ -9,6 +9,7 @@ import io.swagger.annotations.ApiOperation; | |||||
| import org.springframework.core.io.InputStreamResource; | import org.springframework.core.io.InputStreamResource; | ||||
| 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.http.MediaType; | |||||
| 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 org.springframework.web.multipart.MultipartFile; | ||||
| @@ -117,7 +118,7 @@ public class ModelsController { | |||||
| */ | */ | ||||
| @PostMapping("/upload_pipeline") | @PostMapping("/upload_pipeline") | ||||
| @ApiOperation("从流水线上传模型,并将信息存入数据库") | @ApiOperation("从流水线上传模型,并将信息存入数据库") | ||||
| public ResponseEntity<String> uploadModelsPipeline(@RequestBody ModelsVersion modelsVersion){ | |||||
| public ResponseEntity<String> uploadModelsPipeline(@RequestBody(required =false) ModelsVersion modelsVersion){ | |||||
| return ResponseEntity.ok(this.modelsService.uploadModelsPipeline(modelsVersion)); | return ResponseEntity.ok(this.modelsService.uploadModelsPipeline(modelsVersion)); | ||||
| } | } | ||||
| @@ -1,5 +1,8 @@ | |||||
| package com.ruoyi.platform.domain; | package com.ruoyi.platform.domain; | ||||
| import com.fasterxml.jackson.databind.PropertyNamingStrategy; | |||||
| import com.fasterxml.jackson.databind.annotation.JsonNaming; | |||||
| import java.util.Date; | import java.util.Date; | ||||
| import java.io.Serializable; | import java.io.Serializable; | ||||
| @@ -9,6 +12,7 @@ import java.io.Serializable; | |||||
| * @author Xidaray | * @author Xidaray | ||||
| * @since 2024-01-03 16:57:12 | * @since 2024-01-03 16:57:12 | ||||
| */ | */ | ||||
| @JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) | |||||
| public class DatasetVersion implements Serializable { | public class DatasetVersion implements Serializable { | ||||
| private static final long serialVersionUID = -96998451993465838L; | private static final long serialVersionUID = -96998451993465838L; | ||||
| /** | /** | ||||
| @@ -1,5 +1,8 @@ | |||||
| package com.ruoyi.platform.domain; | package com.ruoyi.platform.domain; | ||||
| import com.fasterxml.jackson.databind.PropertyNamingStrategy; | |||||
| import com.fasterxml.jackson.databind.annotation.JsonNaming; | |||||
| import java.util.Date; | import java.util.Date; | ||||
| import java.io.Serializable; | import java.io.Serializable; | ||||
| @@ -9,6 +12,7 @@ import java.io.Serializable; | |||||
| * @author Xidaray | * @author Xidaray | ||||
| * @since 2024-01-05 09:02:42 | * @since 2024-01-05 09:02:42 | ||||
| */ | */ | ||||
| @JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) | |||||
| public class ModelsVersion implements Serializable { | public class ModelsVersion implements Serializable { | ||||
| private static final long serialVersionUID = -20181111893295288L; | private static final long serialVersionUID = -20181111893295288L; | ||||
| /** | /** | ||||
| @@ -9,6 +9,7 @@ import com.ruoyi.platform.mapper.DatasetDao; | |||||
| import com.ruoyi.platform.mapper.DatasetVersionDao; | 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.MinioUtil; | import com.ruoyi.platform.utils.MinioUtil; | ||||
| import com.ruoyi.system.api.model.LoginUser; | import com.ruoyi.system.api.model.LoginUser; | ||||
| import io.minio.MinioClient; | import io.minio.MinioClient; | ||||
| @@ -289,8 +290,7 @@ public class DatasetServiceImpl implements DatasetService { | |||||
| datasetVersionDao.insert(datasetVersion); | datasetVersionDao.insert(datasetVersion); | ||||
| }else { | }else { | ||||
| //改表 | //改表 | ||||
| BeanUtils.copyProperties(datasetVersion, version); | |||||
| Date createTime = version.getCreateTime(); | |||||
| BeansUtils.copyPropertiesIgnoreNull(datasetVersion, version); Date createTime = version.getCreateTime(); | |||||
| String timestamp = new SimpleDateFormat("yyyyMMdd-HHmmss").format(createTime); | String timestamp = new SimpleDateFormat("yyyyMMdd-HHmmss").format(createTime); | ||||
| url = "datasets/" + username + "/" + dataset.getName() + "-" + timestamp + "/" + datasetVersion.getVersion() + "/" + datasetVersion.getFileName(); | url = "datasets/" + username + "/" + dataset.getName() + "-" + timestamp + "/" + datasetVersion.getVersion() + "/" + datasetVersion.getFileName(); | ||||
| version.setUrl(url); | version.setUrl(url); | ||||
| @@ -9,6 +9,7 @@ import com.ruoyi.platform.mapper.ModelsDao; | |||||
| import com.ruoyi.platform.mapper.ModelsVersionDao; | 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.MinioUtil; | import com.ruoyi.platform.utils.MinioUtil; | ||||
| import com.ruoyi.system.api.model.LoginUser; | import com.ruoyi.system.api.model.LoginUser; | ||||
| import io.minio.MinioClient; | import io.minio.MinioClient; | ||||
| @@ -281,7 +282,7 @@ public class ModelsServiceImpl implements ModelsService { | |||||
| modelsVersionDao.insert(modelsVersion); | modelsVersionDao.insert(modelsVersion); | ||||
| }else { | }else { | ||||
| //改表 | //改表 | ||||
| BeanUtils.copyProperties(modelsVersion, version); | |||||
| BeansUtils.copyPropertiesIgnoreNull(modelsVersion, version); | |||||
| Date createTime = version.getCreateTime(); | Date createTime = version.getCreateTime(); | ||||
| String timestamp = new SimpleDateFormat("yyyyMMdd-HHmmss").format(createTime); | String timestamp = new SimpleDateFormat("yyyyMMdd-HHmmss").format(createTime); | ||||
| url = "models/" + username + "/" + models.getName() + "-" + timestamp + "/" + modelsVersion.getVersion() + "/" + modelsVersion.getFileName(); | url = "models/" + username + "/" + models.getName() + "-" + timestamp + "/" + modelsVersion.getVersion() + "/" + modelsVersion.getFileName(); | ||||
| @@ -0,0 +1,27 @@ | |||||
| package com.ruoyi.platform.utils; | |||||
| import com.ruoyi.common.core.utils.bean.BeanUtils; | |||||
| import org.springframework.beans.BeanWrapper; | |||||
| import org.springframework.beans.BeanWrapperImpl; | |||||
| import java.util.HashSet; | |||||
| import java.util.Set; | |||||
| public class BeansUtils { | |||||
| public static String[] getNullPropertyNames(Object source) { | |||||
| final BeanWrapper src = new BeanWrapperImpl(source); | |||||
| java.beans.PropertyDescriptor[] pds = src.getPropertyDescriptors(); | |||||
| Set<String> emptyNames = new HashSet<String>(); | |||||
| for(java.beans.PropertyDescriptor pd : pds) { | |||||
| Object srcValue = src.getPropertyValue(pd.getName()); | |||||
| if (srcValue == null) emptyNames.add(pd.getName()); | |||||
| } | |||||
| String[] result = new String[emptyNames.size()]; | |||||
| return emptyNames.toArray(result); | |||||
| } | |||||
| public static void copyPropertiesIgnoreNull(Object src, Object target){ | |||||
| BeanUtils.copyProperties(src, target, getNullPropertyNames(src)); | |||||
| } | |||||
| } | |||||
| @@ -36,11 +36,11 @@ | |||||
| from models_version | from models_version | ||||
| <where> | <where> | ||||
| state = 1 | state = 1 | ||||
| <if test="modelsVersion.modelsId != null"> | |||||
| and models_id = #{modelsVersion.modelsId} | |||||
| <if test="modelsId != null"> | |||||
| and models_id = #{modelsId} | |||||
| </if> | </if> | ||||
| <if test="modelsVersion.version != null and modelsVersion.version != ''"> | |||||
| and version = #{modelsVersion.version} | |||||
| <if test="version != null and version != ''"> | |||||
| and version = #{version} | |||||
| </if> | </if> | ||||
| </where> | </where> | ||||
| limit 1 | limit 1 | ||||