From 50a23c7ece08965df1deeeeaf9f22780c2d2422f Mon Sep 17 00:00:00 2001 From: luhaoling <2198702716@qq.com> Date: Thu, 28 Dec 2023 11:10:48 +0800 Subject: [PATCH] fix: support search userInfo by nickname or userID --- go.mod | 2 +- go.sum | 4 ++-- internal/rpc/group/group.go | 4 ++-- pkg/common/db/controller/group.go | 13 +++++++++---- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 1a8f27d40..8d3890fb1 100644 --- a/go.mod +++ b/go.mod @@ -157,4 +157,4 @@ require ( gopkg.in/ini.v1 v1.67.0 // indirect ) -replace github.com/OpenIMSDK/protocol v0.0.40 => github.com/luhaoling/protocol v0.0.0-20231227092407-35eebd12dae4 +replace github.com/OpenIMSDK/protocol v0.0.40 => github.com/luhaoling/protocol v0.0.0-20231228025636-9ddb53aee5a4 diff --git a/go.sum b/go.sum index 43822330a..13f3bd400 100644 --- a/go.sum +++ b/go.sum @@ -225,8 +225,8 @@ github.com/lestrrat-go/strftime v1.0.6 h1:CFGsDEt1pOpFNU+TJB0nhz9jl+K0hZSLE205Ah github.com/lestrrat-go/strftime v1.0.6/go.mod h1:f7jQKgV5nnJpYgdEasS+/y7EsTb8ykN2z68n3TtcTaw= github.com/lithammer/shortuuid v3.0.0+incompatible h1:NcD0xWW/MZYXEHa6ITy6kaXN5nwm/V115vj2YXfhS0w= github.com/lithammer/shortuuid v3.0.0+incompatible/go.mod h1:FR74pbAuElzOUuenUHTK2Tciko1/vKuIKS9dSkDrA4w= -github.com/luhaoling/protocol v0.0.0-20231227092407-35eebd12dae4 h1:UaoHGQWYrsR/02h6UFrrP59mEzkhfzrYYO+nVKDVy+A= -github.com/luhaoling/protocol v0.0.0-20231227092407-35eebd12dae4/go.mod h1:F25dFrwrIx3lkNoiuf6FkCfxuwf8L4Z8UIsdTHP/r0Y= +github.com/luhaoling/protocol v0.0.0-20231228025636-9ddb53aee5a4 h1:p9NaRVR7ba+i56AJMaiuASVnYf7FlSGi1joGn4f29bY= +github.com/luhaoling/protocol v0.0.0-20231228025636-9ddb53aee5a4/go.mod h1:F25dFrwrIx3lkNoiuf6FkCfxuwf8L4Z8UIsdTHP/r0Y= github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 592c96333..93485ff75 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -481,10 +481,10 @@ func (s *groupServer) GetGroupMemberList(ctx context.Context, req *pbgroup.GetGr members []*relationtb.GroupMemberModel err error ) - if req.GroupNickname == "" { + if req.Keyword == "" { total, members, err = s.db.PageGetGroupMember(ctx, req.GroupID, req.Pagination) } else { - total, members, err = s.db.FindGroupMemberByNickname(ctx, req.GroupID, req.GroupNickname, req.Pagination) + total, members, err = s.db.FindGroupMemberByKeyword(ctx, req.GroupID, req.Keyword, req.Pagination) } if err != nil { return nil, err diff --git a/pkg/common/db/controller/group.go b/pkg/common/db/controller/group.go index 22ab3597e..b7ff30401 100644 --- a/pkg/common/db/controller/group.go +++ b/pkg/common/db/controller/group.go @@ -45,7 +45,7 @@ type GroupDatabase interface { FindGroupMemberUser(ctx context.Context, groupIDs []string, userID string) (groupMembers []*relationtb.GroupMemberModel, err error) // * FindGroupMemberRoleLevels(ctx context.Context, groupID string, roleLevels []int32) (groupMembers []*relationtb.GroupMemberModel, err error) // * FindGroupMemberAll(ctx context.Context, groupID string) (groupMembers []*relationtb.GroupMemberModel, err error) // * - FindGroupMemberByNickname(ctx context.Context, groupID string, nickName string, pagination pagination.Pagination) (int64, []*relationtb.GroupMemberModel, error) + FindGroupMemberByKeyword(ctx context.Context, groupID string, keyword string, pagination pagination.Pagination) (int64, []*relationtb.GroupMemberModel, error) FindGroupsOwner(ctx context.Context, groupIDs []string) ([]*relationtb.GroupMemberModel, error) FindGroupMemberUserID(ctx context.Context, groupID string) ([]string, error) FindGroupMemberNum(ctx context.Context, groupID string) (uint32, error) @@ -120,7 +120,7 @@ func (g *groupDatabase) FindGroupMemberAll(ctx context.Context, groupID string) return g.cache.GetAllGroupMembersInfo(ctx, groupID) } -func (g *groupDatabase) FindGroupMemberByNickname(ctx context.Context, groupID string, Nickname string, pagination pagination.Pagination) (int64, []*relationtb.GroupMemberModel, error) { +func (g *groupDatabase) FindGroupMemberByKeyword(ctx context.Context, groupID string, keyword string, pagination pagination.Pagination) (int64, []*relationtb.GroupMemberModel, error) { members, err := g.cache.GetAllGroupMembersInfo(ctx, groupID) if err != nil { return 0, nil, err @@ -129,12 +129,17 @@ func (g *groupDatabase) FindGroupMemberByNickname(ctx context.Context, groupID s var total int64 groupMembers := make([]*relationtb.GroupMemberModel, 0) for _, member := range members { - if member.Nickname == Nickname { + if member.Nickname == keyword { groupMembers = append(groupMembers, member) total++ + continue + } + if member.UserID == keyword { + groupMembers = append(groupMembers, member) + total++ + continue } } - GMembers := utils.Paginate(groupMembers, int(pagination.GetPageNumber()), int(pagination.GetShowNumber())) if len(GMembers) == 0 { return int64(len(groupMembers)), nil, nil