fix(qa): ISSUE-003 — 增加字段类型校验,拒绝 STRING/INT/FLOAT/DATE/DATETIME/JSONB 之外的字段类型
之前 BOOLEAN/BOOLEAN 等无效字段类型不会被拒绝, 导致建表时 fallback 到 VARCHAR(256) 产生类型不匹配。 现在显式校验 FieldType 和 DataType 都在允许范围内。
This commit is contained in:
@@ -333,6 +333,22 @@ func (s *ReportService) SaveField(ctx context.Context, req *model.SaveFieldReq)
|
||||
Status: req.Status,
|
||||
}
|
||||
|
||||
// 校验字段类型
|
||||
validFieldTypes := map[string]bool{
|
||||
model.FieldTypeString: true,
|
||||
model.FieldTypeInt: true,
|
||||
model.FieldTypeFloat: true,
|
||||
model.FieldTypeDate: true,
|
||||
model.FieldTypeDatetime: true,
|
||||
model.FieldTypeJsonb: true,
|
||||
}
|
||||
if req.FieldType != "" && !validFieldTypes[req.FieldType] {
|
||||
return nil, fmt.Errorf("不支持的字段类型: %s,仅支持 STRING/INT/FLOAT/DATE/DATETIME/JSONB", req.FieldType)
|
||||
}
|
||||
if req.DataType != "" && !validFieldTypes[req.DataType] {
|
||||
return nil, fmt.Errorf("不支持的存储类型: %s,仅支持 STRING/INT/FLOAT/DATE/DATETIME/JSONB", req.DataType)
|
||||
}
|
||||
|
||||
if req.Status == "" {
|
||||
field.Status = model.StatusActive
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user