package command import ( "fmt" "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/domain" "reflect" "strings" "github.com/beego/beego/v2/core/validation" ) type ChangePasswordCommand struct { //操作人 Operator domain.Operator `json:"-"` // 手机号 Phone string `cname:"手机号" json:"phone" valid:"Required"` // 短信验证码 SmsCode string `cname:"短信验证码" json:"smsCode" valid:"Required"` // 新密码 NewPassword string `cname:"新密码" json:"newPassword" valid:"Required"` // 旧密码 OldPassword string `cname:"旧密码" json:"oldPassword" valid:"Required"` } func (phoneAuthChangePasswordCommand *ChangePasswordCommand) Valid(validation *validation.Validation) { } func (phoneAuthChangePasswordCommand *ChangePasswordCommand) ValidateCommand() error { valid := validation.Validation{} b, err := valid.Valid(phoneAuthChangePasswordCommand) if err != nil { return err } if !b { elem := reflect.TypeOf(phoneAuthChangePasswordCommand).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 }