mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-04-26 03:26:57 +08:00
Error code standardization
This commit is contained in:
parent
f5fbe1d852
commit
e27d66cd2e
@ -29,15 +29,15 @@ type userServer struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Start(client *openKeeper.ZkClient, server *grpc.Server) error {
|
func Start(client *openKeeper.ZkClient, server *grpc.Server) error {
|
||||||
mysql, err := relation.NewGormDB()
|
gormDB, err := relation.NewGormDB()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := mysql.AutoMigrate(&tablerelation.UserModel{}); err != nil {
|
if err := gormDB.AutoMigrate(&tablerelation.UserModel{}); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
pbuser.RegisterUserServer(server, &userServer{
|
pbuser.RegisterUserServer(server, &userServer{
|
||||||
UserInterface: controller.NewUserController(mysql),
|
UserInterface: controller.NewUserController(controller.NewUserDatabase(relation.NewUserGorm(gormDB))),
|
||||||
notification: notification.NewCheck(client),
|
notification: notification.NewCheck(client),
|
||||||
userCheck: check.NewUserCheck(client),
|
userCheck: check.NewUserCheck(client),
|
||||||
RegisterCenter: client,
|
RegisterCenter: client,
|
||||||
|
@ -5,7 +5,6 @@ import (
|
|||||||
"Open_IM/pkg/common/db/relation"
|
"Open_IM/pkg/common/db/relation"
|
||||||
relationTb "Open_IM/pkg/common/db/table/relation"
|
relationTb "Open_IM/pkg/common/db/table/relation"
|
||||||
"context"
|
"context"
|
||||||
"gorm.io/gorm"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type UserInterface interface {
|
type UserInterface interface {
|
||||||
@ -62,9 +61,8 @@ func (u *UserController) GetAllUserID(ctx context.Context) ([]string, error) {
|
|||||||
return u.database.GetAllUserID(ctx)
|
return u.database.GetAllUserID(ctx)
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewUserController(db *gorm.DB) *UserController {
|
func NewUserController(database UserDatabaseInterface) *UserController {
|
||||||
controller := &UserController{database: newUserDatabase(db)}
|
return &UserController{database}
|
||||||
return controller
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type UserDatabaseInterface interface {
|
type UserDatabaseInterface interface {
|
||||||
@ -87,20 +85,17 @@ type UserDatabaseInterface interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type UserDatabase struct {
|
type UserDatabase struct {
|
||||||
user *relation.UserGorm
|
userDB relation.User
|
||||||
}
|
}
|
||||||
|
|
||||||
func newUserDatabase(db *gorm.DB) *UserDatabase {
|
func NewUserDatabase(userDB relation.User) *UserDatabase {
|
||||||
sqlDB := relation.NewUserGorm(db)
|
return &UserDatabase{userDB: userDB}
|
||||||
database := &UserDatabase{
|
|
||||||
user: sqlDB,
|
|
||||||
}
|
|
||||||
return database
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取指定用户的信息 如有userID未找到 也返回错误
|
// 获取指定用户的信息 如有userID未找到 也返回错误
|
||||||
func (u *UserDatabase) FindWithError(ctx context.Context, userIDs []string) (users []*relationTb.UserModel, err error) {
|
func (u *UserDatabase) FindWithError(ctx context.Context, userIDs []string) (users []*relationTb.UserModel, err error) {
|
||||||
users, err = u.user.Find(ctx, userIDs)
|
|
||||||
|
users, err = u.userDB.Find(ctx, userIDs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -112,33 +107,33 @@ func (u *UserDatabase) FindWithError(ctx context.Context, userIDs []string) (use
|
|||||||
|
|
||||||
// 获取指定用户的信息 如有userID未找到 不返回错误
|
// 获取指定用户的信息 如有userID未找到 不返回错误
|
||||||
func (u *UserDatabase) Find(ctx context.Context, userIDs []string) (users []*relationTb.UserModel, err error) {
|
func (u *UserDatabase) Find(ctx context.Context, userIDs []string) (users []*relationTb.UserModel, err error) {
|
||||||
users, err = u.user.Find(ctx, userIDs)
|
users, err = u.userDB.Find(ctx, userIDs)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 插入多条 外部保证userID 不重复 且在db中不存在
|
// 插入多条 外部保证userID 不重复 且在db中不存在
|
||||||
func (u *UserDatabase) Create(ctx context.Context, users []*relationTb.UserModel) (err error) {
|
func (u *UserDatabase) Create(ctx context.Context, users []*relationTb.UserModel) (err error) {
|
||||||
return u.user.Create(ctx, users)
|
return u.userDB.Create(ctx, users)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更新(非零值) 外部保证userID存在
|
// 更新(非零值) 外部保证userID存在
|
||||||
func (u *UserDatabase) Update(ctx context.Context, users []*relationTb.UserModel) (err error) {
|
func (u *UserDatabase) Update(ctx context.Context, users []*relationTb.UserModel) (err error) {
|
||||||
return u.user.Update(ctx, users)
|
return u.userDB.Update(ctx, users)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更新(零值) 外部保证userID存在
|
// 更新(零值) 外部保证userID存在
|
||||||
func (u *UserDatabase) UpdateByMap(ctx context.Context, userID string, args map[string]interface{}) (err error) {
|
func (u *UserDatabase) UpdateByMap(ctx context.Context, userID string, args map[string]interface{}) (err error) {
|
||||||
return u.user.UpdateByMap(ctx, userID, args)
|
return u.userDB.UpdateByMap(ctx, userID, args)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取,如果没找到,不返回错误
|
// 获取,如果没找到,不返回错误
|
||||||
func (u *UserDatabase) Page(ctx context.Context, showNumber, pageNumber int32) (users []*relationTb.UserModel, count int64, err error) {
|
func (u *UserDatabase) Page(ctx context.Context, showNumber, pageNumber int32) (users []*relationTb.UserModel, count int64, err error) {
|
||||||
return u.user.Page(ctx, showNumber, pageNumber)
|
return u.userDB.Page(ctx, showNumber, pageNumber)
|
||||||
}
|
}
|
||||||
|
|
||||||
// userIDs是否存在 只要有一个存在就为true
|
// userIDs是否存在 只要有一个存在就为true
|
||||||
func (u *UserDatabase) IsExist(ctx context.Context, userIDs []string) (exist bool, err error) {
|
func (u *UserDatabase) IsExist(ctx context.Context, userIDs []string) (exist bool, err error) {
|
||||||
users, err := u.user.Find(ctx, userIDs)
|
users, err := u.userDB.Find(ctx, userIDs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
@ -149,5 +144,5 @@ func (u *UserDatabase) IsExist(ctx context.Context, userIDs []string) (exist boo
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (u *UserDatabase) GetAllUserID(ctx context.Context) ([]string, error) {
|
func (u *UserDatabase) GetAllUserID(ctx context.Context) ([]string, error) {
|
||||||
return u.user.GetAllUserID(ctx)
|
return u.userDB.GetAllUserID(ctx)
|
||||||
}
|
}
|
||||||
|
@ -58,6 +58,7 @@ func newMysqlGormDB() (*gorm.DB, error) {
|
|||||||
return db, nil
|
return db, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// gorm mysql
|
||||||
func NewGormDB() (*gorm.DB, error) {
|
func NewGormDB() (*gorm.DB, error) {
|
||||||
return newMysqlGormDB()
|
return newMysqlGormDB()
|
||||||
}
|
}
|
||||||
|
@ -5,18 +5,28 @@ import (
|
|||||||
"Open_IM/pkg/common/tracelog"
|
"Open_IM/pkg/common/tracelog"
|
||||||
"Open_IM/pkg/utils"
|
"Open_IM/pkg/utils"
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type User interface {
|
||||||
|
Create(ctx context.Context, users []*relation.UserModel, tx ...any) (err error)
|
||||||
|
UpdateByMap(ctx context.Context, userID string, args map[string]interface{}, tx ...any) (err error)
|
||||||
|
Update(ctx context.Context, users []*relation.UserModel, tx ...any) (err error)
|
||||||
|
// 获取指定用户信息 不存在,也不返回错误
|
||||||
|
Find(ctx context.Context, userIDs []string, tx ...any) (users []*relation.UserModel, err error)
|
||||||
|
// 获取某个用户信息 不存在,则返回错误
|
||||||
|
Take(ctx context.Context, userID string, tx ...any) (user *relation.UserModel, err error)
|
||||||
|
// 获取用户信息 不存在,不返回错误
|
||||||
|
Page(ctx context.Context, pageNumber, showNumber int32, tx ...any) (users []*relation.UserModel, count int64, err error)
|
||||||
|
GetAllUserID(ctx context.Context) (userIDs []string, err error)
|
||||||
|
}
|
||||||
|
|
||||||
type UserGorm struct {
|
type UserGorm struct {
|
||||||
DB *gorm.DB
|
DB *gorm.DB
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewUserGorm(db *gorm.DB) *UserGorm {
|
func NewUserGorm(DB *gorm.DB) *UserGorm {
|
||||||
var user UserGorm
|
return &UserGorm{DB: DB}
|
||||||
user.DB = db
|
|
||||||
return &user
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 插入多条
|
// 插入多条
|
||||||
@ -62,32 +72,6 @@ func (u *UserGorm) Take(ctx context.Context, userID string, tx ...any) (user *re
|
|||||||
return user, err
|
return user, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// 通过名字查找用户 不存在,不返回错误
|
|
||||||
func (u *UserGorm) GetByName(ctx context.Context, userName string, pageNumber, showNumber int32, tx ...any) (users []*relation.UserModel, count int64, err error) {
|
|
||||||
defer func() {
|
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "userName", userName, "pageNumber", pageNumber, "showNumber", showNumber, "users", users, "count", count)
|
|
||||||
}()
|
|
||||||
err = utils.Wrap(getDBConn(u.DB, tx).Model(&relation.UserModel{}).Where(" name like ?", fmt.Sprintf("%%%s%%", userName)).Count(&count).Error, "")
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
err = utils.Wrap(getDBConn(u.DB, tx).Model(&relation.UserModel{}).Where(" name like ?", fmt.Sprintf("%%%s%%", userName)).Limit(int(showNumber)).Offset(int(showNumber*pageNumber)).Find(&users).Error, "")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 通过名字或userID查找用户 不存在,不返回错误
|
|
||||||
func (u *UserGorm) GetByNameAndID(ctx context.Context, content string, pageNumber, showNumber int32, tx ...any) (users []*relation.UserModel, count int64, err error) {
|
|
||||||
defer func() {
|
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "content", content, "pageNumber", pageNumber, "showNumber", showNumber, "users", users, "count", count)
|
|
||||||
}()
|
|
||||||
db := getDBConn(u.DB, tx).Model(&relation.UserModel{}).Where(" name like ? or user_id = ? ", fmt.Sprintf("%%%s%%", content), content)
|
|
||||||
if err = db.Count(&count).Error; err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
err = utils.Wrap(db.Limit(int(showNumber)).Offset(int(showNumber*pageNumber)).Find(&users).Error, "")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取用户信息 不存在,不返回错误
|
// 获取用户信息 不存在,不返回错误
|
||||||
func (u *UserGorm) Page(ctx context.Context, pageNumber, showNumber int32, tx ...any) (users []*relation.UserModel, count int64, err error) {
|
func (u *UserGorm) Page(ctx context.Context, pageNumber, showNumber int32, tx ...any) (users []*relation.UserModel, count int64, err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
@ -102,8 +86,11 @@ func (u *UserGorm) Page(ctx context.Context, pageNumber, showNumber int32, tx ..
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 获取所有用户ID
|
// 获取所有用户ID
|
||||||
func (u *UserGorm) GetAllUserID(ctx context.Context) ([]string, error) {
|
func (u *UserGorm) GetAllUserID(ctx context.Context) (userIDs []string, err error) {
|
||||||
var userIDs []string
|
defer func() {
|
||||||
err := u.DB.Pluck("user_id", &userIDs).Error
|
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "userIDs", userIDs)
|
||||||
|
}()
|
||||||
|
|
||||||
|
err = u.DB.Pluck("user_id", &userIDs).Error
|
||||||
return userIDs, err
|
return userIDs, err
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user