package command import ( "fmt" "reflect" "strings" "github.com/beego/beego/v2/core/validation" ) type UserSignUpCommand struct { // 企业名称 Name string `cname:"用户姓名" json:"userName" valid:"Required"` // 手机号码 Phone string `cname:"手机号码" json:"phone" valid:"Required"` // 密码 Password string `cname:"密码" json:"password" valid:"Required"` // 密码 SmsCode string `cname:"短信验证码" json:"smsCode" valid:"Required"` // 推荐人 Referrer string `cname:"推荐人" json:"referrer"` } func (companySignUpCommand *UserSignUpCommand) Valid(validation *validation.Validation) { //validation.SetError("CustomValid", "未实现的自定义认证") } func (companySignUpCommand *UserSignUpCommand) 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 }