save code

This commit is contained in:
白茶清欢 2024-07-09 21:55:43 +08:00
parent 49a53b5f5c
commit 3b4302677b
2 changed files with 12 additions and 2 deletions

View File

@ -16,7 +16,7 @@ type FieldRule struct {
Path string `json:"path"` // 字段路径 Path string `json:"path"` // 字段路径
Type string `json:"type"` // 数据类型, 具体枚举值参见 git.zhangdeman.cn/zhangdeman/consts Type string `json:"type"` // 数据类型, 具体枚举值参见 git.zhangdeman.cn/zhangdeman/consts
DisableRewrite bool `json:"disable_rewrite"` // 验证完相关数据类型之后, 不要重新给字段赋值 DisableRewrite bool `json:"disable_rewrite"` // 验证完相关数据类型之后, 不要重新给字段赋值
DefaultValue string `json:"default_value"` // 默认值, 统一以字符串传入, 会转为最终设置的类型 DefaultValue any `json:"default_value"` // 默认值, 统一以字符串传入, 会转为最终设置的类型
IsRequired bool `json:"is_required"` // 是否必传 IsRequired bool `json:"is_required"` // 是否必传
AllowEmpty bool `json:"allow_empty"` // 必传时空字符串是否合法 AllowEmpty bool `json:"allow_empty"` // 必传时空字符串是否合法
AllowZero bool `json:"allow_zero"` // 必传数字, 0 是否合法 AllowZero bool `json:"allow_zero"` // 必传数字, 0 是否合法

12
run.go
View File

@ -50,6 +50,9 @@ func RunForStruct(sourceData any, ruleList []*define.FieldRule) (map[string]any,
// //
// Date : 14:13 2024/4/29 // Date : 14:13 2024/4/29
func Run(sourceData map[string]any, ruleList []*define.FieldRule) error { func Run(sourceData map[string]any, ruleList []*define.FieldRule) error {
for _, itemRule := range ruleList {
itemRule.DefaultValue = nil
}
byteData, err := RunWithResult(sourceData, ruleList) byteData, err := RunWithResult(sourceData, ruleList)
if nil != err { if nil != err {
return err return err
@ -169,7 +172,14 @@ func formatInputVal(val gjson.Result, rule *define.FieldRule) (any, error) {
if rule.DisableAutoConvert { if rule.DisableAutoConvert {
inputVal = rule.DefaultValue inputVal = rule.DefaultValue
} else { } else {
inputVal = strings.TrimSpace(rule.DefaultValue) if nil == rule.DefaultValue {
return nil, nil
}
if strVal, ok := rule.DefaultValue.(string); ok {
inputVal = strings.TrimSpace(strVal)
} else {
inputVal = rule.DefaultValue
}
} }
} else { } else {
if inputValStr, ok := inputVal.(string); ok { if inputValStr, ok := inputVal.(string); ok {