Browse Source

编写不重复时提示注解

pull/7/head
fanshuai 2 years ago
parent
commit
53c4a38048
13 changed files with 78 additions and 27 deletions
  1. +12
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/annotations/CheckDuplicate.java
  2. +1
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/dataset/DatasetController.java
  3. +1
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/dataset/DatasetVersionController.java
  4. +4
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/Dataset.java
  5. +2
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/DatasetVersion.java
  6. +1
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/DatasetDao.java
  7. +1
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/DatasetVersionDao.java
  8. +2
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/DatasetService.java
  9. +4
    -3
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/DatasetVersionService.java
  10. +19
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DatasetServiceImpl.java
  11. +18
    -18
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DatasetVersionServiceImpl.java
  12. +7
    -0
      ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/DatasetDaoMapper.xml
  13. +6
    -1
      ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/DatasetVersionDaoMapper.xml

+ 12
- 0
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/annotations/CheckDuplicate.java View File

@@ -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 "不能重复";
}

+ 1
- 1
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/dataset/DatasetController.java View File

@@ -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));


} }


+ 1
- 1
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/dataset/DatasetVersionController.java View File

@@ -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));
} }




+ 4
- 0
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/Dataset.java View File

@@ -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
- 0
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/DatasetVersion.java View File

@@ -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;
/** /**
* 数据集存储地址 * 数据集存储地址


+ 1
- 0
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/DatasetDao.java View File

@@ -80,5 +80,6 @@ public interface DatasetDao {
*/ */
int deleteById(Integer id); int deleteById(Integer id);


Dataset findByName(String name);
} }



+ 1
- 1
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/DatasetVersionDao.java View File

@@ -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);
} }



+ 2
- 1
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/DatasetService.java View File

@@ -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;
} }

+ 4
- 3
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/DatasetVersionService.java View File

@@ -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;
} }

+ 19
- 1
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DatasetServiceImpl.java View File

@@ -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() + "不能重复");
}
}
}
}
} }

+ 18
- 18
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DatasetVersionServiceImpl.java View File

@@ -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() + "不能重复");
}
}
}
}
} }

+ 7
- 0
ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/DatasetDaoMapper.xml View File

@@ -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


+ 6
- 1
ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/DatasetVersionDaoMapper.xml View File

@@ -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">


Loading…
Cancel
Save