special error

test-errcode
withchao 2 years ago
parent e9eea7cd9a
commit b5a080623c

@ -7,6 +7,7 @@ import (
"OpenIM/pkg/errs"
"context"
"fmt"
mysqlDriver "github.com/go-sql-driver/mysql"
"gorm.io/driver/mysql"
"strings"
"time"
@ -65,9 +66,24 @@ func newMysqlGormDB() (*gorm.DB, error) {
// gorm mysql
func NewGormDB() (*gorm.DB, error) {
specialerror.AddReplace(gorm.ErrRecordNotFound, errs.ErrRecordNotFound)
specialerror.AddErrHandler(replaceDuplicateKey)
return newMysqlGormDB()
}
func replaceDuplicateKey(err error) errs.CodeError {
if IsMysqlDuplicateKey(err) {
return errs.ErrDuplicateKey
}
return nil
}
func IsMysqlDuplicateKey(err error) bool {
if mysqlErr, ok := err.(*mysqlDriver.MySQLError); ok {
return mysqlErr.Number == 1062
}
return false
}
type Writer struct{}
func (w Writer) Printf(format string, args ...interface{}) {

@ -40,6 +40,8 @@ const (
CallbackError = 80000
)
const DuplicateKeyError = 12345
// 账号错误码
const (
UserIDNotFoundError = 91001 //UserID不存在 或未注册

@ -41,6 +41,7 @@ var (
ErrTokenNotExist = NewCodeError(TokenNotExistError, "TokenNotExistError") //在redis中不存在
ErrTokenDifferentPlatformID = NewCodeError(TokenDifferentPlatformIDError, "TokenDifferentPlatformIDError")
ErrTokenDifferentUserID = NewCodeError(TokenDifferentUserIDError, "TokenDifferentUserIDError")
ErrDuplicateKey = NewCodeError(DuplicateKeyError, "DuplicateKeyError")
ErrMessageHasReadDisable = NewCodeError(MessageHasReadDisable, "MessageHasReadDisable")

Loading…
Cancel
Save