package cms import ( "fmt" "gopkg.in/go-playground/validator.v9" "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/model" ) var ( unitNamesMap map[string]int specUnitNamesMap map[string]int validate = validator.New() ) func init() { unitNamesMap = jxutils.MakeValidationMapFromSlice(model.UnitNames, 1) specUnitNamesMap = jxutils.MakeValidationMapFromSlice(model.SpecUnitNames, 1) } func validateStringInMap(name string, value interface{}, flagMap map[string]int) (err error) { if strValue, ok := value.(string); ok { if flagMap[strValue] == 1 { return nil } } return fmt.Errorf("属性%s类型或取值不合法,要求string", name) } func ValidateUnit(value interface{}) (err error) { return validateStringInMap("Unit", value, unitNamesMap) } func ValidateSpecUnit(value interface{}) (err error) { return validateStringInMap("SpecUnit", value, specUnitNamesMap) } func ValidateStruct(value interface{}) (err error) { return validate.Struct(value) } func ValidateVar(value interface{}, tag string) (err error) { return validate.Var(value, tag) } func ValidateStructPartial(value interface{}, fields ...string) (err error) { return validate.StructPartial(value, fields...) }