优化验证规则表达式生成
This commit is contained in:
parent
064f5e2c5b
commit
fcad833e88
@ -7,7 +7,10 @@
|
|||||||
// Date : 2025-01-23 18:44
|
// Date : 2025-01-23 18:44
|
||||||
package abstract
|
package abstract
|
||||||
|
|
||||||
import "git.zhangdeman.cn/zhangdeman/consts"
|
import (
|
||||||
|
"git.zhangdeman.cn/gateway/validator/v10/define"
|
||||||
|
"git.zhangdeman.cn/zhangdeman/consts"
|
||||||
|
)
|
||||||
|
|
||||||
// IValidateRuleGenerateFunc 生成校验规则的方法约束
|
// IValidateRuleGenerateFunc 生成校验规则的方法约束
|
||||||
//
|
//
|
||||||
@ -23,4 +26,11 @@ import "git.zhangdeman.cn/zhangdeman/consts"
|
|||||||
// 返回值说明
|
// 返回值说明
|
||||||
// - express: 生成的表达式
|
// - express: 生成的表达式
|
||||||
// - err: 表达式生成过程中出现的异常
|
// - 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)
|
||||||
|
@ -10,7 +10,7 @@ package v10
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"git.zhangdeman.cn/zhangdeman/consts"
|
"git.zhangdeman.cn/gateway/validator/v10/define"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -19,16 +19,16 @@ import (
|
|||||||
// Author : go_developer@163.com<白茶清欢>
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
//
|
//
|
||||||
// Date : 10:33 2025/1/24
|
// Date : 10:33 2025/1/24
|
||||||
func DefaultValidateRuleGenerateFunc(validateRule consts.ValidatorRule, paramList ...any) (express string, err error) {
|
func DefaultValidateRuleGenerateFunc(validateRule define.GenerateRuleExpressConfig) (express string, err error) {
|
||||||
ruleConfig := validateRule.Config()
|
ruleConfig := validateRule.Rule.Config()
|
||||||
if len(ruleConfig.ValidatorRule.String()) == 0 {
|
if len(ruleConfig.ValidatorRule.String()) == 0 {
|
||||||
return "", errors.New("validate rule is empty")
|
return "", errors.New("validate rule is empty")
|
||||||
}
|
}
|
||||||
if len(paramList) == 0 {
|
if len(validateRule.ParamList) == 0 {
|
||||||
return ruleConfig.ValidatorRule.String(), nil
|
return ruleConfig.ValidatorRule.String(), nil
|
||||||
}
|
}
|
||||||
paramStrList := make([]string, 0)
|
paramStrList := make([]string, 0)
|
||||||
for _, param := range paramList {
|
for _, param := range validateRule.ParamList {
|
||||||
paramStrList = append(paramStrList, fmt.Sprintf("%v", param))
|
paramStrList = append(paramStrList, fmt.Sprintf("%v", param))
|
||||||
}
|
}
|
||||||
return ruleConfig.ValidatorRule.String() + "=" + strings.Join(paramStrList, " "), nil
|
return ruleConfig.ValidatorRule.String() + "=" + strings.Join(paramStrList, " "), nil
|
||||||
|
31
v10/define/field_validate.go
Normal file
31
v10/define/field_validate.go
Normal file
@ -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"` // 规则验证的参数列表
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user