systemerr.go 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package taxerr
  2. type SystemErr struct {
  3. Msg string
  4. }
  5. func (t *SystemErr) Error() string {
  6. return t.Msg
  7. }
  8. func (t *SystemErr) Is(err error) bool {
  9. e, ok := err.(*SystemErr)
  10. return ok && e.Msg == t.Msg
  11. }
  12. func New(msg string) *SystemErr {
  13. return &SystemErr{
  14. Msg: msg,
  15. }
  16. }
  17. func NewSystemV3(errmsg, prompt string) *SystemErr {
  18. return &SystemErr{
  19. Msg: `<span>[异常]:` + errmsg + `</span><br />[操作]:` + prompt,
  20. }
  21. }
  22. /*错误规范
  23. *1.结尾不带符号
  24. *2.表明确错误信息,做到让不懂会计的也能看懂,报表问题按税局提示即可
  25. *3.第一句提示错误原因,之后提示办法 例如 网页请求超时,请稍后重试
  26. *4.通用错误例如超时,找不到报表等,优先使用定义好的错误
  27. *5.需要明确提示错误信息,用New() NewUser()方法自定义 例如 NewUser("手机号不一致,税局为xxx,系统为xxx")
  28. */
  29. var TimeOut = New("请求超时,请稍后重试")
  30. var LaunchBrowserFail = New("打开浏览器失败,请联系运维人员处理")
  31. type WebsiteType string
  32. const (
  33. Tax WebsiteType = "税局" //税局和发票平台都用这个
  34. Bank WebsiteType = "银行" //银行采集
  35. Business WebsiteType = "工商" //工商年报
  36. OtherSoftware WebsiteType = "其他软件"
  37. )
  38. // 税局卡顿统一提示
  39. func NewWebStuckTitle(cscsts bool) *SystemErr {
  40. if cscsts {
  41. return NewSystemV3("电子税局网页卡顿", "系统将于30分钟后重试(可在\"通用设置\"关闭)")
  42. } else {
  43. return NewSystemV3("电子税局网页卡顿", "请稍后重试(可在\"通用设置\"配置自动重试)")
  44. }
  45. }
  46. // 税局卡顿统一提示
  47. func NewWebStuckTitleForErr(err string, cscsts bool) *SystemErr {
  48. if cscsts {
  49. return NewSystemV3(err, "系统将于30分钟后重试(可在\"通用设置\"关闭)")
  50. } else {
  51. return NewSystemV3(err, "请稍后重试(可在\"通用设置\"配置自动重试)")
  52. }
  53. }
  54. var ContactDevHanding = NewWebStuckTitle(false)
  55. var InvoiceAuth = NewUserV3("当前企业办税员无电票平台登录权限!", "请切换有电票平台登录权限的办税员或法定代表人后重试。")
  56. func ErrorCompanyName(ErrName string) *SystemErr {
  57. return NewSystemV3(`无法登录电子税局,公司名称与税局不同,税局为`+ErrName+`。`, `[操作]:请在“企业信息”修改后重试!`)
  58. }
  59. func ErrorCompanyNameDppt(ErrName, comName string) *UserErr {
  60. //return NewUserV3(`无法登录全电发票平台,公司名称不一致,平台为`+ErrName+`。`, `[操作]:请在“企业信息”修改后重试!`)
  61. return NewUserV3(`企业名称与税局不符,税局内名称为:`+ErrName+`,系统内为`+comName, `请在“企业信息”里修改企业名称"`)
  62. }
  63. var PilotTaxpayer = NewUserV3(`您不是电子发票服务平台用票试点纳税人`, `请前往增值税发票综合服务平台办理相关业务`)
  64. var TickAuthenticationDppt = NewUserV3(`税局未勾选确认进项发票!`, `请在税局勾选认证进项发票后重新发起采集!`)