mirror of
https://github.com/xxjwxc/public.git
synced 2025-09-27 04:06:03 +08:00
101 lines
1.9 KiB
Go
101 lines
1.9 KiB
Go
/*
|
|
消息定义接口
|
|
*/
|
|
package message
|
|
|
|
import (
|
|
"fmt"
|
|
"sync"
|
|
|
|
"github.com/xxjwxc/public/mylog"
|
|
)
|
|
|
|
// MessageBody 消息头
|
|
type MessageBody struct {
|
|
State bool `json:"state"`
|
|
Code int `json:"code,omitempty"`
|
|
Error string `json:"error,omitempty"`
|
|
Data interface{} `json:"data,omitempty"`
|
|
}
|
|
|
|
func init() {
|
|
_tryRegisteryCode(NormalMessageID)
|
|
_tryRegisteryCode(NotFindError)
|
|
}
|
|
|
|
//GetErrorMsg 获取错误消息 参数(int,string)
|
|
func GetErrorMsg(errorCode ...interface{}) (msg MessageBody) {
|
|
if len(errorCode) == 0 {
|
|
mylog.ErrorString("unknow")
|
|
msg.State = false
|
|
msg.Code = -1
|
|
return
|
|
}
|
|
msg.State = false
|
|
for _, e := range errorCode {
|
|
switch v := e.(type) {
|
|
case int:
|
|
msg.Code = int(v)
|
|
msg.Error = ErrCode(v).String()
|
|
case ErrCode:
|
|
_tryRegisteryCode(v)
|
|
msg.Code = int(v)
|
|
msg.Error = v.String()
|
|
case string:
|
|
msg.Error = string(v)
|
|
case error:
|
|
msg.Error = v.Error()
|
|
default:
|
|
msg.Error = fmt.Sprintf("Unknow type:(%v)", e)
|
|
}
|
|
}
|
|
return
|
|
}
|
|
|
|
// GetSuccessMsg 成功消息
|
|
func GetSuccessMsg(codes ...ErrCode) (msg MessageBody) {
|
|
code := NormalMessageID
|
|
if len(codes) > 0 {
|
|
code = codes[0]
|
|
}
|
|
_tryRegisteryCode(code)
|
|
|
|
msg.State = true
|
|
msg.Code = int(code)
|
|
msg.Error = code.String()
|
|
return
|
|
}
|
|
|
|
// GetError 获取错误信息
|
|
func GetError(code ErrCode) error {
|
|
go _tryRegisteryCode(code)
|
|
return fmt.Errorf(code.String())
|
|
}
|
|
|
|
//GetErrorStrMsg 获取错误消息 参数(int,string)
|
|
func GetErrorStrMsg(errorCode string) (msg MessageBody) {
|
|
// if k, ok := _MessageMap[errorCode]; ok {
|
|
// return GetErrorMsg(k)
|
|
// }
|
|
|
|
msg.State = false
|
|
msg.Code = _tryGetCodeID(errorCode)
|
|
msg.Error = errorCode
|
|
return
|
|
}
|
|
|
|
var _mp sync.Map
|
|
|
|
func _tryRegisteryCode(code ErrCode) {
|
|
_mp.LoadOrStore(code.String(), int(code))
|
|
}
|
|
|
|
func _tryGetCodeID(codeStr string) int {
|
|
v, ok := _mp.Load(codeStr)
|
|
if ok {
|
|
return v.(int)
|
|
}
|
|
|
|
return -1
|
|
}
|