Browse Source

添加数据源表字段对应表字段类型验证

wangxingwang 6 years ago
parent
commit
027b8e7dc3

+ 8 - 0
src/main/java/com/yihu/quota/controller/DataSourcesTableFieldController.java

@ -60,6 +60,14 @@ public class DataSourcesTableFieldController {
            @RequestParam String model) throws Exception {
        Envelop envelop = new Envelop();
        DataSourcesTableField dimensionMember = objectMapper.readValue(URLDecoder.decode(model, "UTF-8"), DataSourcesTableField.class);
        // 判断字段类型是否是允许的类型
        boolean allowType = dataSourcesFieldService.isAllowType(dimensionMember.getFieldType());
        if (!allowType) {
            // 不是允许的类型
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg("不被允许的字段类型");
            return envelop;
        }
        if (null == dimensionMember.getId()) {
            // 新增
            dataSourcesFieldService.save(dimensionMember);

+ 1 - 1
src/main/java/com/yihu/quota/model/dimension/Dimension.java

@ -25,7 +25,7 @@ public class Dimension {
     */
    private Integer type;
    /**
     * 数据字典sql
     * 数据字典
     */
    private String dict;
    /**

+ 21 - 0
src/main/java/com/yihu/quota/service/source/DataSourcesTableFieldService.java

@ -5,6 +5,9 @@ import com.yihu.quota.dao.source.DataSourcesTableFieldDao;
import com.yihu.quota.model.source.DataSourcesTableField;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
/**
 * Created by wxw on 2018/9/10.
 *
@ -12,4 +15,22 @@ import org.springframework.stereotype.Service;
 */
@Service
public class DataSourcesTableFieldService extends BaseJpaService<DataSourcesTableField, DataSourcesTableFieldDao> {
    /**
     * 定义基础数据类型
     */
    private final static String[] TYPE = {"tiny int", "int", "integer", "float", "long", "double", "decimal", "char",
            "varchar", "text", "string", "date", "datetime", "timestamp", "time", "binary", "boolean", "nested", "keyword"};
    /**
     * 是否是允许的数据类型
     * @param fieldType
     * @return
     */
    public boolean isAllowType(String fieldType) {
        List<String> list = Arrays.asList(TYPE);
        if (list.contains(fieldType.toLowerCase())) {
            return true;
        }
        return false;
    }
}