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 c1c76f16..8ddf05b1 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 @@ -134,7 +134,7 @@ public class DatasetController { */ @PostMapping("/upload_pipeline") @ApiOperation(value = "从流水线上传数据集", notes = "并将信息存入数据库。") - public ResponseEntity uploadDatasetPipeline(@RequestBody DatasetVersion datasetVersion) { + public ResponseEntity uploadDatasetPipeline(@RequestBody(required =false) DatasetVersion datasetVersion) { return ResponseEntity.ok(this.datasetService.uploadDatasetPipeline(datasetVersion)); } } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/ModelsController.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/ModelsController.java index 3e031c6b..ee600097 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/ModelsController.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/ModelsController.java @@ -9,6 +9,7 @@ import io.swagger.annotations.ApiOperation; import org.springframework.core.io.InputStreamResource; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -117,7 +118,7 @@ public class ModelsController { */ @PostMapping("/upload_pipeline") @ApiOperation("从流水线上传模型,并将信息存入数据库") - public ResponseEntity uploadModelsPipeline(@RequestBody ModelsVersion modelsVersion){ + public ResponseEntity uploadModelsPipeline(@RequestBody(required =false) ModelsVersion modelsVersion){ return ResponseEntity.ok(this.modelsService.uploadModelsPipeline(modelsVersion)); } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/DatasetVersion.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/DatasetVersion.java index 7649dc82..4a70baeb 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/DatasetVersion.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/DatasetVersion.java @@ -1,5 +1,8 @@ package com.ruoyi.platform.domain; +import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import com.fasterxml.jackson.databind.annotation.JsonNaming; + import java.util.Date; import java.io.Serializable; @@ -9,6 +12,7 @@ import java.io.Serializable; * @author Xidaray * @since 2024-01-03 16:57:12 */ +@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) public class DatasetVersion implements Serializable { private static final long serialVersionUID = -96998451993465838L; /** diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/ModelsVersion.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/ModelsVersion.java index 8dd03f39..376bd529 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/ModelsVersion.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/ModelsVersion.java @@ -1,5 +1,8 @@ package com.ruoyi.platform.domain; +import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import com.fasterxml.jackson.databind.annotation.JsonNaming; + import java.util.Date; import java.io.Serializable; @@ -9,6 +12,7 @@ import java.io.Serializable; * @author Xidaray * @since 2024-01-05 09:02:42 */ +@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) public class ModelsVersion implements Serializable { private static final long serialVersionUID = -20181111893295288L; /** 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 aa8a0a32..67d8894b 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 @@ -9,6 +9,7 @@ import com.ruoyi.platform.mapper.DatasetDao; 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.MinioUtil; import com.ruoyi.system.api.model.LoginUser; import io.minio.MinioClient; @@ -289,8 +290,7 @@ public class DatasetServiceImpl implements DatasetService { datasetVersionDao.insert(datasetVersion); }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); url = "datasets/" + username + "/" + dataset.getName() + "-" + timestamp + "/" + datasetVersion.getVersion() + "/" + datasetVersion.getFileName(); version.setUrl(url); diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java index a53e4bd8..cf57be7f 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java @@ -9,6 +9,7 @@ import com.ruoyi.platform.mapper.ModelsDao; import com.ruoyi.platform.mapper.ModelsVersionDao; import com.ruoyi.platform.service.ModelsService; import com.ruoyi.platform.service.ModelsVersionService; +import com.ruoyi.platform.utils.BeansUtils; import com.ruoyi.platform.utils.MinioUtil; import com.ruoyi.system.api.model.LoginUser; import io.minio.MinioClient; @@ -281,7 +282,7 @@ public class ModelsServiceImpl implements ModelsService { modelsVersionDao.insert(modelsVersion); }else { //改表 - BeanUtils.copyProperties(modelsVersion, version); + BeansUtils.copyPropertiesIgnoreNull(modelsVersion, version); Date createTime = version.getCreateTime(); String timestamp = new SimpleDateFormat("yyyyMMdd-HHmmss").format(createTime); url = "models/" + username + "/" + models.getName() + "-" + timestamp + "/" + modelsVersion.getVersion() + "/" + modelsVersion.getFileName(); diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/utils/BeansUtils.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/utils/BeansUtils.java new file mode 100644 index 00000000..aa4f578f --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/utils/BeansUtils.java @@ -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 emptyNames = new HashSet(); + 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)); + } +} diff --git a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ModelsVersionDaoMapper.xml b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ModelsVersionDaoMapper.xml index 5433074f..bf38bf71 100644 --- a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ModelsVersionDaoMapper.xml +++ b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ModelsVersionDaoMapper.xml @@ -36,11 +36,11 @@ from models_version state = 1 - - and models_id = #{modelsVersion.modelsId} + + and models_id = #{modelsId} - - and version = #{modelsVersion.version} + + and version = #{version} limit 1