update code define
This commit is contained in:
parent
cd1454d34d
commit
be993da6db
@ -19,10 +19,6 @@ type IException interface {
|
|||||||
GetCode() interface{}
|
GetCode() interface{}
|
||||||
// GetMessage *获取错误信息
|
// GetMessage *获取错误信息
|
||||||
GetMessage() string
|
GetMessage() string
|
||||||
// GetRealReason 获取真实失败原因
|
|
||||||
GetRealReason() string
|
|
||||||
// GetSolution 获取解决方案
|
|
||||||
GetSolution() map[string]interface{}
|
|
||||||
// GetData 获取异常时的返回数据
|
// GetData 获取异常时的返回数据
|
||||||
GetData() interface{}
|
GetData() interface{}
|
||||||
// GetHttpCode *获取当前异常要返回的http状态码, 不设置则 默认 200
|
// GetHttpCode *获取当前异常要返回的http状态码, 不设置则 默认 200
|
||||||
|
67
code.go
67
code.go
@ -36,11 +36,14 @@ func init() {
|
|||||||
func InitCodeTableWithMessage(table map[interface{}]map[string]string, convertDefaultSuccessCode interface{}, convertDefaultLanguage string) {
|
func InitCodeTableWithMessage(table map[interface{}]map[string]string, convertDefaultSuccessCode interface{}, convertDefaultLanguage string) {
|
||||||
for code, message := range table {
|
for code, message := range table {
|
||||||
c := Code{
|
c := Code{
|
||||||
Value: code,
|
Value: code,
|
||||||
Message: message,
|
Message: message,
|
||||||
Reason: message,
|
Reason: []*CodeReason{&CodeReason{
|
||||||
Solution: map[string]interface{}{},
|
Reason: message,
|
||||||
|
Solution: map[string][]string{},
|
||||||
|
}},
|
||||||
}
|
}
|
||||||
|
|
||||||
codeTable[code] = c
|
codeTable[code] = c
|
||||||
codeList = append(codeList, c)
|
codeList = append(codeList, c)
|
||||||
}
|
}
|
||||||
@ -62,8 +65,34 @@ func InitCodeTableWithMessage(table map[interface{}]map[string]string, convertDe
|
|||||||
func InitCodeTableWithCodeList(list []Code, convertDefaultSuccessCode interface{}, convertDefaultLanguage string) {
|
func InitCodeTableWithCodeList(list []Code, convertDefaultSuccessCode interface{}, convertDefaultLanguage string) {
|
||||||
codeList = list
|
codeList = list
|
||||||
for _, itemCode := range list {
|
for _, itemCode := range list {
|
||||||
if itemCode.Reason == nil || len(itemCode.Reason) == 0 {
|
if nil == itemCode.Reason {
|
||||||
itemCode.Reason = itemCode.Message
|
itemCode.Reason = []*CodeReason{
|
||||||
|
{
|
||||||
|
Reason: map[string]string{},
|
||||||
|
Solution: map[string][]string{},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if nil == itemCode.Reason {
|
||||||
|
itemCode.Reason = make([]*CodeReason, 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, itemReason := range itemCode.Reason {
|
||||||
|
if nil == itemReason.Solution {
|
||||||
|
itemReason.Solution = make(map[string][]string)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, itemReason := range itemCode.Reason {
|
||||||
|
for lang, _ := range itemReason.Reason {
|
||||||
|
if _, exist := itemReason.Solution[lang]; !exist {
|
||||||
|
itemReason.Solution[lang] = make([]string, 0)
|
||||||
|
}
|
||||||
|
if nil == itemReason.Solution[lang] {
|
||||||
|
itemReason.Solution[lang] = make([]string, 0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
codeTable[itemCode.Value] = itemCode
|
codeTable[itemCode.Value] = itemCode
|
||||||
}
|
}
|
||||||
@ -147,29 +176,3 @@ func GetCodeList() []Code {
|
|||||||
func GetCodeTable() map[interface{}]Code {
|
func GetCodeTable() map[interface{}]Code {
|
||||||
return codeTable
|
return codeTable
|
||||||
}
|
}
|
||||||
|
|
||||||
// getReason 获取真实失败原因描述
|
|
||||||
//
|
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
|
||||||
//
|
|
||||||
// Date : 18:09 2023/6/9
|
|
||||||
func getReason(code interface{}) string {
|
|
||||||
inputCodeInfo, exist := codeTable[code]
|
|
||||||
if !exist {
|
|
||||||
return getMessage(code, "")
|
|
||||||
}
|
|
||||||
return inputCodeInfo.Reason[defaultLanguage]
|
|
||||||
}
|
|
||||||
|
|
||||||
// getSolution 获取解决方案
|
|
||||||
//
|
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
|
||||||
//
|
|
||||||
// Date : 18:10 2023/6/9
|
|
||||||
func getSolution(code interface{}) map[string]interface{} {
|
|
||||||
inputCodeInfo, exist := codeTable[code]
|
|
||||||
if !exist {
|
|
||||||
return map[string]interface{}{}
|
|
||||||
}
|
|
||||||
return inputCodeInfo.Solution
|
|
||||||
}
|
|
||||||
|
@ -15,7 +15,7 @@ package exception
|
|||||||
type Code struct {
|
type Code struct {
|
||||||
Value interface{} `json:"value"` // 状态码的值
|
Value interface{} `json:"value"` // 状态码的值
|
||||||
Message map[string]string `json:"message"` // 状态码对应的文案(key -> 语言 , value -> 对应语言的描述)
|
Message map[string]string `json:"message"` // 状态码对应的文案(key -> 语言 , value -> 对应语言的描述)
|
||||||
Reason *CodeReason `json:"reason"` // 产生此错误码的原因描述(key -> 语言 , value -> 对应语言的描述)
|
Reason []*CodeReason `json:"reason"` // 产生此错误码的原因描述(key -> 语言 , value -> 对应语言的描述)
|
||||||
}
|
}
|
||||||
|
|
||||||
// CodeReason 错误码的原因
|
// CodeReason 错误码的原因
|
||||||
@ -24,6 +24,6 @@ type Code struct {
|
|||||||
//
|
//
|
||||||
// Date : 00:31 2023/11/5
|
// Date : 00:31 2023/11/5
|
||||||
type CodeReason struct {
|
type CodeReason struct {
|
||||||
Reason string `json:"reason"` // 错误原因
|
Reason map[string]string `json:"reason"` // 错误原因: 语言 => 原因
|
||||||
Solution []string `json:"solution"` // 解决步骤
|
Solution map[string][]string `json:"solution"` // 解决步骤. 语言 => 解决步骤
|
||||||
}
|
}
|
||||||
|
@ -36,14 +36,6 @@ func (e *Exception) GetMessage() string {
|
|||||||
return e.message
|
return e.message
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *Exception) GetRealReason() string {
|
|
||||||
return getReason(e.GetCode())
|
|
||||||
}
|
|
||||||
|
|
||||||
func (e *Exception) GetSolution() map[string]interface{} {
|
|
||||||
return getSolution(e.GetCode())
|
|
||||||
}
|
|
||||||
|
|
||||||
func (e *Exception) GetData() interface{} {
|
func (e *Exception) GetData() interface{} {
|
||||||
return e.data
|
return e.data
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user