| @@ -0,0 +1,12 @@ | |||||
| package com.ruoyi.platform.annotations; | |||||
| import java.lang.annotation.ElementType; | |||||
| import java.lang.annotation.Retention; | |||||
| import java.lang.annotation.RetentionPolicy; | |||||
| import java.lang.annotation.Target; | |||||
| @Target(ElementType.FIELD) | |||||
| @Retention(RetentionPolicy.RUNTIME) | |||||
| public @interface CheckDuplicate { | |||||
| String value() default ""; | |||||
| String message() default "不能重复"; | |||||
| } | |||||
| @@ -77,7 +77,7 @@ public class DatasetController { | |||||
| */ | */ | ||||
| @PostMapping | @PostMapping | ||||
| @ApiOperation("添加数据集") | @ApiOperation("添加数据集") | ||||
| public AjaxResult add(@RequestBody Dataset dataset) { | |||||
| public AjaxResult add(@RequestBody Dataset dataset) throws Exception { | |||||
| return AjaxResult.success(this.datasetService.insert(dataset)); | return AjaxResult.success(this.datasetService.insert(dataset)); | ||||
| } | } | ||||
| @@ -75,7 +75,7 @@ public class DatasetVersionController { | |||||
| */ | */ | ||||
| @PostMapping | @PostMapping | ||||
| @ApiOperation("添加数据集版本") | @ApiOperation("添加数据集版本") | ||||
| public AjaxResult add(@RequestBody DatasetVersion datasetVersion) { | |||||
| public AjaxResult add(@RequestBody DatasetVersion datasetVersion) throws Exception { | |||||
| return AjaxResult.success(this.datasetVersionService.insert(datasetVersion)); | return AjaxResult.success(this.datasetVersionService.insert(datasetVersion)); | ||||
| } | } | ||||
| @@ -2,6 +2,7 @@ package com.ruoyi.platform.domain; | |||||
| import com.fasterxml.jackson.databind.PropertyNamingStrategy; | import com.fasterxml.jackson.databind.PropertyNamingStrategy; | ||||
| import com.fasterxml.jackson.databind.annotation.JsonNaming; | import com.fasterxml.jackson.databind.annotation.JsonNaming; | ||||
| import com.ruoyi.platform.annotations.CheckDuplicate; | |||||
| import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
| import java.util.Date; | import java.util.Date; | ||||
| @@ -13,11 +14,14 @@ import java.io.Serializable; | |||||
| * @author Xidaray | * @author Xidaray | ||||
| * @since 2023-11-28 11:51:22 | * @since 2023-11-28 11:51:22 | ||||
| */ | */ | ||||
| @JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) | @JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) | ||||
| public class Dataset implements Serializable { | public class Dataset implements Serializable { | ||||
| private static final long serialVersionUID = 918442714458737041L; | private static final long serialVersionUID = 918442714458737041L; | ||||
| @ApiModelProperty(name = "id") | @ApiModelProperty(name = "id") | ||||
| private Integer id; | private Integer id; | ||||
| @CheckDuplicate | |||||
| @ApiModelProperty(name = "name") | @ApiModelProperty(name = "name") | ||||
| private String name; | private String name; | ||||
| @@ -2,6 +2,7 @@ package com.ruoyi.platform.domain; | |||||
| import com.fasterxml.jackson.databind.PropertyNamingStrategy; | import com.fasterxml.jackson.databind.PropertyNamingStrategy; | ||||
| import com.fasterxml.jackson.databind.annotation.JsonNaming; | import com.fasterxml.jackson.databind.annotation.JsonNaming; | ||||
| import com.ruoyi.platform.annotations.CheckDuplicate; | |||||
| import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
| import java.util.Date; | import java.util.Date; | ||||
| @@ -27,6 +28,7 @@ public class DatasetVersion implements Serializable { | |||||
| * 版本 | * 版本 | ||||
| */ | */ | ||||
| @ApiModelProperty(name = "version") | @ApiModelProperty(name = "version") | ||||
| @CheckDuplicate | |||||
| private String version; | private String version; | ||||
| /** | /** | ||||
| * 数据集存储地址 | * 数据集存储地址 | ||||
| @@ -80,5 +80,6 @@ public interface DatasetDao { | |||||
| */ | */ | ||||
| int deleteById(Integer id); | int deleteById(Integer id); | ||||
| Dataset findByName(String name); | |||||
| } | } | ||||
| @@ -89,6 +89,6 @@ public interface DatasetVersionDao { | |||||
| List<DatasetVersion> queryAllByDatasetVersion(@Param("datasetId") Integer datasetId, @Param("version") String version); | List<DatasetVersion> queryAllByDatasetVersion(@Param("datasetId") Integer datasetId, @Param("version") String version); | ||||
| DatasetVersion findByDatasetAndVersion(Integer datasetId, String version); | |||||
| } | } | ||||
| @@ -46,7 +46,7 @@ public interface DatasetService { | |||||
| * @param dataset 实例对象 | * @param dataset 实例对象 | ||||
| * @return 实例对象 | * @return 实例对象 | ||||
| */ | */ | ||||
| Dataset insert(Dataset dataset); | |||||
| Dataset insert(Dataset dataset) throws Exception; | |||||
| @@ -77,4 +77,5 @@ public interface DatasetService { | |||||
| Map getDatasetVersions(Integer datasetId) throws Exception; | Map getDatasetVersions(Integer datasetId) throws Exception; | ||||
| String insertDatasetAndVersion(DatasetVo datasetVo) throws Exception; | String insertDatasetAndVersion(DatasetVo datasetVo) throws Exception; | ||||
| public void checkDeclaredName(Dataset insert) throws Exception; | |||||
| } | } | ||||
| @@ -3,6 +3,7 @@ package com.ruoyi.platform.service; | |||||
| import com.ruoyi.platform.domain.Dataset; | |||||
| import com.ruoyi.platform.domain.DatasetVersion; | import com.ruoyi.platform.domain.DatasetVersion; | ||||
| import org.springframework.data.domain.Page; | import org.springframework.data.domain.Page; | ||||
| import org.springframework.data.domain.PageRequest; | import org.springframework.data.domain.PageRequest; | ||||
| @@ -41,7 +42,7 @@ public interface DatasetVersionService { | |||||
| * @param datasetVersion 实例对象 | * @param datasetVersion 实例对象 | ||||
| * @return 实例对象 | * @return 实例对象 | ||||
| */ | */ | ||||
| DatasetVersion insert(DatasetVersion datasetVersion); | |||||
| DatasetVersion insert(DatasetVersion datasetVersion) throws Exception; | |||||
| /** | /** | ||||
| * 修改数据 | * 修改数据 | ||||
| @@ -63,11 +64,11 @@ public interface DatasetVersionService { | |||||
| List<DatasetVersion> queryByDatasetId(Integer datasetId); | List<DatasetVersion> queryByDatasetId(Integer datasetId); | ||||
| DatasetVersion duplicateDatasetVersion(DatasetVersion oldDatasetVersion); | |||||
| DatasetVersion queryByDatasetVersion(DatasetVersion datasetVersion); | DatasetVersion queryByDatasetVersion(DatasetVersion datasetVersion); | ||||
| List<DatasetVersion> queryByDatasetIdAndVersion(Integer datasetId, String version); | List<DatasetVersion> queryByDatasetIdAndVersion(Integer datasetId, String version); | ||||
| Map<Integer,String> deleteDatasetVersion(Integer datasetId, String version); | Map<Integer,String> deleteDatasetVersion(Integer datasetId, String version); | ||||
| void checkDeclaredVersion(DatasetVersion insert) throws Exception; | |||||
| } | } | ||||
| @@ -2,6 +2,7 @@ package com.ruoyi.platform.service.impl; | |||||
| import com.ruoyi.common.security.utils.SecurityUtils; | import com.ruoyi.common.security.utils.SecurityUtils; | ||||
| import com.ruoyi.platform.annotations.CheckDuplicate; | |||||
| import com.ruoyi.platform.domain.Dataset; | import com.ruoyi.platform.domain.Dataset; | ||||
| import com.ruoyi.platform.domain.DatasetVersion; | import com.ruoyi.platform.domain.DatasetVersion; | ||||
| import com.ruoyi.platform.domain.Models; | import com.ruoyi.platform.domain.Models; | ||||
| @@ -34,6 +35,7 @@ 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.lang.reflect.Field; | |||||
| import java.text.SimpleDateFormat; | import java.text.SimpleDateFormat; | ||||
| import java.util.Date; | import java.util.Date; | ||||
| import java.util.HashMap; | import java.util.HashMap; | ||||
| @@ -111,7 +113,9 @@ public class DatasetServiceImpl implements DatasetService { | |||||
| * @return 实例对象 | * @return 实例对象 | ||||
| */ | */ | ||||
| @Override | @Override | ||||
| public Dataset insert(Dataset dataset) { | |||||
| public Dataset insert(Dataset dataset) throws Exception { | |||||
| checkDeclaredName(dataset); | |||||
| LoginUser loginUser = SecurityUtils.getLoginUser(); | LoginUser loginUser = SecurityUtils.getLoginUser(); | ||||
| dataset.setCreateBy(loginUser.getUsername()); | dataset.setCreateBy(loginUser.getUsername()); | ||||
| @@ -349,4 +353,18 @@ public class DatasetServiceImpl implements DatasetService { | |||||
| private String extractFileName(String urlStr) { | private String extractFileName(String urlStr) { | ||||
| return urlStr.substring(urlStr.lastIndexOf('/') + 1); | return urlStr.substring(urlStr.lastIndexOf('/') + 1); | ||||
| } | } | ||||
| public void checkDeclaredName(Dataset insert) throws Exception { | |||||
| Dataset dataset = datasetDao.findByName(insert.getName()); | |||||
| if (dataset != null) { | |||||
| Field[] fields = Dataset.class.getDeclaredFields(); | |||||
| for (Field field : fields) { | |||||
| if (field.isAnnotationPresent(CheckDuplicate.class)) { | |||||
| CheckDuplicate annotation = field.getAnnotation(CheckDuplicate.class); | |||||
| throw new Exception(annotation.value() + "不能重复"); | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | } | ||||
| @@ -1,6 +1,8 @@ | |||||
| 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.annotations.CheckDuplicate; | |||||
| import com.ruoyi.platform.domain.Dataset; | |||||
| import com.ruoyi.platform.domain.DatasetVersion; | import com.ruoyi.platform.domain.DatasetVersion; | ||||
| import com.ruoyi.platform.domain.ModelsVersion; | import com.ruoyi.platform.domain.ModelsVersion; | ||||
| import com.ruoyi.platform.domain.Workflow; | import com.ruoyi.platform.domain.Workflow; | ||||
| @@ -14,6 +16,7 @@ import org.springframework.data.domain.PageRequest; | |||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
| import javax.annotation.Resource; | import javax.annotation.Resource; | ||||
| import java.lang.reflect.Field; | |||||
| import java.util.Date; | import java.util.Date; | ||||
| import java.util.HashMap; | import java.util.HashMap; | ||||
| import java.util.List; | import java.util.List; | ||||
| @@ -61,8 +64,8 @@ public class DatasetVersionServiceImpl implements DatasetVersionService { | |||||
| * @return 实例对象 | * @return 实例对象 | ||||
| */ | */ | ||||
| @Override | @Override | ||||
| public DatasetVersion insert(DatasetVersion datasetVersion) { | |||||
| public DatasetVersion insert(DatasetVersion datasetVersion) throws Exception { | |||||
| checkDeclaredVersion(datasetVersion); | |||||
| LoginUser loginUser = SecurityUtils.getLoginUser(); | LoginUser loginUser = SecurityUtils.getLoginUser(); | ||||
| datasetVersion.setCreateBy(loginUser.getUsername()); | datasetVersion.setCreateBy(loginUser.getUsername()); | ||||
| datasetVersion.setUpdateBy(loginUser.getUsername()); | datasetVersion.setUpdateBy(loginUser.getUsername()); | ||||
| @@ -127,22 +130,6 @@ public class DatasetVersionServiceImpl implements DatasetVersionService { | |||||
| return datasetVersionDao.queryByDatasetId(datasetId); | return datasetVersionDao.queryByDatasetId(datasetId); | ||||
| } | } | ||||
| /** | |||||
| * 复制数据集版本 | |||||
| * | |||||
| * @param oldDatasetVersion 待更新的数据集版本 | |||||
| * @return 新的数据集版本记录 | |||||
| */ | |||||
| public DatasetVersion duplicateDatasetVersion(DatasetVersion oldDatasetVersion) { | |||||
| DatasetVersion newDatasetVersion = new DatasetVersion(); | |||||
| newDatasetVersion.setDatasetId(oldDatasetVersion.getDatasetId()); | |||||
| newDatasetVersion.setVersion(oldDatasetVersion.getVersion()); | |||||
| newDatasetVersion.setAvailableCluster(oldDatasetVersion.getAvailableCluster()); | |||||
| newDatasetVersion.setStatus(oldDatasetVersion.getStatus()); | |||||
| return this.insert(newDatasetVersion); | |||||
| } | |||||
| @Override | @Override | ||||
| public DatasetVersion queryByDatasetVersion(DatasetVersion datasetVersion) { | public DatasetVersion queryByDatasetVersion(DatasetVersion datasetVersion) { | ||||
| return datasetVersionDao.queryByDatasetVersion(datasetVersion); | return datasetVersionDao.queryByDatasetVersion(datasetVersion); | ||||
| @@ -167,4 +154,17 @@ public class DatasetVersionServiceImpl implements DatasetVersionService { | |||||
| return results; | return results; | ||||
| } | } | ||||
| @Override | |||||
| public void checkDeclaredVersion(DatasetVersion insert) throws Exception { | |||||
| DatasetVersion datasetVersion = datasetVersionDao.findByDatasetAndVersion(insert.getDatasetId(),insert.getVersion()); | |||||
| if (datasetVersion != null) { | |||||
| Field[] fields = Dataset.class.getDeclaredFields(); | |||||
| for (Field field : fields) { | |||||
| if (field.isAnnotationPresent(CheckDuplicate.class)) { | |||||
| CheckDuplicate annotation = field.getAnnotation(CheckDuplicate.class); | |||||
| throw new Exception(annotation.value() + "不能重复"); | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | } | ||||
| @@ -24,6 +24,13 @@ | |||||
| where id = #{id} and state = 1 | where id = #{id} and state = 1 | ||||
| </select> | </select> | ||||
| <!--查询单个--> | |||||
| <select id="findByName" resultMap="DatasetMap"> | |||||
| select | |||||
| id,name,description,available_range,data_type,data_tag,create_by,create_time,update_by,update_time,state | |||||
| from dataset | |||||
| where name = #{name} and state = 1 | |||||
| </select> | |||||
| <!--查询指定行数据--> | <!--查询指定行数据--> | ||||
| <select id="queryAllByLimit" resultMap="DatasetMap"> | <select id="queryAllByLimit" resultMap="DatasetMap"> | ||||
| select | select | ||||
| @@ -24,7 +24,12 @@ | |||||
| from dataset_version | from dataset_version | ||||
| where id = #{id} and state = 1 | where id = #{id} and state = 1 | ||||
| </select> | </select> | ||||
| <select id="findByDatasetAndVersion" resultMap="DatasetVersionMap"> | |||||
| select | |||||
| id,dataset_id,version,url,file_name,file_size,available_cluster,status,create_by,create_time,update_by,update_time,state | |||||
| from dataset_version | |||||
| where dataset_id = #{datasetId} and version = #{version} and state = 1 | |||||
| </select> | |||||
| <!--查询单个--> | <!--查询单个--> | ||||
| <select id="queryByDatasetId" resultMap="DatasetVersionMap"> | <select id="queryByDatasetId" resultMap="DatasetVersionMap"> | ||||