update code define
This commit is contained in:
		@ -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
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user