增加默认字段验证表达式生成规则函数
This commit is contained in:
		@ -9,7 +9,6 @@ package abstract
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"git.zhangdeman.cn/gateway/validator/v10/define"
 | 
			
		||||
	"git.zhangdeman.cn/zhangdeman/consts"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// IValidateRuleGenerateFunc 生成校验规则的方法约束
 | 
			
		||||
@ -33,4 +32,4 @@ type IValidateRuleGenerateFunc func(ruleConfig define.GenerateRuleExpressConfig)
 | 
			
		||||
// Author : go_developer@163.com<白茶清欢>
 | 
			
		||||
//
 | 
			
		||||
// Date : 11:16 2025/1/24
 | 
			
		||||
type IFieldValidateRuleGenerateFunc func(validateRule consts.ValidatorRule, paramList ...any) (express string, err error)
 | 
			
		||||
type IFieldValidateRuleGenerateFunc func(fieldValidateRule define.FieldValidateGenerateConfig) (express string, err error)
 | 
			
		||||
 | 
			
		||||
@ -33,3 +33,35 @@ func DefaultValidateRuleGenerateFunc(validateRule define.GenerateRuleExpressConf
 | 
			
		||||
	}
 | 
			
		||||
	return ruleConfig.ValidatorRule.String() + "=" + strings.Join(paramStrList, " "), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// DefaultFieldValidateRuleGenerateFunc 字段验证表达式生成
 | 
			
		||||
//
 | 
			
		||||
// Author : go_developer@163.com<白茶清欢>
 | 
			
		||||
//
 | 
			
		||||
// Date : 11:44 2025/1/24
 | 
			
		||||
func DefaultFieldValidateRuleGenerateFunc(fieldValidateRule define.FieldValidateGenerateConfig) (string, error) {
 | 
			
		||||
	if len(fieldValidateRule.RuleGroup) == 0 && len(fieldValidateRule.RuleSimple.Rule.String()) == 0 {
 | 
			
		||||
		return "", errors.New("rule group and rule simple all empty")
 | 
			
		||||
	}
 | 
			
		||||
	if len(fieldValidateRule.RuleGroup) == 0 {
 | 
			
		||||
		// note: 当 fieldValidateRule.RuleGroup 不为空时, 会忽略 fieldValidateRule.RuleSimple 配置
 | 
			
		||||
		fieldValidateRule.RuleGroup = [][]define.GenerateRuleExpressConfig{
 | 
			
		||||
			[]define.GenerateRuleExpressConfig{
 | 
			
		||||
				fieldValidateRule.RuleSimple,
 | 
			
		||||
			},
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	finalExpressList := make([]string, 0)
 | 
			
		||||
	for _, itemGroupList := range fieldValidateRule.RuleGroup {
 | 
			
		||||
		expressList := make([]string, 0)
 | 
			
		||||
		for _, itemRule := range itemGroupList {
 | 
			
		||||
			if fieldExpress, err := validatorRuleExpressGenerateFunc(itemRule); nil != err {
 | 
			
		||||
				return "", err
 | 
			
		||||
			} else {
 | 
			
		||||
				expressList = append(expressList, fieldExpress)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		finalExpressList = append(finalExpressList, strings.Join(expressList, ","))
 | 
			
		||||
	}
 | 
			
		||||
	return strings.Join(finalExpressList, "|"), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										15
									
								
								v10/init.go
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								v10/init.go
									
									
									
									
									
								
							@ -12,6 +12,9 @@ import "git.zhangdeman.cn/gateway/validator/v10/abstract"
 | 
			
		||||
// validatorRuleExpressGenerateFunc 验证规则表达式生成方法
 | 
			
		||||
var validatorRuleExpressGenerateFunc abstract.IValidateRuleGenerateFunc = DefaultValidateRuleGenerateFunc
 | 
			
		||||
 | 
			
		||||
// validatorRuleExpressGenerateFunc 字段验证规则生成默认表达式
 | 
			
		||||
var fieldValidatorRuleExpressGenerateFunc abstract.IFieldValidateRuleGenerateFunc = DefaultFieldValidateRuleGenerateFunc
 | 
			
		||||
 | 
			
		||||
// SetValidatorRuleExpressGenerateFunc 使用自定义的验证规则表达式函数覆盖默认的函数
 | 
			
		||||
//
 | 
			
		||||
// Author : go_developer@163.com<白茶清欢>
 | 
			
		||||
@ -23,3 +26,15 @@ func SetValidatorRuleExpressGenerateFunc(generateFunc abstract.IValidateRuleGene
 | 
			
		||||
	}
 | 
			
		||||
	validatorRuleExpressGenerateFunc = generateFunc
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// SetFieldValidatorRuleExpressGenerateFunc 字段默认表达式生成规则
 | 
			
		||||
//
 | 
			
		||||
// Author : go_developer@163.com<白茶清欢>
 | 
			
		||||
//
 | 
			
		||||
// Date : 11:56 2025/1/24
 | 
			
		||||
func SetFieldValidatorRuleExpressGenerateFunc(generateFunc abstract.IFieldValidateRuleGenerateFunc) {
 | 
			
		||||
	if nil == generateFunc {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	fieldValidatorRuleExpressGenerateFunc = generateFunc
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user