package query import ( "fmt" "reflect" "strings" "github.com/beego/beego/v2/core/validation" ) type GetBlockChainTokenQuery struct { // 操作类型: //1-交易哈希溯源 //2-溯源ID溯源 //3-验真 Type int `cname:"操作类型" json:"type" valid:"Required"` // 参数 UpChainId int `cname:"上链Id" json:"upChainId,omitempty" valid:"Required"` } func (listBlockChain *GetBlockChainTokenQuery) Valid(validation *validation.Validation) { //validation.SetError("CustomValid", "未实现的自定义认证") } func (listBlockChain *GetBlockChainTokenQuery) ValidateQuery() error { valid := validation.Validation{} b, err := valid.Valid(listBlockChain) if err != nil { return err } if !b { elem := reflect.TypeOf(listBlockChain).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 }