From fc1a270057e762776cd3fa9ca20496ef8ed4bd09 Mon Sep 17 00:00:00 2001 From: cncsmonster Date: Mon, 23 Oct 2023 00:12:40 +0800 Subject: [PATCH] fix:fix lint errors in pkg/common/db/relation and pkg/common/db/localcache --- pkg/common/db/localcache/conversation.go | 1 + pkg/common/db/localcache/group.go | 2 ++ pkg/common/db/relation/black_model.go | 5 ++++- pkg/common/db/relation/chat_log_model.go | 8 +++++++- pkg/common/db/relation/conversation_model.go | 6 ++++++ pkg/common/db/relation/friend_model.go | 5 +++++ pkg/common/db/relation/friend_request_model.go | 6 ++++++ pkg/common/db/relation/group_member_model.go | 7 +++++++ pkg/common/db/relation/group_model.go | 4 ++++ pkg/common/db/relation/group_request_model.go | 2 ++ pkg/common/db/relation/log_model.go | 9 ++++++++- pkg/common/db/relation/meta_db.go | 1 + pkg/common/db/relation/mysql_init.go | 12 ++++++++++-- pkg/common/db/relation/object_model.go | 2 ++ pkg/common/db/relation/user_model.go | 10 ++++++++-- 15 files changed, 73 insertions(+), 7 deletions(-) diff --git a/pkg/common/db/localcache/conversation.go b/pkg/common/db/localcache/conversation.go index c40bcdbce..b43e58257 100644 --- a/pkg/common/db/localcache/conversation.go +++ b/pkg/common/db/localcache/conversation.go @@ -50,6 +50,7 @@ func (g *ConversationLocalCache) GetRecvMsgNotNotifyUserIDs(ctx context.Context, if err != nil { return nil, err } + return resp.UserIDs, nil } diff --git a/pkg/common/db/localcache/group.go b/pkg/common/db/localcache/group.go index 4958d91ee..140c3aeaf 100644 --- a/pkg/common/db/localcache/group.go +++ b/pkg/common/db/localcache/group.go @@ -57,6 +57,7 @@ func (g *GroupLocalCache) GetGroupMemberIDs(ctx context.Context, groupID string) localHashInfo, ok := g.cache[groupID] if ok && localHashInfo.memberListHash == resp.GroupAbstractInfos[0].GroupMemberListHash { g.lock.Unlock() + return localHashInfo.userIDs, nil } g.lock.Unlock() @@ -74,5 +75,6 @@ func (g *GroupLocalCache) GetGroupMemberIDs(ctx context.Context, groupID string) memberListHash: resp.GroupAbstractInfos[0].GroupMemberListHash, userIDs: groupMembersResp.UserIDs, } + return g.cache[groupID].userIDs, nil } diff --git a/pkg/common/db/relation/black_model.go b/pkg/common/db/relation/black_model.go index 34123c7a3..58dae3745 100644 --- a/pkg/common/db/relation/black_model.go +++ b/pkg/common/db/relation/black_model.go @@ -63,10 +63,11 @@ func (b *BlackGorm) Find( ctx context.Context, blacks []*relation.BlackModel, ) (blackList []*relation.BlackModel, err error) { - var where [][]interface{} + where := make([][]interface{}, 0, len(blacks)) for _, black := range blacks { where = append(where, []interface{}{black.OwnerUserID, black.BlockUserID}) } + return blackList, utils.Wrap( b.db(ctx).Where("(owner_user_id, block_user_id) in ?", where).Find(&blackList).Error, "", @@ -75,6 +76,7 @@ func (b *BlackGorm) Find( func (b *BlackGorm) Take(ctx context.Context, ownerUserID, blockUserID string) (black *relation.BlackModel, err error) { black = &relation.BlackModel{} + return black, utils.Wrap( b.db(ctx).Where("owner_user_id = ? and block_user_id = ?", ownerUserID, blockUserID).Take(black).Error, "", @@ -96,6 +98,7 @@ func (b *BlackGorm) FindOwnerBlacks( showNumber, ) total = int64(totalUint32) + return } diff --git a/pkg/common/db/relation/chat_log_model.go b/pkg/common/db/relation/chat_log_model.go index f183a543f..f474a2d34 100644 --- a/pkg/common/db/relation/chat_log_model.go +++ b/pkg/common/db/relation/chat_log_model.go @@ -15,6 +15,8 @@ package relation import ( + + //nolint:staticcheck //tofix: SA1019: "github.com/golang/protobuf/jsonpb" is deprecated: Use the "google.golang.org/protobuf/encoding/protojson" package instead. "github.com/golang/protobuf/jsonpb" "github.com/jinzhu/copier" "google.golang.org/protobuf/proto" @@ -38,7 +40,10 @@ func NewChatLogGorm(db *gorm.DB) relation.ChatLogModelInterface { func (c *ChatLogGorm) Create(msg *pbmsg.MsgDataToMQ) error { chatLog := new(relation.ChatLogModel) - copier.Copy(chatLog, msg.MsgData) + err := copier.Copy(chatLog, msg.MsgData) + if err != nil { + return err + } switch msg.MsgData.SessionType { case constant.GroupChatType, constant.SuperGroupChatType: chatLog.RecvID = msg.MsgData.GroupID @@ -59,5 +64,6 @@ func (c *ChatLogGorm) Create(msg *pbmsg.MsgDataToMQ) error { } chatLog.CreateTime = utils.UnixMillSecondToTime(msg.MsgData.CreateTime) chatLog.SendTime = utils.UnixMillSecondToTime(msg.MsgData.SendTime) + return c.DB.Create(chatLog).Error } diff --git a/pkg/common/db/relation/conversation_model.go b/pkg/common/db/relation/conversation_model.go index d5ca92ec2..37a4e02be 100644 --- a/pkg/common/db/relation/conversation_model.go +++ b/pkg/common/db/relation/conversation_model.go @@ -54,6 +54,7 @@ func (c *ConversationGorm) UpdateByMap( args map[string]interface{}, ) (rows int64, err error) { result := c.db(ctx).Where("owner_user_id IN (?) and conversation_id=?", userIDList, conversationID).Updates(args) + return result.RowsAffected, utils.Wrap(result.Error, "") } @@ -79,6 +80,7 @@ func (c *ConversationGorm) Find( Error, "", ) + return conversations, err } @@ -87,6 +89,7 @@ func (c *ConversationGorm) Take( userID, conversationID string, ) (conversation *relation.ConversationModel, err error) { cc := &relation.ConversationModel{} + return cc, utils.Wrap( c.db(ctx).Where("conversation_id = ? And owner_user_id = ?", conversationID, userID).Take(cc).Error, "", @@ -169,6 +172,7 @@ func (c *ConversationGorm) GetUserRecvMsgOpt( ownerUserID, conversationID string, ) (opt int, err error) { var conversation relation.ConversationModel + return int( conversation.RecvMsgOpt, ), utils.Wrap( @@ -219,6 +223,7 @@ func (c *ConversationGorm) GetConversationIDsNeedDestruct( func (c *ConversationGorm) GetConversationRecvMsgOpt(ctx context.Context, userID string, conversationID string) (int32, error) { var recvMsgOpt int32 + return recvMsgOpt, errs.Wrap( c.db(ctx). Model(&relation.ConversationModel{}). @@ -230,6 +235,7 @@ func (c *ConversationGorm) GetConversationRecvMsgOpt(ctx context.Context, userID func (c *ConversationGorm) GetConversationNotReceiveMessageUserIDs(ctx context.Context, conversationID string) ([]string, error) { var userIDs []string + return userIDs, errs.Wrap( c.db(ctx). Model(&relation.ConversationModel{}). diff --git a/pkg/common/db/relation/friend_model.go b/pkg/common/db/relation/friend_model.go index 869254455..103afd8aa 100644 --- a/pkg/common/db/relation/friend_model.go +++ b/pkg/common/db/relation/friend_model.go @@ -50,6 +50,7 @@ func (f *FriendGorm) Delete(ctx context.Context, ownerUserID string, friendUserI Error, "", ) + return err } @@ -84,6 +85,7 @@ func (f *FriendGorm) UpdateRemark(ctx context.Context, ownerUserID, friendUserID } m := make(map[string]interface{}, 1) m["remark"] = "" + return utils.Wrap(f.db(ctx).Where("owner_user_id = ?", ownerUserID).Updates(m).Error, "") } @@ -93,6 +95,7 @@ func (f *FriendGorm) Take( ownerUserID, friendUserID string, ) (friend *relation.FriendModel, err error) { friend = &relation.FriendModel{} + return friend, utils.Wrap( f.db(ctx).Where("owner_user_id = ? and friend_user_id", ownerUserID, friendUserID).Take(friend).Error, "", @@ -156,6 +159,7 @@ func (f *FriendGorm) FindOwnerFriends( Error, "", ) + return } @@ -178,6 +182,7 @@ func (f *FriendGorm) FindInWhoseFriends( Error, "", ) + return } diff --git a/pkg/common/db/relation/friend_request_model.go b/pkg/common/db/relation/friend_request_model.go index 5678f7b7b..4fd372c0c 100644 --- a/pkg/common/db/relation/friend_request_model.go +++ b/pkg/common/db/relation/friend_request_model.go @@ -74,6 +74,7 @@ func (f *FriendRequestGorm) Update(ctx context.Context, friendRequest *relation. fr2 := *friendRequest fr2.FromUserID = "" fr2.ToUserID = "" + return utils.Wrap( f.db(ctx). Where("from_user_id = ? AND to_user_id =?", friendRequest.FromUserID, friendRequest.ToUserID). @@ -93,6 +94,7 @@ func (f *FriendRequestGorm) Find( f.db(ctx).Where("from_user_id = ? and to_user_id = ?", fromUserID, toUserID).Find(friendRequest).Error, "", ) + return friendRequest, err } @@ -105,6 +107,7 @@ func (f *FriendRequestGorm) Take( f.db(ctx).Where("from_user_id = ? and to_user_id = ?", fromUserID, toUserID).Take(friendRequest).Error, "", ) + return friendRequest, err } @@ -127,6 +130,7 @@ func (f *FriendRequestGorm) FindToUserID( Error, "", ) + return } @@ -149,6 +153,7 @@ func (f *FriendRequestGorm) FindFromUserID( Error, "", ) + return } @@ -160,5 +165,6 @@ func (f *FriendRequestGorm) FindBothFriendRequests(ctx context.Context, fromUser Error, "", ) + return } diff --git a/pkg/common/db/relation/group_member_model.go b/pkg/common/db/relation/group_member_model.go index 312e32054..48baea61c 100644 --- a/pkg/common/db/relation/group_member_model.go +++ b/pkg/common/db/relation/group_member_model.go @@ -68,6 +68,7 @@ func (g *GroupMemberGorm) UpdateRoleLevel( db := g.db(ctx).Where("group_id = ? and user_id = ?", groupID, userID).Updates(map[string]any{ "role_level": roleLevel, }) + return db.RowsAffected, utils.Wrap(db.Error, "") } @@ -87,6 +88,7 @@ func (g *GroupMemberGorm) Find( if len(roleLevels) > 0 { db = db.Where("role_level in (?)", roleLevels) } + return groupMembers, utils.Wrap(db.Find(&groupMembers).Error, "") } @@ -96,6 +98,7 @@ func (g *GroupMemberGorm) Take( userID string, ) (groupMember *relation.GroupMemberModel, err error) { groupMember = &relation.GroupMemberModel{} + return groupMember, utils.Wrap( g.db(ctx).Where("group_id = ? and user_id = ?", groupID, userID).Take(groupMember).Error, "", @@ -107,6 +110,7 @@ func (g *GroupMemberGorm) TakeOwner( groupID string, ) (groupMember *relation.GroupMemberModel, err error) { groupMember = &relation.GroupMemberModel{} + return groupMember, utils.Wrap( g.db(ctx).Where("group_id = ? and role_level = ?", groupID, constant.GroupOwner).Take(groupMember).Error, "", @@ -125,6 +129,7 @@ func (g *GroupMemberGorm) SearchMember( ormutil.GormIn(&db, "group_id", groupIDs) ormutil.GormIn(&db, "user_id", userIDs) ormutil.GormIn(&db, "role_level", roleLevels) + return ormutil.GormSearch[relation.GroupMemberModel](db, []string{"nickname"}, keyword, pageNumber, showNumber) } @@ -152,6 +157,7 @@ func (g *GroupMemberGorm) FindJoinUserID( groupUsers[item.GroupID] = append(v, item.UserID) } } + return groupUsers, nil } @@ -182,6 +188,7 @@ func (g *GroupMemberGorm) FindUsersJoinedGroupID(ctx context.Context, userIDs [] result[groupMember.UserID] = append(v, groupMember.GroupID) } } + return result, nil } diff --git a/pkg/common/db/relation/group_model.go b/pkg/common/db/relation/group_model.go index 7a8eee9f0..508a86f5f 100644 --- a/pkg/common/db/relation/group_model.go +++ b/pkg/common/db/relation/group_model.go @@ -61,12 +61,14 @@ func (g *GroupGorm) Find(ctx context.Context, groupIDs []string) (groups []*rela func (g *GroupGorm) Take(ctx context.Context, groupID string) (group *relation.GroupModel, err error) { group = &relation.GroupModel{} + return group, utils.Wrap(g.DB.Where("group_id = ?", groupID).Take(group).Error, "") } func (g *GroupGorm) Search(ctx context.Context, keyword string, pageNumber, showNumber int32) (total uint32, groups []*relation.GroupModel, err error) { db := g.DB db = db.WithContext(ctx).Where("status!=?", constant.GroupStatusDismissed) + return ormutil.GormSearch[relation.GroupModel](db, []string{"name"}, keyword, pageNumber, showNumber) } @@ -82,6 +84,7 @@ func (g *GroupGorm) CountTotal(ctx context.Context, before *time.Time) (count in if err := db.Count(&count).Error; err != nil { return 0, err } + return count, nil } @@ -98,6 +101,7 @@ func (g *GroupGorm) CountRangeEverydayTotal(ctx context.Context, start time.Time for _, r := range res { v[r.Date.Format("2006-01-02")] = r.Count } + return v, nil } diff --git a/pkg/common/db/relation/group_request_model.go b/pkg/common/db/relation/group_request_model.go index af3f277e8..691a83bb0 100644 --- a/pkg/common/db/relation/group_request_model.go +++ b/pkg/common/db/relation/group_request_model.go @@ -80,6 +80,7 @@ func (g *GroupRequestGorm) Take( userID string, ) (groupRequest *relation.GroupRequestModel, err error) { groupRequest = &relation.GroupRequestModel{} + return groupRequest, utils.Wrap( g.DB.WithContext(ctx).Where("group_id = ? and user_id = ? ", groupID, userID).Take(groupRequest).Error, utils.GetSelfFuncName(), @@ -114,5 +115,6 @@ func (g *GroupRequestGorm) PageGroup( func (g *GroupRequestGorm) FindGroupRequests(ctx context.Context, groupID string, userIDs []string) (total int64, groupRequests []*relation.GroupRequestModel, err error) { err = g.DB.WithContext(ctx).Where("group_id = ? and user_id in ?", groupID, userIDs).Find(&groupRequests).Error + return int64(len(groupRequests)), groupRequests, utils.Wrap(err, utils.GetSelfFuncName()) } diff --git a/pkg/common/db/relation/log_model.go b/pkg/common/db/relation/log_model.go index 53365ca5b..fc1a82cdb 100644 --- a/pkg/common/db/relation/log_model.go +++ b/pkg/common/db/relation/log_model.go @@ -25,6 +25,7 @@ func (l *LogGorm) Search(ctx context.Context, keyword string, start time.Time, e db = l.db.WithContext(ctx).Where("create_time <= ?", end) } db = db.Order("create_time desc") + return ormutil.GormSearch[relationtb.Log](db, []string{"user_id"}, keyword, pageNumber, showNumber) } @@ -32,6 +33,7 @@ func (l *LogGorm) Delete(ctx context.Context, logIDs []string, userID string) er if userID == "" { return errs.Wrap(l.db.WithContext(ctx).Where("log_id in ?", logIDs).Delete(&relationtb.Log{}).Error) } + return errs.Wrap(l.db.WithContext(ctx).Where("log_id in ? and user_id=?", logIDs, userID).Delete(&relationtb.Log{}).Error) } @@ -40,10 +42,15 @@ func (l *LogGorm) Get(ctx context.Context, logIDs []string, userID string) ([]*r if userID == "" { return logs, errs.Wrap(l.db.WithContext(ctx).Where("log_id in ?", logIDs).Find(&logs).Error) } + return logs, errs.Wrap(l.db.WithContext(ctx).Where("log_id in ? and user_id=?", logIDs, userID).Find(&logs).Error) } func NewLogGorm(db *gorm.DB) relationtb.LogInterface { - db.AutoMigrate(&relationtb.Log{}) + err := db.AutoMigrate(&relationtb.Log{}) + if err != nil { + panic(err) + } + return &LogGorm{db: db} } diff --git a/pkg/common/db/relation/meta_db.go b/pkg/common/db/relation/meta_db.go index 6ab980120..00c1b76bc 100644 --- a/pkg/common/db/relation/meta_db.go +++ b/pkg/common/db/relation/meta_db.go @@ -34,5 +34,6 @@ func NewMetaDB(db *gorm.DB, table any) *MetaDB { func (g *MetaDB) db(ctx context.Context) *gorm.DB { db := g.DB.WithContext(ctx).Model(g.table) + return db } diff --git a/pkg/common/db/relation/mysql_init.go b/pkg/common/db/relation/mysql_init.go index 0e5ea5e43..550053ea2 100644 --- a/pkg/common/db/relation/mysql_init.go +++ b/pkg/common/db/relation/mysql_init.go @@ -15,6 +15,7 @@ package relation import ( + "errors" "fmt" "time" @@ -82,6 +83,7 @@ func newMysqlGormDB() (*gorm.DB, error) { sqlDB.SetConnMaxLifetime(time.Second * time.Duration(config.Config.Mysql.MaxLifeTime)) sqlDB.SetMaxOpenConns(config.Config.Mysql.MaxOpenConn) sqlDB.SetMaxIdleConns(config.Config.Mysql.MaxIdleConn) + return db, nil } @@ -94,11 +96,13 @@ func connectToDatabase(dsn string, maxRetry int) (*gorm.DB, error) { if err == nil { return db, nil } - if mysqlErr, ok := err.(*mysqldriver.MySQLError); ok && mysqlErr.Number == 1045 { + var mysqlErr *mysqldriver.MySQLError + if errors.As(err, &mysqlErr) && mysqlErr.Number == 1045 { return nil, err } time.Sleep(time.Duration(1) * time.Second) } + return nil, err } @@ -106,6 +110,7 @@ func connectToDatabase(dsn string, maxRetry int) (*gorm.DB, error) { func NewGormDB() (*gorm.DB, error) { specialerror.AddReplace(gorm.ErrRecordNotFound, errs.ErrRecordNotFound) specialerror.AddErrHandler(replaceDuplicateKey) + return newMysqlGormDB() } @@ -113,12 +118,15 @@ 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 { + var mysqlErr *mysqldriver.MySQLError + if errors.As(err, &mysqlErr) { return mysqlErr.Number == 1062 } + return false } diff --git a/pkg/common/db/relation/object_model.go b/pkg/common/db/relation/object_model.go index c5624a8d4..34b511c6a 100644 --- a/pkg/common/db/relation/object_model.go +++ b/pkg/common/db/relation/object_model.go @@ -44,10 +44,12 @@ func (o *ObjectInfoGorm) SetObject(ctx context.Context, obj *relation.ObjectMode if err := o.DB.WithContext(ctx).Where("name = ?", obj.Name).FirstOrCreate(obj).Error; err != nil { return errs.Wrap(err) } + return nil } func (o *ObjectInfoGorm) Take(ctx context.Context, name string) (info *relation.ObjectModel, err error) { info = &relation.ObjectModel{} + return info, errs.Wrap(o.DB.WithContext(ctx).Where("name = ?", name).Take(info).Error) } diff --git a/pkg/common/db/relation/user_model.go b/pkg/common/db/relation/user_model.go index b04c29816..ef605abd9 100644 --- a/pkg/common/db/relation/user_model.go +++ b/pkg/common/db/relation/user_model.go @@ -53,6 +53,7 @@ func (u *UserGorm) Update(ctx context.Context, user *relation.UserModel) (err er // 获取指定用户信息 不存在,也不返回错误. func (u *UserGorm) Find(ctx context.Context, userIDs []string) (users []*relation.UserModel, err error) { err = utils.Wrap(u.db(ctx).Where("user_id in (?)", userIDs).Find(&users).Error, "") + return users, err } @@ -60,6 +61,7 @@ func (u *UserGorm) Find(ctx context.Context, userIDs []string) (users []*relatio func (u *UserGorm) Take(ctx context.Context, userID string) (user *relation.UserModel, err error) { user = &relation.UserModel{} err = utils.Wrap(u.db(ctx).Where("user_id = ?", userID).Take(&user).Error, "") + return user, err } @@ -81,6 +83,7 @@ func (u *UserGorm) Page( Error, "", ) + return } @@ -88,13 +91,14 @@ func (u *UserGorm) Page( func (u *UserGorm) GetAllUserID(ctx context.Context, pageNumber, showNumber int32) (userIDs []string, err error) { if pageNumber == 0 || showNumber == 0 { return userIDs, errs.Wrap(u.db(ctx).Pluck("user_id", &userIDs).Error) - } else { - return userIDs, errs.Wrap(u.db(ctx).Limit(int(showNumber)).Offset(int((pageNumber-1)*showNumber)).Pluck("user_id", &userIDs).Error) } + + return userIDs, errs.Wrap(u.db(ctx).Limit(int(showNumber)).Offset(int((pageNumber-1)*showNumber)).Pluck("user_id", &userIDs).Error) } func (u *UserGorm) GetUserGlobalRecvMsgOpt(ctx context.Context, userID string) (opt int, err error) { err = u.db(ctx).Model(&relation.UserModel{}).Where("user_id = ?", userID).Pluck("global_recv_msg_opt", &opt).Error + return opt, err } @@ -106,6 +110,7 @@ func (u *UserGorm) CountTotal(ctx context.Context, before *time.Time) (count int if err := db.Count(&count).Error; err != nil { return 0, err } + return count, nil } @@ -132,5 +137,6 @@ func (u *UserGorm) CountRangeEverydayTotal( for _, r := range res { v[r.Date.Format("2006-01-02")] = r.Count } + return v, nil }