Files
hyapi-server/internal/infrastructure/external/jiyi/jiyi_errors.go

120 lines
2.8 KiB
Go
Raw Normal View History

2026-07-22 17:15:33 +08:00
package jiyi
import (
"errors"
"fmt"
)
// 平台层 code 返回码
const (
CodeSuccess = 0 // 成功
CodeResponseError = -1 // 异常
)
// 业务层 busiCode 返回码(洞侦等接口通用)
const (
BusiCodeSuccess = 10 // 查询成功
BusiCodeNotFound = 1000 // 未查得
BusiCodeSignError = 1005 // 签名异常
BusiCodeDataRequestError = 1007 // 数据请求异常
BusiCodeParamError = 1010 // 参数错误
BusiCodeUnknown = -1 // 未知错误
)
var (
ErrDatasource = errors.New("数据源异常")
ErrSystem = errors.New("系统异常")
ErrNotFound = errors.New("查询为空")
)
var platformCodeDesc = map[int]string{
CodeSuccess: "成功",
CodeResponseError: "异常",
}
var busiCodeDesc = map[int]string{
BusiCodeSuccess: "查询成功",
BusiCodeNotFound: "未查得",
BusiCodeSignError: "签名异常",
BusiCodeDataRequestError: "数据请求异常",
BusiCodeParamError: "参数错误",
BusiCodeUnknown: "未知错误",
}
// GetPlatformCodeDesc 根据平台 code 获取描述
func GetPlatformCodeDesc(code int) string {
if desc, ok := platformCodeDesc[code]; ok {
return desc
}
return ""
}
// GetBusiCodeDesc 根据 busiCode 获取描述
func GetBusiCodeDesc(busiCode int) string {
if desc, ok := busiCodeDesc[busiCode]; ok {
return desc
}
return ""
}
type jiyiError struct {
Code int
Message string
}
func (e *jiyiError) Error() string {
return fmt.Sprintf("集奕返回错误code: %dmsg: %s", e.Code, e.Message)
}
// NewJiyiError 创建平台层错误
func NewJiyiError(code int, message string) *jiyiError {
if message == "" {
if desc := GetPlatformCodeDesc(code); desc != "" {
message = desc
} else {
message = "集奕返回未知错误"
}
}
return &jiyiError{Code: code, Message: message}
}
type jiyiBusiError struct {
BusiCode int
BusiMsg string
}
func (e *jiyiBusiError) Error() string {
return fmt.Sprintf("集奕业务错误busiCode: %dbusiMsg: %s", e.BusiCode, e.BusiMsg)
}
// NewJiyiBusiError 创建业务层错误
func NewJiyiBusiError(busiCode int, busiMsg string) *jiyiBusiError {
if busiMsg == "" {
if desc := GetBusiCodeDesc(busiCode); desc != "" {
busiMsg = desc
} else {
busiMsg = "集奕业务返回未知错误"
}
}
return &jiyiBusiError{BusiCode: busiCode, BusiMsg: busiMsg}
}
// GetErrByBusiCode 将 busiCode 映射为内部哨兵错误
func GetErrByBusiCode(busiCode int) error {
if busiCode == BusiCodeSuccess {
return nil
}
if busiCode == BusiCodeNotFound {
return ErrNotFound
}
return ErrDatasource
}
// GetErrByPlatformCode 将平台 code 映射为内部哨兵错误
func GetErrByPlatformCode(code int) error {
if code == CodeSuccess {
return nil
}
return ErrDatasource
}