This commit is contained in:
2024-10-13 20:52:47 +08:00
parent 534500eb32
commit c35864c47b
39 changed files with 2243 additions and 291 deletions

View File

@@ -54,7 +54,90 @@ type FLXGDEC7Request struct {
IDCard string `json:"id_card" validate:"required,validIDCard"`
Name string `json:"name" validate:"required,min=1,validName"`
}
type IVYZ0B03Request struct {
}
type IVYZ385ERequest struct {
IDCard string `json:"id_card" validate:"required,validIDCard"`
Name string `json:"name" validate:"required,min=1,validName"`
}
type IVYZ5733Request struct {
Name string `json:"name" validate:"required,min=1,validName"`
IDCard string `json:"id_card" validate:"required,validIDCard"`
}
type IVYZ9363Request struct {
ManName string `json:"man_name" validate:"required,min=1,validName"`
ManIDCard string `json:"man_id_card" validate:"required,validIDCard"`
WomanName string `json:"woman_name" validate:"required,min=1,validName"`
WomanIDCard string `json:"woman_id_card" validate:"required,validIDCard"`
}
type JRZQ0A03Request struct {
MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"`
IDCard string `json:"id_card" validate:"required,validIDCard"`
Name string `json:"name" validate:"required,min=1,validName"`
}
type JRZQ4AA8Request struct {
MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"`
IDCard string `json:"id_card" validate:"required,validIDCard"`
Name string `json:"name" validate:"required,min=1,validName"`
}
type JRZQ8203Request struct {
MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"`
IDCard string `json:"id_card" validate:"required,validIDCard"`
Name string `json:"name" validate:"required,min=1,validName"`
}
type JRZQDBCERequest struct {
MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"`
IDCard string `json:"id_card" validate:"required,validIDCard"`
BankCard string `json:"bank_card" validate:"required,validBankCard"`
Name string `json:"name" validate:"required,min=1,validName"`
}
type QYGL2ACDRequest struct {
EntName string `json:"ent_name" validate:"required,min=1,validName"`
LegalPerson string `json:"legal_person" validate:"required,min=1,validName"`
EntCode string `json:"ent_code" validate:"required,validUSCI"`
}
type QYGL6F2DRequest struct {
IDCard string `json:"id_card" validate:"required,validIDCard"`
}
type QYGL45BDRequest struct {
EntName string `json:"ent_name" validate:"required,min=1,validName"`
LegalPerson string `json:"legal_person" validate:"required,min=1,validName"`
EntCode string `json:"ent_code" validate:"required,validUSCI"`
IDCard string `json:"id_card" validate:"required,validIDCard"`
}
type QYGL8261Request struct {
EntName string `json:"ent_name" validate:"required,min=1,validName"`
}
type QYGLB4C0Request struct {
IDCard string `json:"id_card" validate:"required,validIDCard"`
}
type YYSY4B37Request struct {
MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"`
}
type YYSY6F2ERequest struct {
MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"`
MobileType string `json:"mobile_type" validate:"omitempty,validMobileType"`
IDCard string `json:"id_card" validate:"required,validIDCard"`
Name string `json:"name" validate:"required,min=1,validName"`
}
type YYSY09CDRequest struct {
MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"`
MobileType string `json:"mobile_type" validate:"omitempty,validMobileType"`
IDCard string `json:"id_card" validate:"required,validIDCard"`
Name string `json:"name" validate:"required,min=1,validName"`
}
type YYSYBE08Request struct {
MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"`
Name string `json:"name" validate:"required,min=1,validName"`
}
type YYSYD50FRequest struct {
MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"`
IDCard string `json:"id_card" validate:"required,validIDCard"`
}
type YYSYF7DBRequest struct {
MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"`
StartDate string `json:"start_date" validate:"required,validDate"`
}

View File

@@ -38,6 +38,18 @@ func init() {
if err := validate.RegisterValidation("validTimeRange", validTimeRange); err != nil {
panic(fmt.Sprintf("注册 validTimeRange 验证器时发生错误: %v", err))
}
if err := validate.RegisterValidation("validBankCard", validBankCard); err != nil {
panic(fmt.Sprintf("注册 validBankCard 验证器时发生错误: %v", err))
}
if err := validate.RegisterValidation("validUSCI", validUSCI); err != nil {
panic(fmt.Sprintf("注册 validUSCI 验证器时发生错误: %v", err))
}
if err := validate.RegisterValidation("validMobileType", validMobileType); err != nil {
panic(fmt.Sprintf("注册 validMobileType 验证器时发生错误: %v", err))
}
}
// ValidateAndParse 封装了解密、解析和校验逻辑
@@ -110,3 +122,35 @@ func validTimeRange(fl validator.FieldLevel) bool {
}
return true
}
func validBankCard(fl validator.FieldLevel) bool {
bankCard := fl.Field().String()
// 银行卡号一般是13到19位的数字
validBankCardPattern := `^\d{13,19}$`
matched, _ := regexp.MatchString(validBankCardPattern, bankCard)
return matched
}
func validUSCI(fl validator.FieldLevel) bool {
usci := fl.Field().String()
// 社会信用代码为18位数字和大写字母的组合最后一位为校验码
validUSCIPattern := `^[1-9A-Z]{2}[0-9]{6}[0-9A-Z]{9}[0-9A-Z]$`
matched, _ := regexp.MatchString(validUSCIPattern, usci)
return matched
}
// 自定义的手机号类型验证(可以为空)
func validMobileType(fl validator.FieldLevel) bool {
mobileType := fl.Field().String()
if mobileType == "" {
return true // 如果为空,认为是有效的
}
// 校验是否是 CTCC, CMCC, CUCC 之一
validTypes := map[string]bool{
"CTCC": true, // 中国电信
"CMCC": true, // 中国移动
"CUCC": true, // 中国联通
}
return validTypes[mobileType]
}