增加验证规则的枚举值 #2

Merged
zhangdeman merged 7 commits from feature/validator into master 2025-02-07 20:52:04 +08:00
Showing only changes of commit 18dd06b515 - Show all commits

View File

@ -51,6 +51,10 @@ type ValidatorRuleConfig struct {
ValidatorRule ValidatorRule `json:"validator_rule"` // 验证规则 ValidatorRule ValidatorRule `json:"validator_rule"` // 验证规则
Description string `json:"description"` // 规则描述 Description string `json:"description"` // 规则描述
SupportDataTypeList []DataType `json:"support_data_type_list"` // 支持的数据类型列表 SupportDataTypeList []DataType `json:"support_data_type_list"` // 支持的数据类型列表
MinParamCnt int `json:"min_param_cnt"` // 最小参数数量(闭区间)
MaxParamCnt int `json:"max_param_cnt"` // 最大参数数量(闭区间)
ParamCntMustEven bool `json:"param_cnt_must_even"` // 参数数量必须是偶数
WithoutParam bool `json:"without_param"` // 没有参数, 此值为 true, 忽略 MinParamCnt / MaxParamCnt / ParamCntMustEven
} }
// ValidatorRuleSupportDataTypeTable 验证规则支持的数据类型表 // ValidatorRuleSupportDataTypeTable 验证规则支持的数据类型表
@ -63,196 +67,291 @@ var ValidatorRuleSupportDataTypeTable = map[ValidatorRule]ValidatorRuleConfig{
ValidatorRule: ValidatorRuleEqcsfield, ValidatorRule: ValidatorRuleEqcsfield,
Description: "跨结构体字段相等", Description: "跨结构体字段相等",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
MinParamCnt: 1,
MaxParamCnt: 1,
ParamCntMustEven: false,
}, },
ValidatorRuleEqfield: { ValidatorRuleEqfield: {
ValidatorRule: ValidatorRuleEqfield, ValidatorRule: ValidatorRuleEqfield,
Description: "同结构体字段相等", Description: "同结构体字段相等",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
MinParamCnt: 1,
MaxParamCnt: 1,
ParamCntMustEven: false,
}, },
ValidatorRuleFieldcontains: { ValidatorRuleFieldcontains: {
ValidatorRule: ValidatorRuleFieldcontains, ValidatorRule: ValidatorRuleFieldcontains,
Description: "检查指定的字段值是否存在于字段中", Description: "检查指定的字段值是否存在于字段中",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
MinParamCnt: 1,
MaxParamCnt: 0,
ParamCntMustEven: false,
}, },
ValidatorRuleFieldexcludes: { ValidatorRuleFieldexcludes: {
ValidatorRule: ValidatorRuleFieldexcludes, ValidatorRule: ValidatorRuleFieldexcludes,
Description: "检查指定的字段值是否不存在于字段中", Description: "检查指定的字段值是否不存在于字段中",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
MinParamCnt: 1,
MaxParamCnt: 0,
ParamCntMustEven: false,
}, },
ValidatorRuleGtcsfield: { ValidatorRuleGtcsfield: {
ValidatorRule: ValidatorRuleGtcsfield, ValidatorRule: ValidatorRuleGtcsfield,
Description: "大于(跨结构体)", Description: "大于(跨结构体)",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber),
MinParamCnt: 1,
MaxParamCnt: 1,
ParamCntMustEven: false,
}, },
ValidatorRuleGtecsfield: { ValidatorRuleGtecsfield: {
ValidatorRule: ValidatorRuleGtecsfield, ValidatorRule: ValidatorRuleGtecsfield,
Description: "大于(同结构体)", Description: "大于(同结构体)",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber),
MinParamCnt: 1,
MaxParamCnt: 1,
ParamCntMustEven: false,
}, },
ValidatorRuleGtfield: { ValidatorRuleGtfield: {
ValidatorRule: ValidatorRuleGtfield, ValidatorRule: ValidatorRuleGtfield,
Description: "大于(同结构体)", Description: "大于(同结构体)",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber),
MinParamCnt: 1,
MaxParamCnt: 1,
ParamCntMustEven: false,
}, },
ValidatorRuleGtefield: { ValidatorRuleGtefield: {
ValidatorRule: ValidatorRuleGtefield, ValidatorRule: ValidatorRuleGtefield,
Description: "大于(同结构体)", Description: "大于(同结构体)",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber),
MinParamCnt: 1,
MaxParamCnt: 1,
ParamCntMustEven: false,
}, },
ValidatorRuleLtcsfield: { ValidatorRuleLtcsfield: {
ValidatorRule: ValidatorRuleLtcsfield, ValidatorRule: ValidatorRuleLtcsfield,
Description: "小于(跨结构体)", Description: "小于(跨结构体)",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber),
MinParamCnt: 1,
MaxParamCnt: 1,
ParamCntMustEven: false,
}, },
ValidatorRuleLtecsfield: { ValidatorRuleLtecsfield: {
ValidatorRule: ValidatorRuleLtecsfield, ValidatorRule: ValidatorRuleLtecsfield,
Description: "小于等于(跨结构体)", Description: "小于等于(跨结构体)",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber),
MinParamCnt: 1,
MaxParamCnt: 1,
ParamCntMustEven: false,
}, },
ValidatorRuleLtfield: { ValidatorRuleLtfield: {
ValidatorRule: ValidatorRuleLtfield, ValidatorRule: ValidatorRuleLtfield,
Description: "小于(同结构体)", Description: "小于(同结构体)",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber),
MinParamCnt: 1,
MaxParamCnt: 1,
ParamCntMustEven: false,
}, },
ValidatorRuleLtefield: { ValidatorRuleLtefield: {
ValidatorRule: ValidatorRuleLtefield, ValidatorRule: ValidatorRuleLtefield,
Description: "小于等于(同结构体)", Description: "小于等于(同结构体)",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber),
MinParamCnt: 1,
MaxParamCnt: 1,
ParamCntMustEven: false,
}, },
ValidatorRuleNecsfield: { ValidatorRuleNecsfield: {
ValidatorRule: ValidatorRuleNecsfield, ValidatorRule: ValidatorRuleNecsfield,
Description: "不等于(跨结构体)", Description: "不等于(跨结构体)",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
MinParamCnt: 1,
MaxParamCnt: 1,
ParamCntMustEven: false,
}, },
ValidatorRuleNefield: { ValidatorRuleNefield: {
ValidatorRule: ValidatorRuleNefield, ValidatorRule: ValidatorRuleNefield,
Description: "不等于(同结构体)", Description: "不等于(同结构体)",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
MinParamCnt: 1,
MaxParamCnt: 1,
ParamCntMustEven: false,
}, },
ValidateRuleEq: { ValidateRuleEq: {
ValidatorRule: ValidateRuleEq, ValidatorRule: ValidateRuleEq,
Description: "等于(严格校验)", Description: "等于(严格校验)",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
MinParamCnt: 1,
MaxParamCnt: 1,
ParamCntMustEven: false,
}, },
ValidateRuleEqIgnoreCase: { ValidateRuleEqIgnoreCase: {
ValidatorRule: ValidateRuleEqIgnoreCase, ValidatorRule: ValidateRuleEqIgnoreCase,
Description: "等于(忽略大小写)", Description: "等于(忽略大小写)",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
MinParamCnt: 1,
MaxParamCnt: 1,
ParamCntMustEven: false,
}, },
ValidateRuleGt: { ValidateRuleGt: {
ValidatorRule: ValidateRuleGt, ValidatorRule: ValidateRuleGt,
Description: "大于", Description: "大于",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber),
MinParamCnt: 1,
MaxParamCnt: 0,
ParamCntMustEven: false,
}, },
ValidateRuleGte: { ValidateRuleGte: {
ValidatorRule: ValidateRuleGte, ValidatorRule: ValidateRuleGte,
Description: "大于等于", Description: "大于等于",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber),
MinParamCnt: 1,
MaxParamCnt: 0,
ParamCntMustEven: false,
}, },
ValidateRuleLt: { ValidateRuleLt: {
ValidatorRule: ValidateRuleLt, ValidatorRule: ValidateRuleLt,
Description: "小于", Description: "小于",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber),
MinParamCnt: 1,
MaxParamCnt: 0,
ParamCntMustEven: false,
}, },
ValidateRuleLte: { ValidateRuleLte: {
ValidatorRule: ValidateRuleLte, ValidatorRule: ValidateRuleLte,
Description: "小于等于", Description: "小于等于",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber),
MinParamCnt: 1,
MaxParamCnt: 0,
ParamCntMustEven: false,
}, },
ValidateRuleNe: { ValidateRuleNe: {
ValidatorRule: ValidateRuleNe, ValidatorRule: ValidateRuleNe,
Description: "不等于(严格判断)", Description: "不等于(严格判断)",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
MinParamCnt: 1,
MaxParamCnt: 0,
ParamCntMustEven: false,
}, },
ValidateRuleNeIgnoreCase: { ValidateRuleNeIgnoreCase: {
ValidatorRule: ValidateRuleNeIgnoreCase, ValidatorRule: ValidateRuleNeIgnoreCase,
Description: "不等于(忽略大小写)", Description: "不等于(忽略大小写)",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
MinParamCnt: 1,
MaxParamCnt: 0,
ParamCntMustEven: false,
}, },
ValidatorRuleCommonDir: { ValidatorRuleCommonDir: {
ValidatorRule: ValidatorRuleCommonDir, ValidatorRule: ValidatorRuleCommonDir,
Description: "文件夹存在", Description: "文件夹存在",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
WithoutParam: true,
}, },
ValidatorRuleCommonDirPath: { ValidatorRuleCommonDirPath: {
ValidatorRule: ValidatorRuleCommonDirPath, ValidatorRule: ValidatorRuleCommonDirPath,
Description: "文件夹路径存在", Description: "文件夹路径存在",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
WithoutParam: true,
}, },
ValidatorRuleCommonFile: { ValidatorRuleCommonFile: {
ValidatorRule: ValidatorRuleCommonFile, ValidatorRule: ValidatorRuleCommonFile,
Description: "文件存在", Description: "文件存在",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
WithoutParam: true,
}, },
ValidatorRuleCommonFilepath: { ValidatorRuleCommonFilepath: {
ValidatorRule: ValidatorRuleCommonFilepath, ValidatorRule: ValidatorRuleCommonFilepath,
Description: "文件路径存在", Description: "文件路径存在",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
WithoutParam: true,
}, },
ValidatorRuleCommonImage: { ValidatorRuleCommonImage: {
ValidatorRule: ValidatorRuleCommonImage, ValidatorRule: ValidatorRuleCommonImage,
Description: "是否图像资源", Description: "是否图像资源",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
WithoutParam: true,
}, },
ValidatorRuleCommonIsDefault: { ValidatorRuleCommonIsDefault: {
ValidatorRule: ValidatorRuleCommonIsDefault, ValidatorRule: ValidatorRuleCommonIsDefault,
Description: "是否对应类型默认值", Description: "是否对应类型默认值",
SupportDataTypeList: nil, // 所有类型均支持 SupportDataTypeList: nil, // 所有类型均支持
WithoutParam: true,
}, },
ValidatorRuleCommonLen: { ValidatorRuleCommonLen: {
ValidatorRule: ValidatorRuleCommonLen, ValidatorRule: ValidatorRuleCommonLen,
Description: "数据长度", Description: "数据长度",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal, DataTypeSlice, DataTypeMap), // 所有类型均支持 SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal, DataTypeSlice, DataTypeMap), // 所有类型均支持
MinParamCnt: 1,
MaxParamCnt: 1,
}, },
ValidatorRuleCommonMax: { ValidatorRuleCommonMax: {
ValidatorRule: ValidatorRuleCommonMax, ValidatorRule: ValidatorRuleCommonMax,
Description: "最大值", Description: "最大值",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber),
MinParamCnt: 1,
MaxParamCnt: 1,
}, },
ValidatorRuleCommonMin: { ValidatorRuleCommonMin: {
ValidatorRule: ValidatorRuleCommonMin, ValidatorRule: ValidatorRuleCommonMin,
Description: "最小值", Description: "最小值",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber),
MinParamCnt: 1,
MaxParamCnt: 1,
}, },
ValidatorRuleCommonOneOf: { ValidatorRuleCommonOneOf: {
ValidatorRule: ValidatorRuleCommonOneOf, ValidatorRule: ValidatorRuleCommonOneOf,
Description: "枚举值", Description: "枚举值",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool),
MinParamCnt: 1,
MaxParamCnt: 0,
}, },
ValidatorRuleCommonRequired: { ValidatorRuleCommonRequired: {
ValidatorRule: ValidatorRuleCommonRequired, ValidatorRule: ValidatorRuleCommonRequired,
Description: "必传校验", Description: "必传校验",
SupportDataTypeList: nil, // 所有类型均支持 SupportDataTypeList: nil, // 所有类型均支持
WithoutParam: true,
}, },
ValidatorRuleCommonRequiredIf: { ValidatorRuleCommonRequiredIf: {
ValidatorRule: ValidatorRuleCommonRequiredIf, ValidatorRule: ValidatorRuleCommonRequiredIf,
Description: "当指定字段等于给定值时, 必传校验", Description: "当指定字段等于给定值时, 必传校验",
SupportDataTypeList: nil, // 所有类型均支持 SupportDataTypeList: nil, // 所有类型均支持
MinParamCnt: 2,
MaxParamCnt: 0,
ParamCntMustEven: true,
}, },
ValidatorRuleCommonRequiredUnless: { ValidatorRuleCommonRequiredUnless: {
ValidatorRule: ValidatorRuleCommonRequiredUnless, ValidatorRule: ValidatorRuleCommonRequiredUnless,
Description: "当指定字段不等于给定值时, 必传校验", Description: "当指定字段不等于给定值时, 必传校验",
SupportDataTypeList: nil, // 所有类型均支持 SupportDataTypeList: nil, // 所有类型均支持
MinParamCnt: 2,
MaxParamCnt: 0,
ParamCntMustEven: true,
}, },
ValidatorRuleCommonRequiredWith: { ValidatorRuleCommonRequiredWith: {
ValidatorRule: ValidatorRuleCommonRequiredWith, ValidatorRule: ValidatorRuleCommonRequiredWith,
Description: "当任意一个指定字段不为零值时, 必传校验", Description: "当任意一个指定字段不为零值时, 必传校验",
SupportDataTypeList: nil, // 所有类型均支持 SupportDataTypeList: nil, // 所有类型均支持
MinParamCnt: 1,
MaxParamCnt: 0,
}, },
ValidatorRuleCommonRequiredWithAll: { ValidatorRuleCommonRequiredWithAll: {
ValidatorRule: ValidatorRuleCommonRequiredWithAll, ValidatorRule: ValidatorRuleCommonRequiredWithAll,
Description: "当全部指定字段不为零值时, 必传校验", Description: "当全部指定字段不为零值时, 必传校验",
SupportDataTypeList: nil, // 所有类型均支持 SupportDataTypeList: nil, // 所有类型均支持
MinParamCnt: 1,
MaxParamCnt: 0,
}, },
ValidatorRuleCommonRequiredWithout: { ValidatorRuleCommonRequiredWithout: {
ValidatorRule: ValidatorRuleCommonRequiredWithout, ValidatorRule: ValidatorRuleCommonRequiredWithout,
Description: "当任意一个字段为空时, 必传校验", Description: "当任意一个字段不存在时, 必传校验",
SupportDataTypeList: nil, // 所有类型均支持 SupportDataTypeList: nil, // 所有类型均支持
MinParamCnt: 1,
MaxParamCnt: 0,
}, },
ValidatorRuleCommonRequiredWithoutAll: { ValidatorRuleCommonRequiredWithoutAll: {
ValidatorRule: ValidatorRuleCommonRequiredWithoutAll, ValidatorRule: ValidatorRuleCommonRequiredWithoutAll,
Description: "当全部字段为空时, 必传校验", Description: "当全部字段不存在时, 必传校验",
SupportDataTypeList: nil, // 所有类型均支持 SupportDataTypeList: nil, // 所有类型均支持
MinParamCnt: 1,
MaxParamCnt: 0,
}, },
ValidatorRuleCommonExcludedIf: { ValidatorRuleCommonExcludedIf: {
ValidatorRule: ValidatorRuleCommonExcludedIf, ValidatorRule: ValidatorRuleCommonExcludedIf,
@ -263,86 +362,110 @@ var ValidatorRuleSupportDataTypeTable = map[ValidatorRule]ValidatorRuleConfig{
ValidatorRule: ValidatorRuleCommonExcludedUnless, ValidatorRule: ValidatorRuleCommonExcludedUnless,
Description: "当指定字段等于给定值时,排除校验", Description: "当指定字段等于给定值时,排除校验",
SupportDataTypeList: nil, // 所有类型均支持 SupportDataTypeList: nil, // 所有类型均支持
MinParamCnt: 2,
MaxParamCnt: 0,
ParamCntMustEven: true,
}, },
ValidatorRuleCommonExcludedWith: { ValidatorRuleCommonExcludedWith: {
ValidatorRule: ValidatorRuleCommonExcludedWith, ValidatorRule: ValidatorRuleCommonExcludedWith,
Description: "当全部指定字段不为零值时,排除校验", Description: "当全部指定字段不为零值时,排除校验",
SupportDataTypeList: nil, // 所有类型均支持 SupportDataTypeList: nil, // 所有类型均支持
MinParamCnt: 2,
MaxParamCnt: 0,
ParamCntMustEven: true,
}, },
ValidatorRuleCommonExcludedWithAll: { ValidatorRuleCommonExcludedWithAll: {
ValidatorRule: ValidatorRuleCommonExcludedWithAll, ValidatorRule: ValidatorRuleCommonExcludedWithAll,
Description: "当全部指定字段不为零值时,排除校验", Description: "当全部指定字段不为零值时,排除校验",
SupportDataTypeList: nil, // 所有类型均支持 SupportDataTypeList: nil, // 所有类型均支持
MinParamCnt: 1,
MaxParamCnt: 0,
}, },
ValidatorRuleCommonExcludedWithout: { ValidatorRuleCommonExcludedWithout: {
ValidatorRule: ValidatorRuleCommonExcludedWithout, ValidatorRule: ValidatorRuleCommonExcludedWithout,
Description: "当任意一个指定字段不存在时,排除校验", Description: "当任意一个指定字段不存在时,排除校验",
SupportDataTypeList: nil, // 所有类型均支持 SupportDataTypeList: nil, // 所有类型均支持
MinParamCnt: 1,
MaxParamCnt: 0,
}, },
ValidatorRuleCommonExcludedWithoutAll: { ValidatorRuleCommonExcludedWithoutAll: {
ValidatorRule: ValidatorRuleCommonExcludedWithoutAll, ValidatorRule: ValidatorRuleCommonExcludedWithoutAll,
Description: "当全部指定字段不存在时,排除校验", Description: "当全部指定字段不存在时,排除校验",
SupportDataTypeList: nil, // 所有类型均支持 SupportDataTypeList: nil, // 所有类型均支持
MinParamCnt: 1,
MaxParamCnt: 0,
}, },
ValidatorRuleCommonUnique: { ValidatorRuleCommonUnique: {
ValidatorRule: ValidatorRuleCommonUnique, ValidatorRule: ValidatorRuleCommonUnique,
Description: "是否唯一, 用于切片验证", Description: "是否唯一, 用于切片验证",
SupportDataTypeList: getMergeDataTypeList(DataTypeSlice), // 所有类型均支持 SupportDataTypeList: getMergeDataTypeList(DataTypeSlice), // 所有类型均支持
WithoutParam: true,
}, },
ValidatorRuleFormatterCron: { ValidatorRuleFormatterCron: {
ValidatorRule: ValidatorRuleFormatterCron, ValidatorRule: ValidatorRuleFormatterCron,
Description: "cron表达式验证", Description: "cron表达式验证",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString),
WithoutParam: true,
}, },
ValidatorRuleFormatterEmail: { ValidatorRuleFormatterEmail: {
ValidatorRule: ValidatorRuleFormatterEmail, ValidatorRule: ValidatorRuleFormatterEmail,
Description: "邮箱地址验证", Description: "邮箱地址验证",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString),
WithoutParam: true,
}, },
ValidatorRuleFormatterJson: { ValidatorRuleFormatterJson: {
ValidatorRule: ValidatorRuleFormatterJson, ValidatorRule: ValidatorRuleFormatterJson,
Description: "json格式验证", Description: "json格式验证",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString),
WithoutParam: true,
}, },
ValidatorRuleFormatterJwt: { ValidatorRuleFormatterJwt: {
ValidatorRule: ValidatorRuleFormatterJson, ValidatorRule: ValidatorRuleFormatterJson,
Description: "JWT(JSON Web Token)验证", Description: "JWT(JSON Web Token)验证",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString),
WithoutParam: true,
}, },
ValidatorRuleFormatterLatitude: { ValidatorRuleFormatterLatitude: {
ValidatorRule: ValidatorRuleFormatterLatitude, ValidatorRule: ValidatorRuleFormatterLatitude,
Description: "纬度验证", Description: "纬度验证",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber),
WithoutParam: true,
}, },
ValidatorRuleFormatterLongitude: { ValidatorRuleFormatterLongitude: {
ValidatorRule: ValidatorRuleFormatterLongitude, ValidatorRule: ValidatorRuleFormatterLongitude,
Description: "经度验证", Description: "经度验证",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber),
WithoutParam: true,
}, },
ValidatorRuleFormatterTimezone: { ValidatorRuleFormatterTimezone: {
ValidatorRule: ValidatorRuleFormatterLongitude, ValidatorRule: ValidatorRuleFormatterLongitude,
Description: "时区验证", Description: "时区验证",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString),
WithoutParam: true,
}, },
ValidatorRuleFormatterUrl: { ValidatorRuleFormatterUrl: {
ValidatorRule: ValidatorRuleFormatterUrl, ValidatorRule: ValidatorRuleFormatterUrl,
Description: "url验证", Description: "url验证",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString),
WithoutParam: true,
}, },
ValidatorRuleFormatterUri: { ValidatorRuleFormatterUri: {
ValidatorRule: ValidatorRuleFormatterUrl, ValidatorRule: ValidatorRuleFormatterUrl,
Description: "uri验证", Description: "uri验证",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString),
WithoutParam: true,
}, },
ValidatorRuleFormatterLowercase: { ValidatorRuleFormatterLowercase: {
ValidatorRule: ValidatorRuleFormatterLowercase, ValidatorRule: ValidatorRuleFormatterLowercase,
Description: "仅包含小写字符", Description: "仅包含小写字符",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString),
WithoutParam: true,
}, },
ValidatorRuleFormatterUppercase: { ValidatorRuleFormatterUppercase: {
ValidatorRule: ValidatorRuleFormatterUppercase, ValidatorRule: ValidatorRuleFormatterUppercase,
Description: "仅包含大写字符", Description: "仅包含大写字符",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString),
WithoutParam: true,
}, },
} }