exc_enums.go 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292
  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. QueryRiskMappingError
  18. IllegalConfigType
  19. GetConfigValueFailed
  20. )
  21. // BIZErrCode 业务错误
  22. const (
  23. BIZErrCode int = iota + 20000 // iota 自动递增,从 1 开始
  24. //短信
  25. IllegalCodeLength
  26. IllegalPhoneNumber
  27. SMSCodeGenerateFailed
  28. SendingSMSFailed
  29. SMSCodeAlreadySent
  30. SMSCodeExpired
  31. SMSCodeError
  32. GetAreaCodesFailed
  33. AnalystNotFound
  34. IllegalAreaCode
  35. MediaTypeError
  36. GetAnalystListFailed
  37. BatchFollowingAnalystFailed
  38. )
  39. // UserErrCode 用户
  40. const (
  41. UserErrCode int = iota + 30000 // iota 自动递增,从 1 开始
  42. TemplateUserNotFound
  43. TemplateUserFoundFailed
  44. IllegalTemplateUserId
  45. TemplateUserCreateFailed
  46. TemplateUserBindFailed
  47. GenerateTokenFailed
  48. JWTTokenDecodeFailed
  49. LoginFailed
  50. LogoutFailed
  51. JWTTokenExpired
  52. JWTTokenInvalid
  53. NotCurrentUserError
  54. FeedBackMsgEmpty
  55. FeedBackError
  56. IllegalFollowType
  57. UserFollowAnalystFailed
  58. GetNoticeFileError
  59. GetDisclaimerFileError
  60. AnalystNameEmptyError
  61. IllegalAnalystIdError
  62. GetFollowingAnalystListFailed
  63. TransferFollowingAnalystListFailed
  64. GetUserUnReadMsgFailed
  65. IllegalMessageId
  66. IllegalAnalystId
  67. ReadMessageFailed
  68. BindMobileFailed
  69. CheckFollowStatusByNamesFailed
  70. RiskUnTestError
  71. RiskExpiredError
  72. RiskUnMatchError
  73. OfficialUserFoundError
  74. OfficialUserNotFound
  75. SubscribeFailed
  76. GenerateOrderNoFailed
  77. IllegalOrderNo
  78. GetOrderListFailed
  79. GetOrderDetailFailed
  80. )
  81. // WechatErrCode 微信
  82. const (
  83. WechatErrCode int = iota + 40000 // iota 自动递增,从 1 开始
  84. WeChatServerError
  85. WeChatResponseError
  86. WechatUserInfoFailed
  87. WeChatCodeEmpty
  88. WeChatIllegalRequest
  89. )
  90. const (
  91. ReportErrCode int = iota + 50000 // iota 自动递增,从 1 开始
  92. GetPublishedRandListFailed
  93. GetPermissionListFailed
  94. ReportRecordClickCountFailed
  95. MediaRecordClickCountFailed
  96. GetHotRandListFailed
  97. QueryReportPageFailed
  98. SearchReportPageFailed
  99. GetReportFailed
  100. GetReportSearchRangeFailed
  101. SearchKeyEmptyError
  102. ReportRiskLevelUnSet
  103. )
  104. const (
  105. MediaErrCode int = iota + 60000 // iota 自动递增,从 1 开始
  106. MediaFoundFailed
  107. GetMediaListFailed
  108. GetAnalystMediaListFailed
  109. )
  110. const (
  111. MerchantErrCode int = iota + 70000
  112. ProductInfoError
  113. IllegalProductId
  114. IllegalProductOrderId
  115. MerchantInfoNotConfig
  116. )
  117. const (
  118. WebhookErrCode int = iota + 80000
  119. SyncRiskError
  120. GetCapTokenFailed
  121. GetCustomerRiskInfoFailed
  122. GenerateRiskTestTokenFailed
  123. )
  124. const (
  125. OrderErrorCode int = iota + 90000
  126. IllegalOrderStatus
  127. OrderPayTimeoutError
  128. )
  129. const (
  130. ProductErrorCode int = iota + 100000
  131. ProductOffSale
  132. )
  133. const (
  134. PaymentErrCode int = iota + 110000
  135. CreatePaymentOrderFailed
  136. PaymentProcessingError
  137. PaymentDoneError
  138. )
  139. // ErrorMap 用于存储错误码和错误信息的映射
  140. var ErrorMap = map[int]string{
  141. SysError: "系统异常",
  142. UnknownError: "未知错误",
  143. Unauthorized: "用户未授权",
  144. QueryRiskMappingError: "查询风险等级映射设置错误",
  145. IllegalCodeLength: "无效的验证码位数设置",
  146. IllegalPhoneNumber: "无效的手机号码",
  147. SMSCodeGenerateFailed: "生成手机验证码失败",
  148. SendingSMSFailed: "发送手机验证码失败",
  149. SMSCodeAlreadySent: "当前手机验证码已发送,请稍后再试",
  150. SMSCodeExpired: "验证码已过期",
  151. SMSCodeError: "验证码错误",
  152. AnalystNotFound: "研究员不存在",
  153. GetAreaCodesFailed: "获取手机区号失败",
  154. IllegalAreaCode: "无效的区号",
  155. MediaTypeError: "媒体类型非法",
  156. GetAnalystListFailed: "获取研究员列表失败",
  157. IllegalConfigType: "不合法的配置项值类型",
  158. GetConfigValueFailed: "配置获取失败",
  159. //用户
  160. TemplateUserNotFound: "临时用户记录不存在",
  161. LogoutFailed: "退出登录失败",
  162. LoginFailed: "登录失败",
  163. TemplateUserFoundFailed: "查询临时用户表失败",
  164. IllegalTemplateUserId: "不合法的临时用户ID",
  165. TemplateUserCreateFailed: "创建临时用户失败",
  166. TemplateUserBindFailed: "临时用户绑定小程序失败",
  167. GenerateTokenFailed: "创建token失败",
  168. JWTTokenDecodeFailed: "token解析失败",
  169. JWTTokenExpired: "token已过期",
  170. JWTTokenInvalid: "token无效",
  171. NotCurrentUserError: "用户信息不一致,非当前手机用户操作",
  172. FeedBackMsgEmpty: "反馈信息不能为空",
  173. FeedBackError: "提交反馈信息失败",
  174. IllegalFollowType: "无效的关注类型",
  175. UserFollowAnalystFailed: "关注研究员失败",
  176. GetNoticeFileError: "获取注册须知失败",
  177. GetDisclaimerFileError: "获取免责声明失败",
  178. AnalystNameEmptyError: "研究员姓名不能为空",
  179. GetFollowingAnalystListFailed: "获取关注研究员列表失败",
  180. TransferFollowingAnalystListFailed: "转换关注研究员列表失败",
  181. GetUserUnReadMsgFailed: "获取未读消息列表失败",
  182. IllegalMessageId: "非法的消息ID",
  183. ReadMessageFailed: "已读消息失败",
  184. IllegalAnalystId: "研究员Id非法",
  185. CheckFollowStatusByNamesFailed: "获取关注猪状态失败",
  186. BatchFollowingAnalystFailed: "批量关注研究员列表失败",
  187. RiskUnTestError: "客户未做风险测评",
  188. RiskExpiredError: "客户风险测评已过期",
  189. RiskUnMatchError: "客户风险测评不匹配",
  190. OfficialUserFoundError: "获取正式用户信息失败",
  191. OfficialUserNotFound: "用户未开户",
  192. SubscribeFailed: "订阅失败",
  193. GenerateOrderNoFailed: "生成订单号",
  194. IllegalOrderNo: "非法的商品订单号",
  195. GetOrderListFailed: "获取产品订单列表失败",
  196. GetOrderDetailFailed: "获取订单详情失败",
  197. //微信
  198. WeChatServerError: "微信服务器发生错误",
  199. WechatUserInfoFailed: "获取微信用户信息失败",
  200. WeChatResponseError: "解析微信响应数据失败",
  201. WeChatCodeEmpty: "微信获取用户信息,code不能为空",
  202. WeChatIllegalRequest: "不合法的微信请求",
  203. //研报
  204. GetPublishedRandListFailed: "获取已发布研报列表失败",
  205. GetPermissionListFailed: "获取品种列表失败",
  206. ReportRecordClickCountFailed: "添加点击访问次数失败",
  207. MediaRecordClickCountFailed: "添加媒体点击访问次数失败",
  208. GetHotRandListFailed: "获取热门研报列表失败",
  209. QueryReportPageFailed: "分页查询报告列表失败",
  210. SearchReportPageFailed: "分页搜索报告列表失败",
  211. GetReportFailed: "获取研报详情失败",
  212. GetReportSearchRangeFailed: "设置报告搜索范围失败",
  213. SearchKeyEmptyError: "搜索关键字不能为空",
  214. ReportRiskLevelUnSet: "报告未设置风险等级",
  215. //媒体
  216. MediaFoundFailed: "查询媒体信息失败",
  217. GetMediaListFailed: "查询媒体列表失败",
  218. GetAnalystMediaListFailed: "查询研究员媒体列表失败",
  219. BindMobileFailed: "绑定手机号失败",
  220. //商户
  221. ProductInfoError: "获取商品信息失败",
  222. IllegalProductId: "非法的产品ID",
  223. IllegalProductOrderId: "非法的产品订单ID",
  224. MerchantInfoNotConfig: "商户信息未配置",
  225. //webhook
  226. SyncRiskError: "同步风险等级失败",
  227. GetCapTokenFailed: "获取cap token失败",
  228. GenerateRiskTestTokenFailed: "生成风险测评token失败",
  229. GetCustomerRiskInfoFailed: "查询客户风险信息失败",
  230. //order
  231. IllegalOrderStatus: "非法的订单状态",
  232. OrderPayTimeoutError: "订单支付超时",
  233. //product
  234. ProductOffSale: "商品已下架",
  235. //支付
  236. CreatePaymentOrderFailed: "创建支付订单失败",
  237. PaymentProcessingError: "支付订单处理中",
  238. PaymentDoneError: "订单已完成支付",
  239. }
  240. func Equals(code int, message string) bool {
  241. if stringUtils.IsEmptyOrNil(message) {
  242. return false
  243. }
  244. return ErrorMap[code] == message
  245. }
  246. func GetMsg(code int) string {
  247. return ErrorMap[code]
  248. }
  249. func newException(code int, msg string) error {
  250. return &EtaError{
  251. ErrorCode: code,
  252. ErrorMsg: msg,
  253. }
  254. }
  255. func newExceptionWithOrgMsg(code int, msg string, exception string) error {
  256. return &EtaError{
  257. ErrorCode: code,
  258. ErrorMsg: msg,
  259. Exception: exception,
  260. }
  261. }
  262. func New(code int) *EtaError {
  263. err := ErrorMap[code]
  264. if stringUtils.IsBlank(err) {
  265. return newException(UnknownError, ErrorMap[UnknownError]).(*EtaError)
  266. }
  267. return newException(code, err).(*EtaError)
  268. }
  269. func NewWithException(code int, exception string) *EtaError {
  270. err := ErrorMap[code]
  271. if stringUtils.IsBlank(err) {
  272. return newException(UnknownError, ErrorMap[UnknownError]).(*EtaError)
  273. }
  274. return newExceptionWithOrgMsg(code, err, exception).(*EtaError)
  275. }