Files
hyapi-server/internal/infrastructure/external/jiyi/jiyi_errors.go
2026-07-22 17:15:33 +08:00

120 lines
2.8 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
}