From fcad833e88798634970b9633245d3643e0febb7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Fri, 24 Jan 2025 11:36:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=AA=8C=E8=AF=81=E8=A7=84?= =?UTF-8?q?=E5=88=99=E8=A1=A8=E8=BE=BE=E5=BC=8F=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- v10/abstract/validate_rule.go | 14 ++++++++++++-- v10/default.go | 10 +++++----- v10/define/field_validate.go | 31 +++++++++++++++++++++++++++++++ 3 files changed, 48 insertions(+), 7 deletions(-) create mode 100644 v10/define/field_validate.go diff --git a/v10/abstract/validate_rule.go b/v10/abstract/validate_rule.go index bf0e120..1ae5cc6 100644 --- a/v10/abstract/validate_rule.go +++ b/v10/abstract/validate_rule.go @@ -7,7 +7,10 @@ // Date : 2025-01-23 18:44 package abstract -import "git.zhangdeman.cn/zhangdeman/consts" +import ( + "git.zhangdeman.cn/gateway/validator/v10/define" + "git.zhangdeman.cn/zhangdeman/consts" +) // IValidateRuleGenerateFunc 生成校验规则的方法约束 // @@ -23,4 +26,11 @@ import "git.zhangdeman.cn/zhangdeman/consts" // 返回值说明 // - express: 生成的表达式 // - err: 表达式生成过程中出现的异常 -type IValidateRuleGenerateFunc func(validateRule consts.ValidatorRule, paramList ...any) (express string, err error) +type IValidateRuleGenerateFunc func(ruleConfig define.GenerateRuleExpressConfig) (express string, err error) + +// IFieldValidateRuleGenerateFunc 字段验证规则生成方法 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 11:16 2025/1/24 +type IFieldValidateRuleGenerateFunc func(validateRule consts.ValidatorRule, paramList ...any) (express string, err error) diff --git a/v10/default.go b/v10/default.go index 571e45f..5a4b8dc 100644 --- a/v10/default.go +++ b/v10/default.go @@ -10,7 +10,7 @@ package v10 import ( "errors" "fmt" - "git.zhangdeman.cn/zhangdeman/consts" + "git.zhangdeman.cn/gateway/validator/v10/define" "strings" ) @@ -19,16 +19,16 @@ import ( // Author : go_developer@163.com<白茶清欢> // // Date : 10:33 2025/1/24 -func DefaultValidateRuleGenerateFunc(validateRule consts.ValidatorRule, paramList ...any) (express string, err error) { - ruleConfig := validateRule.Config() +func DefaultValidateRuleGenerateFunc(validateRule define.GenerateRuleExpressConfig) (express string, err error) { + ruleConfig := validateRule.Rule.Config() if len(ruleConfig.ValidatorRule.String()) == 0 { return "", errors.New("validate rule is empty") } - if len(paramList) == 0 { + if len(validateRule.ParamList) == 0 { return ruleConfig.ValidatorRule.String(), nil } paramStrList := make([]string, 0) - for _, param := range paramList { + for _, param := range validateRule.ParamList { paramStrList = append(paramStrList, fmt.Sprintf("%v", param)) } return ruleConfig.ValidatorRule.String() + "=" + strings.Join(paramStrList, " "), nil diff --git a/v10/define/field_validate.go b/v10/define/field_validate.go new file mode 100644 index 0000000..0d93c4b --- /dev/null +++ b/v10/define/field_validate.go @@ -0,0 +1,31 @@ +// Package define ... +// +// Description : define ... +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 2025-01-24 11:21 +package define + +import "git.zhangdeman.cn/zhangdeman/consts" + +// FieldValidateGenerateConfig 字段验证规则生成的配置 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 11:23 2025/1/24 +type FieldValidateGenerateConfig struct { + Field string `json:"field,omitempty"` // 字段 + RuleGroup [][]GenerateRuleExpressConfig `json:"rule_group,omitempty"` // 规则的分组, 同组内为 && 条件, 组之间为 || 条件, 适用于复杂条件配置 + RuleSimple GenerateRuleExpressConfig `json:"rule_simple,omitempty"` // 简单条件配置, 与 RuleGroup 至少配置一个 +} + +// GenerateRuleExpressConfig 生成规则验证表达式的配置 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 11:27 2025/1/24 +type GenerateRuleExpressConfig struct { + Rule consts.ValidatorRule `json:"rule,omitempty"` // 条件配置 + ParamList []any `json:"param_list,omitempty"` // 规则验证的参数列表 +}