数据结构支持设置默认值能力
This commit is contained in:
@ -15,6 +15,7 @@ import (
|
||||
dynamicStructGenerate "git.zhangdeman.cn/zhangdeman/dynamic-struct"
|
||||
"git.zhangdeman.cn/zhangdeman/json_filter/gjson_hack"
|
||||
"git.zhangdeman.cn/zhangdeman/serialize"
|
||||
"github.com/creasty/defaults"
|
||||
"github.com/go-playground/validator/v10"
|
||||
"github.com/tidwall/gjson"
|
||||
"github.com/tidwall/sjson"
|
||||
@ -101,6 +102,10 @@ func (h *handle) Run() ([]byte, error) {
|
||||
if err := serialize.JSON.UnmarshalWithNumber([]byte(h.formatVal), &val); nil != err {
|
||||
return nil, err
|
||||
}
|
||||
if err := defaults.Set(&val); nil != err {
|
||||
// 默认值设置失败
|
||||
return nil, err
|
||||
}
|
||||
if err := validatorInstance.Struct(val); nil != err {
|
||||
return nil, GetValidateErr(val, err, TagErrMsg)
|
||||
}
|
||||
@ -231,6 +236,9 @@ func (h *handle) generateTag(field StructField) string {
|
||||
// 验证规则tag
|
||||
tagList = append(tagList, fmt.Sprintf(`%s:"%s"`, TagValidate, strings.Join(validateRuleList, ",")))
|
||||
// 默认值
|
||||
if field.DefaultValue == "-" && (field.Type == consts.DataTypeString || field.Type == consts.DataTypeStringPtr) {
|
||||
field.DefaultValue = ""
|
||||
}
|
||||
tagList = append(tagList, fmt.Sprintf(`%s:"%s"`, TagDefaultValue, field.DefaultValue))
|
||||
return strings.Join(tagList, " ")
|
||||
}
|
||||
|
Reference in New Issue
Block a user