err_code.go 1.2 KB
package xerr

import "fmt"

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

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

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

type CodeError struct {
	errCode       int
	errMsg        string
	InternalError error
}

// GetErrCode 返回给前端的错误码
func (e *CodeError) GetErrCode() int {
	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("code error: code=%d msg:%s error:%s", e.errCode, e.errMsg, e.InternalError.Error())
	}
	return fmt.Sprintf("code error: code=%d msg:%s", e.errCode, e.errMsg)
}