exc_enums.go 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  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. SearchReportPageFailed
  55. GetReportFailed
  56. SearchKeyEmptyError
  57. )
  58. // ErrorMap 用于存储错误码和错误信息的映射
  59. var ErrorMap = map[int]string{
  60. UnknownError: "未知错误",
  61. Unauthorized: "用户未授权",
  62. IllegalCodeLength: "无效的验证码位数设置",
  63. IllegalPhoneNumber: "无效的手机号码",
  64. SMSCodeGenerateFailed: "生成手机验证码失败",
  65. SendingSMSFailed: "发送手机验证码失败",
  66. SMSCodeAlreadySent: "当前手机验证码已发送,请稍后再试",
  67. SMSCodeExpired: "验证码已过期",
  68. SMSCodeError: "验证码错误",
  69. //用户
  70. TemplateUserNotFound: "临时用户记录不存在",
  71. TemplateUserCreateFailed: "创建临时用户失败",
  72. GenerateTokenFailed: "创建token失败",
  73. JWTTokenDecodeFailed: "token解析失败",
  74. JWTTokenExpired: "token已过期",
  75. JWTTokenInvalid: "token无效",
  76. //微信
  77. WeChatServerError: "微信服务器发生错误",
  78. WechatUserInfoFailed: "获取微信用户信息失败",
  79. WeChatResponseError: "解析微信响应数据失败",
  80. WeChatCodeEmpty: "微信获取用户信息,code不能为空",
  81. WeChatIllegalRequest: "不合法的微信请求",
  82. //研报
  83. GetPublishedRandListFailed: "获取已发布研报列表失败",
  84. GetPermissionListFailed: "获取品种列表失败",
  85. ReportRecordClickCountFailed: "添加点击访问次数失败",
  86. GetHotRandListFailed: "获取热门研报列表失败",
  87. QueryReportPageFailed: "分页查询报告列表失败",
  88. SearchReportPageFailed: "分页搜索报告列表失败",
  89. GetReportFailed: "获取研报详情失败",
  90. SearchKeyEmptyError: "搜索关键字不能为空",
  91. }
  92. func Equals(code int, message string) bool {
  93. if stringUtils.IsEmptyOrNil(message) {
  94. return false
  95. }
  96. return ErrorMap[code] == message
  97. }
  98. func GetMsg(code int) string {
  99. return ErrorMap[code]
  100. }
  101. func newException(code int, msg string) error {
  102. return &EtaError{
  103. ErrorCode: code,
  104. ErrorMsg: msg,
  105. }
  106. }
  107. func New(code int) *EtaError {
  108. err := ErrorMap[code]
  109. if stringUtils.IsBlank(err) {
  110. return newException(UnknownError, ErrorMap[UnknownError]).(*EtaError)
  111. }
  112. return newException(code, err).(*EtaError)
  113. }