文档支持解析最小值、最大值、默认值
This commit is contained in:
@ -78,6 +78,84 @@ func (r validateRule) Enum(structField reflect.StructField) []any {
|
||||
return anySlice
|
||||
}
|
||||
|
||||
// Minimum 最小值
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 21:51 2025/2/18
|
||||
func (r validateRule) Minimum(structField reflect.StructField) *int64 {
|
||||
ruleTable := r.getValidateRuleTable(structField)
|
||||
var (
|
||||
err error
|
||||
minVal, gteVal int64
|
||||
minStr, gteStr string
|
||||
minStrExist, gteStrExist bool
|
||||
)
|
||||
if minStr, minStrExist = ruleTable[consts.ValidatorRuleCommonMin.String()]; minStrExist && len(minStr) > 0 {
|
||||
if minVal, err = strconv.ParseInt(minStr, 10, 64); nil != err {
|
||||
panic("validate rule min val = " + minStr + " : " + err.Error())
|
||||
}
|
||||
}
|
||||
if gteStr, gteStrExist = ruleTable[consts.ValidateRuleGte.String()]; gteStrExist && len(gteStr) > 0 {
|
||||
if gteVal, err = strconv.ParseInt(gteStr, 10, 64); nil != err {
|
||||
panic("validate rule gte val = " + gteStr + " : " + err.Error())
|
||||
}
|
||||
}
|
||||
if !minStrExist && !gteStrExist {
|
||||
// 未配置
|
||||
return nil
|
||||
}
|
||||
if len(minStr) > 0 {
|
||||
if len(gteStr) > 0 {
|
||||
if gteVal > minVal {
|
||||
return &minVal
|
||||
}
|
||||
return >eVal
|
||||
}
|
||||
return &minVal
|
||||
}
|
||||
return >eVal
|
||||
}
|
||||
|
||||
// Maximum 最大值
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 22:00 2025/2/18
|
||||
func (r validateRule) Maximum(structField reflect.StructField) *int64 {
|
||||
ruleTable := r.getValidateRuleTable(structField)
|
||||
var (
|
||||
err error
|
||||
maxVal, gleVal int64
|
||||
maxStr, gleStr string
|
||||
maxStrExist, gleStrExist bool
|
||||
)
|
||||
if maxStr, maxStrExist = ruleTable[consts.ValidatorRuleCommonMax.String()]; maxStrExist && len(maxStr) > 0 {
|
||||
if maxVal, err = strconv.ParseInt(maxStr, 10, 64); nil != err {
|
||||
panic("validate rule min val = " + maxStr + " : " + err.Error())
|
||||
}
|
||||
}
|
||||
if gleStr, gleStrExist = ruleTable[consts.ValidateRuleLte.String()]; gleStrExist && len(gleStr) > 0 {
|
||||
if gleVal, err = strconv.ParseInt(gleStr, 10, 64); nil != err {
|
||||
panic("validate rule gte val = " + gleStr + " : " + err.Error())
|
||||
}
|
||||
}
|
||||
if !maxStrExist && !gleStrExist {
|
||||
// 未配置
|
||||
return nil
|
||||
}
|
||||
if len(maxStr) > 0 {
|
||||
if len(gleStr) > 0 {
|
||||
if gleVal > maxVal {
|
||||
return &gleVal
|
||||
}
|
||||
return &maxVal
|
||||
}
|
||||
return &maxVal
|
||||
}
|
||||
return &gleVal
|
||||
}
|
||||
|
||||
// getValidateRuleTable 解析验证规则表
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
|
Reference in New Issue
Block a user