fix: 字段重名

This commit is contained in:
xiajunjie 2021-12-31 00:21:01 +08:00
parent a17e55c2d7
commit 1eb4dc6e01
2 changed files with 23 additions and 7 deletions

View File

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

View File

@ -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<DatasetTableField> 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<DatasetTableField> datasetTableFields = datasetTableFieldMapper.selectByExample(datasetTableFieldExample);
if (CollectionUtils.isNotEmpty(datasetTableFields)) {
DEException.throwException(Translator.get("i18n_field_name_repeat"));
}
}
}
public List<DatasetTableField> list(DatasetTableField datasetTableField) {
DatasetTableFieldExample datasetTableFieldExample = new DatasetTableFieldExample();
DatasetTableFieldExample.Criteria criteria = datasetTableFieldExample.createCriteria();