package taxerr type SystemErr struct { Msg string } func (t *SystemErr) Error() string { return t.Msg } func (t *SystemErr) Is(err error) bool { e, ok := err.(*SystemErr) return ok && e.Msg == t.Msg } func New(msg string) *SystemErr { return &SystemErr{ Msg: msg, } } func NewSystemV3(errmsg, prompt string) *SystemErr { return &SystemErr{ Msg: `[异常]:` + errmsg + `
[操作]:` + prompt, } } /*错误规范 *1.结尾不带符号 *2.表明确错误信息,做到让不懂会计的也能看懂,报表问题按税局提示即可 *3.第一句提示错误原因,之后提示办法 例如 网页请求超时,请稍后重试 *4.通用错误例如超时,找不到报表等,优先使用定义好的错误 *5.需要明确提示错误信息,用New() NewUser()方法自定义 例如 NewUser("手机号不一致,税局为xxx,系统为xxx") */ var TimeOut = New("请求超时,请稍后重试") var LaunchBrowserFail = New("打开浏览器失败,请联系运维人员处理") type WebsiteType string const ( Tax WebsiteType = "税局" //税局和发票平台都用这个 Bank WebsiteType = "银行" //银行采集 Business WebsiteType = "工商" //工商年报 OtherSoftware WebsiteType = "其他软件" ) // 税局卡顿统一提示 func NewWebStuckTitle(cscsts bool) *SystemErr { if cscsts { return NewSystemV3("电子税局网页卡顿", "系统将于30分钟后重试(可在\"通用设置\"关闭)") } else { return NewSystemV3("电子税局网页卡顿", "请稍后重试(可在\"通用设置\"配置自动重试)") } } // 税局卡顿统一提示 func NewWebStuckTitleForErr(err string, cscsts bool) *SystemErr { if cscsts { return NewSystemV3(err, "系统将于30分钟后重试(可在\"通用设置\"关闭)") } else { return NewSystemV3(err, "请稍后重试(可在\"通用设置\"配置自动重试)") } } var ContactDevHanding = NewWebStuckTitle(false) var InvoiceAuth = NewUserV3("当前企业办税员无电票平台登录权限!", "请切换有电票平台登录权限的办税员或法定代表人后重试。") func ErrorCompanyName(ErrName string) *SystemErr { return NewSystemV3(`无法登录电子税局,公司名称与税局不同,税局为`+ErrName+`。`, `[操作]:请在“企业信息”修改后重试!`) } func ErrorCompanyNameDppt(ErrName, comName string) *UserErr { //return NewUserV3(`无法登录全电发票平台,公司名称不一致,平台为`+ErrName+`。`, `[操作]:请在“企业信息”修改后重试!`) return NewUserV3(`企业名称与税局不符,税局内名称为:`+ErrName+`,系统内为`+comName, `请在“企业信息”里修改企业名称"`) } var PilotTaxpayer = NewUserV3(`您不是电子发票服务平台用票试点纳税人`, `请前往增值税发票综合服务平台办理相关业务`) var TickAuthenticationDppt = NewUserV3(`税局未勾选确认进项发票!`, `请在税局勾选认证进项发票后重新发起采集!`)