exc_enums.go 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. package exception
  2. import stringUtils "eta/eta_mini_ht_api/common/utils/string"
  3. type EtaError struct {
  4. ErrorCode int
  5. ErrorMsg string
  6. Exception string
  7. }
  8. func (e *EtaError) Error() string {
  9. return e.ErrorMsg
  10. }
  11. const (
  12. // SysErrCode 系统错误
  13. SysErrCode int = iota + 10000 // iota 自动递增,从 1 开始
  14. UnknownError
  15. Unauthorized
  16. SysError
  17. )
  18. // BIZErrCode 业务错误
  19. const (
  20. BIZErrCode int = iota + 20000 // iota 自动递增,从 1 开始
  21. //短信
  22. IllegalCodeLength
  23. IllegalPhoneNumber
  24. SMSCodeGenerateFailed
  25. SendingSMSFailed
  26. SMSCodeAlreadySent
  27. SMSCodeExpired
  28. SMSCodeError
  29. GetAreaCodesFailed
  30. AnalystNotFound
  31. IllegalAreaCode
  32. MediaTypeError
  33. GetAnalystListFailed
  34. BatchFollowingAnalystFailed
  35. )
  36. // UserErrCode 用户
  37. const (
  38. UserErrCode int = iota + 30000 // iota 自动递增,从 1 开始
  39. TemplateUserNotFound
  40. TemplateUserFoundFailed
  41. TemplateUserCreateFailed
  42. TemplateUserBindFailed
  43. GenerateTokenFailed
  44. JWTTokenDecodeFailed
  45. LogoutFailed
  46. JWTTokenExpired
  47. JWTTokenInvalid
  48. NotCurrentUserError
  49. FeedBackMsgEmpty
  50. FeedBackError
  51. IllegalFollowType
  52. UserFollowAnalystFailed
  53. GetNoticeFileError
  54. GetDisclaimerFileError
  55. AnalystNameEmptyError
  56. IllegalAnalystIdError
  57. GetFollowingAnalystListFailed
  58. TransferFollowingAnalystListFailed
  59. GetUserUnReadMsgFailed
  60. IllegalMessageId
  61. IllegalAnalystId
  62. ReadMessageFailed
  63. BindMobileFailed
  64. CheckFollowStatusByNamesFailed
  65. RiskUnTestError
  66. RiskExpiredError
  67. )
  68. // WechatErrCode 微信
  69. const (
  70. WechatErrCode int = iota + 40000 // iota 自动递增,从 1 开始
  71. WeChatServerError
  72. WeChatResponseError
  73. WechatUserInfoFailed
  74. WeChatCodeEmpty
  75. WeChatIllegalRequest
  76. )
  77. const (
  78. ReportErrCode int = iota + 50000 // iota 自动递增,从 1 开始
  79. GetPublishedRandListFailed
  80. GetPermissionListFailed
  81. ReportRecordClickCountFailed
  82. MediaRecordClickCountFailed
  83. GetHotRandListFailed
  84. QueryReportPageFailed
  85. SearchReportPageFailed
  86. GetReportFailed
  87. GetReportSearchRangeFailed
  88. SearchKeyEmptyError
  89. ReportRiskLevelUnSet
  90. )
  91. const (
  92. MediaErrCode int = iota + 60000 // iota 自动递增,从 1 开始
  93. MediaFoundFailed
  94. GetMediaListFailed
  95. GetAnalystMediaListFailed
  96. )
  97. const (
  98. MerchantErrCode int = iota + 70000
  99. ProductInfoError
  100. IllegalProductId
  101. )
  102. const (
  103. WebhookErrCode int = iota + 80000
  104. SyncRiskError
  105. )
  106. // ErrorMap 用于存储错误码和错误信息的映射
  107. var ErrorMap = map[int]string{
  108. SysError: "系统异常",
  109. UnknownError: "未知错误",
  110. Unauthorized: "用户未授权",
  111. IllegalCodeLength: "无效的验证码位数设置",
  112. IllegalPhoneNumber: "无效的手机号码",
  113. SMSCodeGenerateFailed: "生成手机验证码失败",
  114. SendingSMSFailed: "发送手机验证码失败",
  115. SMSCodeAlreadySent: "当前手机验证码已发送,请稍后再试",
  116. SMSCodeExpired: "验证码已过期",
  117. SMSCodeError: "验证码错误",
  118. AnalystNotFound: "研究员不存在",
  119. GetAreaCodesFailed: "获取手机区号失败",
  120. IllegalAreaCode: "无效的区号",
  121. MediaTypeError: "媒体类型非法",
  122. GetAnalystListFailed: "获取研究员列表失败",
  123. //用户
  124. TemplateUserNotFound: "临时用户记录不存在",
  125. LogoutFailed: "退出登录失败",
  126. TemplateUserFoundFailed: "查询临时用户表失败",
  127. TemplateUserCreateFailed: "创建临时用户失败",
  128. TemplateUserBindFailed: "临时用户绑定小程序失败",
  129. GenerateTokenFailed: "创建token失败",
  130. JWTTokenDecodeFailed: "token解析失败",
  131. JWTTokenExpired: "token已过期",
  132. JWTTokenInvalid: "token无效",
  133. NotCurrentUserError: "用户信息不一致,非当前手机用户操作",
  134. FeedBackMsgEmpty: "反馈信息不能为空",
  135. FeedBackError: "提交反馈信息失败",
  136. IllegalFollowType: "无效的关注类型",
  137. UserFollowAnalystFailed: "关注研究员失败",
  138. GetNoticeFileError: "获取注册须知失败",
  139. GetDisclaimerFileError: "获取免责声明失败",
  140. AnalystNameEmptyError: "研究员姓名不能为空",
  141. GetFollowingAnalystListFailed: "获取关注研究员列表失败",
  142. TransferFollowingAnalystListFailed: "转换关注研究员列表失败",
  143. GetUserUnReadMsgFailed: "获取未读消息列表失败",
  144. IllegalMessageId: "非法的消息ID",
  145. ReadMessageFailed: "已读消息失败",
  146. IllegalAnalystId: "研究员Id非法",
  147. CheckFollowStatusByNamesFailed: "获取关注猪状态失败",
  148. BatchFollowingAnalystFailed: "批量关注研究员列表失败",
  149. RiskUnTestError: "客户未做风险测评",
  150. RiskExpiredError: "客户风险测评已过期",
  151. //微信
  152. WeChatServerError: "微信服务器发生错误",
  153. WechatUserInfoFailed: "获取微信用户信息失败",
  154. WeChatResponseError: "解析微信响应数据失败",
  155. WeChatCodeEmpty: "微信获取用户信息,code不能为空",
  156. WeChatIllegalRequest: "不合法的微信请求",
  157. //研报
  158. GetPublishedRandListFailed: "获取已发布研报列表失败",
  159. GetPermissionListFailed: "获取品种列表失败",
  160. ReportRecordClickCountFailed: "添加点击访问次数失败",
  161. MediaRecordClickCountFailed: "添加媒体点击访问次数失败",
  162. GetHotRandListFailed: "获取热门研报列表失败",
  163. QueryReportPageFailed: "分页查询报告列表失败",
  164. SearchReportPageFailed: "分页搜索报告列表失败",
  165. GetReportFailed: "获取研报详情失败",
  166. GetReportSearchRangeFailed: "设置报告搜索范围失败",
  167. SearchKeyEmptyError: "搜索关键字不能为空",
  168. ReportRiskLevelUnSet: "报告未设置风险等级",
  169. //媒体
  170. MediaFoundFailed: "查询媒体信息失败",
  171. GetMediaListFailed: "查询媒体列表失败",
  172. GetAnalystMediaListFailed: "查询研究员媒体列表失败",
  173. BindMobileFailed: "绑定手机号失败",
  174. //商户
  175. ProductInfoError: "获取商品信息失败",
  176. IllegalProductId: "非法的产品ID",
  177. //webhook
  178. SyncRiskError: "同步风险等级失败",
  179. }
  180. func Equals(code int, message string) bool {
  181. if stringUtils.IsEmptyOrNil(message) {
  182. return false
  183. }
  184. return ErrorMap[code] == message
  185. }
  186. func GetMsg(code int) string {
  187. return ErrorMap[code]
  188. }
  189. func newException(code int, msg string) error {
  190. return &EtaError{
  191. ErrorCode: code,
  192. ErrorMsg: msg,
  193. }
  194. }
  195. func newExceptionWithOrgMsg(code int, msg string, exception string) error {
  196. return &EtaError{
  197. ErrorCode: code,
  198. ErrorMsg: msg,
  199. Exception: exception,
  200. }
  201. }
  202. func New(code int) *EtaError {
  203. err := ErrorMap[code]
  204. if stringUtils.IsBlank(err) {
  205. return newException(UnknownError, ErrorMap[UnknownError]).(*EtaError)
  206. }
  207. return newException(code, err).(*EtaError)
  208. }
  209. func NewWithException(code int, exception string) *EtaError {
  210. err := ErrorMap[code]
  211. if stringUtils.IsBlank(err) {
  212. return newException(UnknownError, ErrorMap[UnknownError]).(*EtaError)
  213. }
  214. return newExceptionWithOrgMsg(code, err, exception).(*EtaError)
  215. }