package command import ( "fmt" "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/domain" "reflect" "strings" "github.com/beego/beego/v2/core/validation" ) type CompanySignUpCommand struct { // 企业名称 CompanyName string `cname:"企业名称" json:"companyName" valid:"Required"` // 联系人 Contacts string `cname:"联系人" json:"userName" valid:"Required"` // 手机号码 Phone string `cname:"手机号码" json:"phone" valid:"Required"` // 规模 Scale string `cname:"规模" json:"scale" valid:"Required"` // 所属行业 IndustryCategory string `cname:"所属行业" json:"industryCategory" valid:"Required"` // 密码 Password string `cname:"密码" json:"password" valid:"Required"` // 短信验证码 SmsCode string `cname:"短信验证码" json:"smsCode" valid:"Required"` // 法人 LegalPerson string `cname:"法人" json:"legalPerson" valid:"Required"` // 社会信用代码 SocialCreditCode string `cname:"社会信用代码" json:"socialCreditCode" valid:"Required"` // 营业执照所在地 BusinessLicenseAddress domain.BusinessLicenseAddress `cname:"营业执照所在地" json:"businessLicenseAddress" valid:"Required"` // 营业执照-附件 BusinessLicenseAttachments []domain.Attachment `cname:"营业执照-附件" json:"businessLicenseAttachments" valid:"Required"` } func (companySignUpCommand *CompanySignUpCommand) Valid(validation *validation.Validation) { //validation.SetError("CustomValid", "未实现的自定义认证") } func (companySignUpCommand *CompanySignUpCommand) ValidateCommand() error { valid := validation.Validation{} b, err := valid.Valid(companySignUpCommand) if err != nil { return err } if !b { elem := reflect.TypeOf(companySignUpCommand).Elem() for _, validErr := range valid.Errors { field, isExist := elem.FieldByName(validErr.Field) if isExist { return fmt.Errorf(strings.Replace(validErr.Message, validErr.Field, field.Tag.Get("cname"), -1)) } else { return fmt.Errorf(validErr.Message) } } } return nil }