升级exception, 简化逻辑
This commit is contained in:
63
code.go
63
code.go
@@ -9,7 +9,6 @@ package exception
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -18,13 +17,13 @@ var (
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 20:53 2022/6/25
|
||||
codeTable map[interface{}]Code
|
||||
codeTable map[any]Code
|
||||
codeList []Code
|
||||
)
|
||||
|
||||
func init() {
|
||||
// 规避没调用 InitCodeTable 导致空指针
|
||||
codeTable = make(map[interface{}]Code)
|
||||
codeTable = make(map[any]Code)
|
||||
codeList = make([]Code, 0)
|
||||
}
|
||||
|
||||
@@ -33,12 +32,13 @@ func init() {
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 20:55 2022/6/25
|
||||
func InitCodeTableWithMessage(table map[interface{}]map[string]string, convertDefaultSuccessCode interface{}, convertDefaultLanguage string) {
|
||||
func InitCodeTableWithMessage(table map[any]map[string]string, convertDefaultSuccessCode any, convertDefaultLanguage string) {
|
||||
for code, message := range table {
|
||||
c := Code{
|
||||
Value: code,
|
||||
Message: message,
|
||||
Reason: make([]*CodeReason, 0),
|
||||
Reason: make(map[string]string),
|
||||
Resolve: make(map[string]string),
|
||||
}
|
||||
|
||||
codeTable[code] = c
|
||||
@@ -59,23 +59,11 @@ func InitCodeTableWithMessage(table map[interface{}]map[string]string, convertDe
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 16:19 2023/6/9
|
||||
func InitCodeTableWithCodeList(list []Code, convertDefaultSuccessCode interface{}, convertDefaultLanguage string) {
|
||||
func InitCodeTableWithCodeList(list []Code, convertDefaultSuccessCode any, convertDefaultLanguage string) {
|
||||
codeList = list
|
||||
for _, itemCode := range list {
|
||||
if nil == itemCode.Reason {
|
||||
itemCode.Reason = make([]*CodeReason, 0)
|
||||
}
|
||||
|
||||
for lang, _ := range itemCode.Message {
|
||||
for _, itemReason := range itemCode.Reason {
|
||||
if _, exist := itemReason.Reason[lang]; !exist {
|
||||
continue
|
||||
}
|
||||
if _, exist := itemReason.Solution[lang]; !exist {
|
||||
itemReason.Solution[lang] = make([]string, 0)
|
||||
}
|
||||
}
|
||||
|
||||
itemCode.Reason = make(map[string]string)
|
||||
}
|
||||
|
||||
codeTable[itemCode.Value] = itemCode
|
||||
@@ -93,10 +81,8 @@ func InitCodeTableWithCodeList(list []Code, convertDefaultSuccessCode interface{
|
||||
var (
|
||||
// messageWithCode 自动在message文案后追加状态码
|
||||
messageWithCode = true
|
||||
// defaultHttpCode 默认的http状态码
|
||||
defaultHttpCode = http.StatusOK
|
||||
// defaultSuccessCode 默认代表成功的状态码
|
||||
defaultSuccessCode interface{}
|
||||
defaultSuccessCode any
|
||||
// defaultLanguage 默认的语言
|
||||
defaultLanguage = "zh"
|
||||
)
|
||||
@@ -110,39 +96,34 @@ func MessageWithoutCode() {
|
||||
messageWithCode = false
|
||||
}
|
||||
|
||||
// getMessage 根据code获取文案
|
||||
// GetMessage 根据code获取文案
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 21:16 2022/6/25
|
||||
func getMessage(code interface{}, defaultMessage ...string) string {
|
||||
inputCodeInfo, exist := codeTable[code]
|
||||
if !exist {
|
||||
func GetMessage(code any, defaultMessage ...string) string {
|
||||
var (
|
||||
inputCodeInfo Code
|
||||
exist bool
|
||||
)
|
||||
if inputCodeInfo, exist = codeTable[code]; !exist {
|
||||
// 错误码不存在
|
||||
if len(defaultMessage) > 0 && len(defaultMessage[0]) > 0 {
|
||||
return defaultMessage[0]
|
||||
}
|
||||
// 无论是否开启 messageWithCode , 未知错误强行带 code
|
||||
return fmt.Sprintf("未知错误【%v】", code)
|
||||
return fmt.Sprintf("unknown error【%v】", code)
|
||||
}
|
||||
if code == defaultSuccessCode {
|
||||
// 请求成功, 一直不带状态码后缀
|
||||
return inputCodeInfo.Message[defaultLanguage]
|
||||
}
|
||||
if messageWithCode {
|
||||
if code == defaultSuccessCode {
|
||||
// 请求成功, 一直不带状态码后缀
|
||||
return inputCodeInfo.Message[defaultLanguage]
|
||||
}
|
||||
return fmt.Sprintf(inputCodeInfo.Message[defaultLanguage]+"【%v】", code)
|
||||
}
|
||||
return inputCodeInfo.Message[defaultLanguage]
|
||||
}
|
||||
|
||||
// GetMessage 获取消息信息
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 12:58 2022/6/26
|
||||
func GetMessage(code interface{}, defaultMessage ...string) string {
|
||||
return getMessage(code, defaultMessage...)
|
||||
}
|
||||
|
||||
// GetCodeList ...
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
@@ -157,6 +138,6 @@ func GetCodeList() []Code {
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 18:05 2023/6/9
|
||||
func GetCodeTable() map[interface{}]Code {
|
||||
func GetCodeTable() map[any]Code {
|
||||
return codeTable
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user