err_code.go 1.2 KB
package xerr

import "fmt"

const (
	// OK 成功返回
	OK uint32 = 200
)

// 全局错误码
// 系统错误前3位代表业务,后三位代表具体功能
const (
	ServerCommonError         uint32 = 100001 // 系统错误
	RequestParamError         uint32 = 100002 // 参数请求错误
	TokenExpireError          uint32 = 100003 // token失效
	TokenGenerateError        uint32 = 100004 // 生成token失败
	DbError                   uint32 = 100005 // 数据库错误
	DbUpdateAffectedZeroError uint32 = 100006 // 数据库更新错误
)

/**微信模块**/
const (
	ErrWxMiniAuthFailError uint32 = 500001
	ErrUserNoAuth          uint32 = 500002
)

type CodeError struct {
	errCode       uint32
	errMsg        string
	InternalError error
}

// GetErrCode 返回给前端的错误码
func (e *CodeError) GetErrCode() uint32 {
	return e.errCode
}

// GetErrMsg 返回给前端显示端错误信息
func (e *CodeError) GetErrMsg() string {
	if e.errMsg == "" {
		return MapErrMsg(e.errCode)
	}
	return e.errMsg
}

func (e *CodeError) Error() string {
	if e.InternalError != nil {
		return fmt.Sprintf("ErrCode:%d,ErrMsg:%s InternalError:%s", e.errCode, e.errMsg, e.InternalError.Error())
	}
	return fmt.Sprintf("ErrCode:%d,ErrMsg:%s", e.errCode, e.errMsg)
}