fix(qa): ISSUE-003 — 增加字段类型校验,拒绝 STRING/INT/FLOAT/DATE/DATETIME/JSONB 之外的字段类型

之前 BOOLEAN/BOOLEAN 等无效字段类型不会被拒绝,
导致建表时 fallback 到 VARCHAR(256) 产生类型不匹配。
现在显式校验 FieldType 和 DataType 都在允许范围内。
This commit is contained in:
lmk
2026-06-16 19:17:05 +08:00
parent 6e6f9087b6
commit 7336f2d438
+16
View File
@@ -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
}