f
This commit is contained in:
@@ -78,10 +78,13 @@ func RegisterCustomValidators(validate *validator.Validate) {
|
||||
// 非空字符串验证器(不能为空字符串或只包含空格)
|
||||
validate.RegisterValidation("notEmpty", validateNotEmpty)
|
||||
|
||||
// 授权日期验证器
|
||||
// 授权日期验证器(格式 YYYYMMDD-YYYYMMDD,且范围必须包含今天)
|
||||
validate.RegisterValidation("auth_date", validateAuthDate)
|
||||
validate.RegisterValidation("validAuthDate", validateAuthDate)
|
||||
|
||||
// 日期范围验证器(格式 YYYYMMDD-YYYYMMDD,开始≤结束,不要求包含今天)
|
||||
validate.RegisterValidation("validDateRange", validateDateRange)
|
||||
|
||||
// 授权书URL验证器
|
||||
validate.RegisterValidation("authorization_url", validateAuthorizationURL)
|
||||
|
||||
@@ -312,6 +315,32 @@ func validateAuthDate(fl validator.FieldLevel) bool {
|
||||
return !startDate.After(today) && !endDate.Before(today)
|
||||
}
|
||||
|
||||
// validateDateRange 日期范围验证器
|
||||
// 格式:YYYYMMDD-YYYYMMDD,开始日期不能晚于结束日期(不要求范围包含今天)
|
||||
func validateDateRange(fl validator.FieldLevel) bool {
|
||||
s := fl.Field().String()
|
||||
if s == "" {
|
||||
return true
|
||||
}
|
||||
parts := strings.Split(s, "-")
|
||||
if len(parts) != 2 {
|
||||
return false
|
||||
}
|
||||
startStr, endStr := parts[0], parts[1]
|
||||
if len(startStr) != 8 || len(endStr) != 8 {
|
||||
return false
|
||||
}
|
||||
startDate, err := parseYYYYMMDD(startStr)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
endDate, err := parseYYYYMMDD(endStr)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
return !startDate.After(endDate)
|
||||
}
|
||||
|
||||
// parseYYYYMMDD 解析YYYYMMDD格式的日期字符串
|
||||
func parseYYYYMMDD(dateStr string) (time.Time, error) {
|
||||
if len(dateStr) != 8 {
|
||||
|
||||
Reference in New Issue
Block a user