error.go 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  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. PicVerifyCodeErr ErrorCode = 1003
  20. CodePermissionDenied ErrorCode = 1004
  21. CodePasswordErr ErrorCode = 1006
  22. UserBan ErrorCode = 1007
  23. CodeTokenErr ErrorCode = 1010
  24. UserNotExists ErrorCode = 1012
  25. CodeNoRecord ErrorCode = 1014
  26. BirthdayErr ErrorCode = 1036
  27. StaticHrErr ErrorCode = 1037
  28. CodeParamErr ErrorCode = 5000
  29. SmsErr ErrorCode = 7000
  30. CodeDATABASE ErrorCode = 9000
  31. CodeREDIS ErrorCode = 10000
  32. HrSensorsTimeOutErr ErrorCode = 30012
  33. JsonToMaptErr ErrorCode = 30013
  34. HrSensorsUpdateErr ErrorCode = 30014
  35. GetDuInfoUpdateErr ErrorCode = 30015
  36. SmsCodeRepeatErr ErrorCode = 30016
  37. AddAppHeartRateErr ErrorCode = 30017
  38. CodeParam = ErrorCode(errors.CodeParam)
  39. )
  40. var (
  41. ErrUserBan = NewServiceErr(UserBan, "用户被禁用")
  42. ErrUserNotExists = NewServiceErr(UserNotExists, "用户不存在")
  43. ErrPicVerifyCode = NewServiceErr(PicVerifyCodeErr, "图形验证码错误")
  44. ErrStaticHr = NewServiceErr(StaticHrErr, "会员年龄太小,请重新输入用户生日。")
  45. ErrBirthday = NewServiceErr(BirthdayErr, "用户生日不得大于当前年份,请重新输入")
  46. ErrJsonToMap = NewServiceErr(JsonToMaptErr, "Json转换Map对象失败")
  47. ErrHrSensorsTimeOut = NewServiceErr(HrSensorsTimeOutErr, "心率系统连接超时")
  48. ErrHrSensorsUpdate = NewServiceErr(HrSensorsUpdateErr, "心率系统更新Sn报错")
  49. ErrAddAppHeartRate = NewServiceErr(AddAppHeartRateErr, "心率系统上报心率报错")
  50. ErrGetDuInfo = NewServiceErr(GetDuInfoUpdateErr, "心率系统查询用户当前显示单元和对应身体信息报错")
  51. ErrSmsCodeRepeat = NewServiceErr(SmsCodeRepeatErr, "短信验证码不能频繁发送")
  52. )
  53. func (e ErrorCode) ShowMsg() string {
  54. switch e {
  55. case CodeSUCCESS:
  56. return "执行成功"
  57. case CodePasswordErr:
  58. return "密码错误"
  59. case CodeTokenErr:
  60. return "登录失效"
  61. default:
  62. return fmt.Sprintf("系统错误[%d],请联系管理员", e)
  63. }
  64. }
  65. func NewParamErr(err error) error {
  66. return errors.NewParamErr(err)
  67. }
  68. func FromError(err error) (stdErr *errors.StandardError) {
  69. return errors.NewFromError(err, errors.ErrorCode(CodeUNKNOWN))
  70. }
  71. func NewFromError(err error, code ErrorCode) (stdErr *errors.StandardError) {
  72. return errors.NewFromError(err, errors.ErrorCode(code))
  73. }
  74. func FromParamErr(paramName string, err error) (stdErr *errors.StandardError) {
  75. err = fmt.Errorf("参数名: %s, %w", paramName, err)
  76. return NewFromError(err, CodeParam)
  77. }
  78. func NewServiceErr(code ErrorCode, msg string) (stdErr *errors.StandardError) {
  79. err := fmt.Errorf(msg)
  80. return NewFromError(err, code)
  81. }