diff --git a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java index 7ac5c1e2ad..4583380c62 100644 --- a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java +++ b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java @@ -5,13 +5,19 @@ import com.auth0.jwt.interfaces.DecodedJWT; import com.github.xiaoymin.knife4j.annotations.ApiSupport; import io.dataease.auth.filter.F2CLinkFilter; import io.dataease.base.domain.DatasetTableField; +import io.dataease.base.domain.DatasetTableFieldExample; +import io.dataease.base.mapper.DatasetTableFieldMapper; +import io.dataease.commons.exception.DEException; import io.dataease.controller.request.dataset.MultFieldValuesRequest; import io.dataease.controller.response.DatasetTableField4Type; +import io.dataease.i18n.Translator; import io.dataease.service.dataset.DataSetFieldService; import io.dataease.service.dataset.DataSetTableFieldsService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.context.request.RequestContextHolder; @@ -73,6 +79,7 @@ public class DataSetTableFieldController { @ApiOperation("保存") @PostMapping("save") public DatasetTableField save(@RequestBody DatasetTableField datasetTableField) { + dataSetTableFieldsService.checkFieldName(datasetTableField); return dataSetTableFieldsService.save(datasetTableField); } @@ -85,7 +92,7 @@ public class DataSetTableFieldController { @ApiOperation("多字段值枚举") @PostMapping("linkMultFieldValues") public List linkMultFieldValues(@RequestBody MultFieldValuesRequest multFieldValuesRequest) throws Exception { - HttpServletRequest request =((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String linkToken = request.getHeader(F2CLinkFilter.LINK_TOKEN_KEY); DecodedJWT jwt = JWT.decode(linkToken); Long userId = jwt.getClaim("userId").asLong(); diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableFieldsService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableFieldsService.java index 5eddd4eb2e..9b5c480810 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableFieldsService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableFieldsService.java @@ -32,12 +32,6 @@ public class DataSetTableFieldsService { } public DatasetTableField save(DatasetTableField datasetTableField) { - DatasetTableFieldExample datasetTableFieldExample = new DatasetTableFieldExample(); - datasetTableFieldExample.createCriteria().andNameEqualTo(datasetTableField.getName()).andTableIdEqualTo(datasetTableField.getTableId()); - List datasetTableFields = datasetTableFieldMapper.selectByExample(datasetTableFieldExample); - if (CollectionUtils.isNotEmpty(datasetTableFields)) { - DEException.throwException(Translator.get("i18n_field_name_repeat")); - } if (StringUtils.isEmpty(datasetTableField.getId())) { datasetTableField.setId(UUID.randomUUID().toString()); // 若dataeasename为空,则用MD5(id)作为dataeasename @@ -54,6 +48,21 @@ public class DataSetTableFieldsService { return datasetTableField; } + public void checkFieldName(DatasetTableField datasetTableField) { + if (StringUtils.isNotEmpty(datasetTableField.getName()) && StringUtils.isNotEmpty(datasetTableField.getTableId())) { + DatasetTableFieldExample datasetTableFieldExample = new DatasetTableFieldExample(); + DatasetTableFieldExample.Criteria criteria = datasetTableFieldExample.createCriteria(); + criteria.andNameEqualTo(datasetTableField.getName()).andTableIdEqualTo(datasetTableField.getTableId()); + if (StringUtils.isNotEmpty(datasetTableField.getId())) { + criteria.andIdNotEqualTo(datasetTableField.getId()); + } + List datasetTableFields = datasetTableFieldMapper.selectByExample(datasetTableFieldExample); + if (CollectionUtils.isNotEmpty(datasetTableFields)) { + DEException.throwException(Translator.get("i18n_field_name_repeat")); + } + } + } + public List list(DatasetTableField datasetTableField) { DatasetTableFieldExample datasetTableFieldExample = new DatasetTableFieldExample(); DatasetTableFieldExample.Criteria criteria = datasetTableFieldExample.createCriteria();