exc_enums.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. package exception
  2. import stringUtils "eta_mini_ht_api/common/utils/string"
  3. type EtaError struct {
  4. ErrorCode int
  5. ErrorMsg string
  6. }
  7. func (e *EtaError) Error() string {
  8. return e.ErrorMsg
  9. }
  10. const (
  11. // SysErrCode 系统错误
  12. SysErrCode int = iota + 10000 // iota 自动递增,从 1 开始
  13. UnknownError
  14. Unauthorized
  15. )
  16. // BIZErrCode 业务错误
  17. const (
  18. BIZErrCode int = iota + 20000 // iota 自动递增,从 1 开始
  19. //短信
  20. IllegalCodeLength
  21. IllegalPhoneNumber
  22. SMSCodeGenerateFailed
  23. SendingSMSFailed
  24. SMSCodeAlreadySent
  25. SMSCodeExpired
  26. SMSCodeError
  27. )
  28. // UserErrCode 用户
  29. const (
  30. UserErrCode int = iota + 30000 // iota 自动递增,从 1 开始
  31. TemplateUserNotFound
  32. TemplateUserCreateFailed
  33. GenerateTokenFailed
  34. JWTTokenDecodeFailed
  35. JWTTokenExpired
  36. JWTTokenInvalid
  37. )
  38. // WechatErrCode 微信
  39. const (
  40. WechatErrCode int = iota + 40000 // iota 自动递增,从 1 开始
  41. WeChatServerError
  42. WeChatResponseError
  43. WechatUserInfoFailed
  44. WeChatCodeEmpty
  45. WeChatIllegalRequest
  46. )
  47. const (
  48. ReportErrCode int = iota + 50000 // iota 自动递增,从 1 开始
  49. GetPublishedRandListFailed
  50. GetPermissionListFailed
  51. ReportRecordClickCountFailed
  52. GetHotRandListFailed
  53. QueryReportPageFailed
  54. )
  55. // ErrorMap 用于存储错误码和错误信息的映射
  56. var ErrorMap = map[int]string{
  57. UnknownError: "未知错误",
  58. Unauthorized: "用户未授权",
  59. IllegalCodeLength: "无效的验证码位数设置",
  60. IllegalPhoneNumber: "无效的手机号码",
  61. SMSCodeGenerateFailed: "生成手机验证码失败",
  62. SendingSMSFailed: "发送手机验证码失败",
  63. SMSCodeAlreadySent: "当前手机验证码已发送,请稍后再试",
  64. SMSCodeExpired: "验证码已过期",
  65. SMSCodeError: "验证码错误",
  66. //用户
  67. TemplateUserNotFound: "临时用户记录不存在",
  68. TemplateUserCreateFailed: "创建临时用户失败",
  69. GenerateTokenFailed: "创建token失败",
  70. JWTTokenDecodeFailed: "token解析失败",
  71. JWTTokenExpired: "token已过期",
  72. JWTTokenInvalid: "token无效",
  73. //微信
  74. WeChatServerError: "微信服务器发生错误",
  75. WechatUserInfoFailed: "获取微信用户信息失败",
  76. WeChatResponseError: "解析微信响应数据失败",
  77. WeChatCodeEmpty: "微信获取用户信息,code不能为空",
  78. WeChatIllegalRequest: "不合法的微信请求",
  79. //研报
  80. GetPublishedRandListFailed: "获取已发布研报列表失败",
  81. GetPermissionListFailed: "获取品种列表失败",
  82. ReportRecordClickCountFailed: "添加点击访问次数失败",
  83. GetHotRandListFailed: "获取热门研报列表失败",
  84. QueryReportPageFailed: "分页查询报告列表失败",
  85. }
  86. func Equals(code int, message string) bool {
  87. if stringUtils.IsEmptyOrNil(message) {
  88. return false
  89. }
  90. return ErrorMap[code] == message
  91. }
  92. func GetMsg(code int) string {
  93. return ErrorMap[code]
  94. }
  95. func newException(code int, msg string) error {
  96. return &EtaError{
  97. ErrorCode: code,
  98. ErrorMsg: msg,
  99. }
  100. }
  101. func New(code int) *EtaError {
  102. err := ErrorMap[code]
  103. if stringUtils.IsBlank(err) {
  104. return newException(UnknownError, ErrorMap[UnknownError]).(*EtaError)
  105. }
  106. return newException(code, err).(*EtaError)
  107. }