mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-04-25 11:06:43 +08:00
special error
This commit is contained in:
parent
e9eea7cd9a
commit
b5a080623c
@ -7,6 +7,7 @@ import (
|
|||||||
"OpenIM/pkg/errs"
|
"OpenIM/pkg/errs"
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
mysqlDriver "github.com/go-sql-driver/mysql"
|
||||||
"gorm.io/driver/mysql"
|
"gorm.io/driver/mysql"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
@ -65,9 +66,24 @@ func newMysqlGormDB() (*gorm.DB, error) {
|
|||||||
// gorm mysql
|
// gorm mysql
|
||||||
func NewGormDB() (*gorm.DB, error) {
|
func NewGormDB() (*gorm.DB, error) {
|
||||||
specialerror.AddReplace(gorm.ErrRecordNotFound, errs.ErrRecordNotFound)
|
specialerror.AddReplace(gorm.ErrRecordNotFound, errs.ErrRecordNotFound)
|
||||||
|
specialerror.AddErrHandler(replaceDuplicateKey)
|
||||||
return newMysqlGormDB()
|
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{}
|
type Writer struct{}
|
||||||
|
|
||||||
func (w Writer) Printf(format string, args ...interface{}) {
|
func (w Writer) Printf(format string, args ...interface{}) {
|
||||||
|
@ -40,6 +40,8 @@ const (
|
|||||||
CallbackError = 80000
|
CallbackError = 80000
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const DuplicateKeyError = 12345
|
||||||
|
|
||||||
// 账号错误码
|
// 账号错误码
|
||||||
const (
|
const (
|
||||||
UserIDNotFoundError = 91001 //UserID不存在 或未注册
|
UserIDNotFoundError = 91001 //UserID不存在 或未注册
|
||||||
|
@ -41,6 +41,7 @@ var (
|
|||||||
ErrTokenNotExist = NewCodeError(TokenNotExistError, "TokenNotExistError") //在redis中不存在
|
ErrTokenNotExist = NewCodeError(TokenNotExistError, "TokenNotExistError") //在redis中不存在
|
||||||
ErrTokenDifferentPlatformID = NewCodeError(TokenDifferentPlatformIDError, "TokenDifferentPlatformIDError")
|
ErrTokenDifferentPlatformID = NewCodeError(TokenDifferentPlatformIDError, "TokenDifferentPlatformIDError")
|
||||||
ErrTokenDifferentUserID = NewCodeError(TokenDifferentUserIDError, "TokenDifferentUserIDError")
|
ErrTokenDifferentUserID = NewCodeError(TokenDifferentUserIDError, "TokenDifferentUserIDError")
|
||||||
|
ErrDuplicateKey = NewCodeError(DuplicateKeyError, "DuplicateKeyError")
|
||||||
|
|
||||||
ErrMessageHasReadDisable = NewCodeError(MessageHasReadDisable, "MessageHasReadDisable")
|
ErrMessageHasReadDisable = NewCodeError(MessageHasReadDisable, "MessageHasReadDisable")
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user