error.go 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. /*
  2. @Time : 2019-06-26 16:21
  3. @Author : zr
  4. @File : error
  5. @Software: GoLand
  6. */
  7. package errors
  8. import (
  9. "fmt"
  10. "gitee.com/zr233/bsf/errors"
  11. )
  12. type ErrorCode int
  13. const (
  14. CodeUNKNOWN = ErrorCode(errors.ErrorCode_Unknown)
  15. CodeSUCCESS ErrorCode = 0
  16. CodeBusy ErrorCode = 1
  17. CodeServiceNotAvailable ErrorCode = 2
  18. CodeKeyNotExist ErrorCode = 3
  19. CodePermissionDenied ErrorCode = 1004
  20. CodePasswordErr ErrorCode = 1006
  21. CodeTokenErr ErrorCode = 1010
  22. CodeNoRecord ErrorCode = 1014
  23. BirthdayErr ErrorCode = 1036
  24. StaticHrErr ErrorCode = 1037
  25. CodeParamErr ErrorCode = 5000
  26. CodeDATABASE ErrorCode = 9000
  27. CodeREDIS ErrorCode = 10000
  28. CodeUserErr ErrorCode = 9001
  29. CodeParam = ErrorCode(errors.CodeParam)
  30. )
  31. var (
  32. ErrStaticHr = NewServiceErr(StaticHrErr, "会员年龄太小,请重新输入用户生日。")
  33. ErrBirthday = NewServiceErr(BirthdayErr, "用户生日不得大于当前年份,请重新输入")
  34. )
  35. func (e ErrorCode) ShowMsg() string {
  36. switch e {
  37. case CodeSUCCESS:
  38. return "执行成功"
  39. case CodePasswordErr:
  40. return "密码错误"
  41. case CodeTokenErr:
  42. return "登录失效"
  43. default:
  44. return fmt.Sprintf("系统错误[%d],请联系管理员", e)
  45. }
  46. }
  47. func NewParamErr(err error) error {
  48. return errors.NewParamErr(err)
  49. }
  50. func FromError(err error) (stdErr *errors.StandardError) {
  51. return errors.NewFromError(err, errors.ErrorCode(CodeUNKNOWN))
  52. }
  53. func NewFromError(err error, code ErrorCode) (stdErr *errors.StandardError) {
  54. return errors.NewFromError(err, errors.ErrorCode(code))
  55. }
  56. func FromParamErr(paramName string, err error) (stdErr *errors.StandardError) {
  57. err = fmt.Errorf("参数名: %s, %w", paramName, err)
  58. return NewFromError(err, CodeParam)
  59. }
  60. func NewServiceErr(code ErrorCode, msg string) (stdErr *errors.StandardError) {
  61. err := fmt.Errorf(msg)
  62. return NewFromError(err, code)
  63. }