From 8dea2cacf46f843d9962a9d8d6844c2fae4e2854 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 15 Mar 2023 16:29:04 +0800 Subject: [PATCH] Merge branch 'errcode' of github.com:OpenIMSDK/Open-IM-Server into errcode # Conflicts: # pkg/common/mw/rpc_server_interceptor.go --- pkg/common/db/controller/user.go | 2 +- pkg/common/db/relation/user_model.go | 27 ++++++++++++++++----------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/pkg/common/db/controller/user.go b/pkg/common/db/controller/user.go index 55f1df111..425821154 100644 --- a/pkg/common/db/controller/user.go +++ b/pkg/common/db/controller/user.go @@ -46,7 +46,7 @@ func (u *userDatabase) InitOnce(ctx context.Context, users []*relation.UserModel } miss := utils.SliceAnySub(users, result, func(e *relation.UserModel) string { return e.UserID }) if len(miss) > 0 { - u.userDB.Create(ctx, miss) + _ = u.userDB.Create(ctx, miss) } return nil diff --git a/pkg/common/db/relation/user_model.go b/pkg/common/db/relation/user_model.go index 5ed6e73b8..7b1a33efb 100644 --- a/pkg/common/db/relation/user_model.go +++ b/pkg/common/db/relation/user_model.go @@ -9,54 +9,59 @@ import ( ) type UserGorm struct { - DB gorm.DB + DB *gorm.DB } -func NewUserGorm(DB *gorm.DB) relation.UserModelInterface { - return &UserGorm{DB: *DB.Model(&relation.UserModel{})} +func NewUserGorm(db *gorm.DB) relation.UserModelInterface { + return &UserGorm{DB: db.Model(&relation.UserModel{})} +} + +func (u *UserGorm) db() gorm.DB { + newDB := *u.DB + return newDB } // 插入多条 func (u *UserGorm) Create(ctx context.Context, users []*relation.UserModel) (err error) { - return utils.Wrap(u.DB.Create(&users).Error, "") + return utils.Wrap(u.db().Create(&users).Error, "") } // 更新用户信息 零值 func (u *UserGorm) UpdateByMap(ctx context.Context, userID string, args map[string]interface{}) (err error) { - return utils.Wrap(u.DB.Where("user_id = ?", userID).Updates(args).Error, "") + return utils.Wrap(u.db().Where("user_id = ?", userID).Updates(args).Error, "") } // 更新多个用户信息 非零值 func (u *UserGorm) Update(ctx context.Context, users []*relation.UserModel) (err error) { - return utils.Wrap(u.DB.Updates(&users).Error, "") + return utils.Wrap(u.db().Updates(&users).Error, "") } // 获取指定用户信息 不存在,也不返回错误 func (u *UserGorm) Find(ctx context.Context, userIDs []string) (users []*relation.UserModel, err error) { log.ZDebug(ctx, "Find args", "userIDs", userIDs) - err = utils.Wrap(u.DB.Where("user_id in (?)", userIDs).Find(&users).Error, "") + err = utils.Wrap(u.db().Where("user_id in (?)", userIDs).Find(&users).Error, "") return users, err } // 获取某个用户信息 不存在,则返回错误 func (u *UserGorm) Take(ctx context.Context, userID string) (user *relation.UserModel, err error) { user = &relation.UserModel{} - err = utils.Wrap(u.DB.Where("user_id = ?", userID).Take(&user).Error, "") + err = utils.Wrap(u.db().Where("user_id = ?", userID).Take(&user).Error, "") return user, err } // 获取用户信息 不存在,不返回错误 func (u *UserGorm) Page(ctx context.Context, pageNumber, showNumber int32) (users []*relation.UserModel, count int64, err error) { - err = utils.Wrap(u.DB.Count(&count).Error, "") + err = utils.Wrap(u.db().Count(&count).Error, "") if err != nil { return } - err = utils.Wrap(u.DB.Limit(int(showNumber)).Offset(int(pageNumber*showNumber)).Find(&users).Error, "") + err = utils.Wrap(u.db().Limit(int(showNumber)).Offset(int(pageNumber*showNumber)).Find(&users).Error, "") return } // 获取所有用户ID func (u *UserGorm) GetAllUserID(ctx context.Context) (userIDs []string, err error) { - err = u.DB.Pluck("user_id", &userIDs).Error + err = u.db().Pluck("user_id", &userIDs).Error return userIDs, err }