package svc import ( "applet/app/e" "applet/app/utils" "applet/app/utils/logx" "encoding/json" "fmt" "github.com/go-playground/validator/v10" ) func HandleValidateErr(err error) error { switch err.(type) { case *json.UnmarshalTypeError: return e.NewErr(e.ERR_UNMARSHAL, "参数格式错误") case validator.ValidationErrors: errs := err.(validator.ValidationErrors) transMsgMap := errs.Translate(utils.ValidatorTrans) // utils.ValidatorTrans \app\utils\validator_err_trans.go::ValidatorTransInit初始化获得 transMsgOne := transMsgMap[GetOneKeyOfMapString(transMsgMap)] return e.NewErr(e.ERR_INVALID_ARGS, transMsgOne) default: _ = logx.Error(err) return e.NewErr(e.ERR, fmt.Sprintf("validate request params, err:%v\n", err)) } } // GetOneKeyOfMapString 取出Map的一个key func GetOneKeyOfMapString(collection map[string]string) string { for k := range collection { return k } return "" }