mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-12-03 02:42:19 +08:00
fix: fix the search by nickname error
This commit is contained in:
parent
615bca9314
commit
f43b20dc89
@ -484,7 +484,7 @@ func (s *groupServer) GetGroupMemberList(ctx context.Context, req *pbgroup.GetGr
|
|||||||
if req.Keyword == "" {
|
if req.Keyword == "" {
|
||||||
total, members, err = s.db.PageGetGroupMember(ctx, req.GroupID, req.Pagination)
|
total, members, err = s.db.PageGetGroupMember(ctx, req.GroupID, req.Pagination)
|
||||||
} else {
|
} else {
|
||||||
total, members, err = s.db.FindGroupMemberByKeyword(ctx, req.GroupID, req.Keyword, req.Pagination)
|
members, err = s.db.FindGroupMemberAll(ctx, req.GroupID)
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -492,6 +492,26 @@ func (s *groupServer) GetGroupMemberList(ctx context.Context, req *pbgroup.GetGr
|
|||||||
if err := s.PopulateGroupMember(ctx, members...); err != nil {
|
if err := s.PopulateGroupMember(ctx, members...); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
if req.Keyword != "" {
|
||||||
|
groupMembers := make([]*relationtb.GroupMemberModel, 0)
|
||||||
|
for _, member := range members {
|
||||||
|
if member.UserID == req.Keyword {
|
||||||
|
groupMembers = append(groupMembers, member)
|
||||||
|
total++
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if member.Nickname == req.Keyword {
|
||||||
|
groupMembers = append(groupMembers, member)
|
||||||
|
total++
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
GMembers := utils.Paginate(groupMembers, int(req.Pagination.GetPageNumber()), int(req.Pagination.GetShowNumber()))
|
||||||
|
resp.Members = utils.Batch(convert.Db2PbGroupMember, GMembers)
|
||||||
|
resp.Total = uint32(total)
|
||||||
|
return resp, nil
|
||||||
|
}
|
||||||
resp.Total = uint32(total)
|
resp.Total = uint32(total)
|
||||||
resp.Members = utils.Batch(convert.Db2PbGroupMember, members)
|
resp.Members = utils.Batch(convert.Db2PbGroupMember, members)
|
||||||
return resp, nil
|
return resp, nil
|
||||||
@ -1069,6 +1089,7 @@ func (s *groupServer) GetGroups(ctx context.Context, req *pbgroup.GetGroupsReq)
|
|||||||
var groups []*relationtb.GroupModel
|
var groups []*relationtb.GroupModel
|
||||||
for _, v := range group {
|
for _, v := range group {
|
||||||
if v.Status == constant.GroupStatusDismissed {
|
if v.Status == constant.GroupStatusDismissed {
|
||||||
|
resp.Total--
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
groups = append(groups, v)
|
groups = append(groups, v)
|
||||||
|
|||||||
@ -45,7 +45,6 @@ type GroupDatabase interface {
|
|||||||
FindGroupMemberUser(ctx context.Context, groupIDs []string, userID string) (groupMembers []*relationtb.GroupMemberModel, err error) // *
|
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) // *
|
FindGroupMemberRoleLevels(ctx context.Context, groupID string, roleLevels []int32) (groupMembers []*relationtb.GroupMemberModel, err error) // *
|
||||||
FindGroupMemberAll(ctx context.Context, groupID string) (groupMembers []*relationtb.GroupMemberModel, err error) // *
|
FindGroupMemberAll(ctx context.Context, groupID string) (groupMembers []*relationtb.GroupMemberModel, err 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)
|
FindGroupsOwner(ctx context.Context, groupIDs []string) ([]*relationtb.GroupMemberModel, error)
|
||||||
FindGroupMemberUserID(ctx context.Context, groupID string) ([]string, error)
|
FindGroupMemberUserID(ctx context.Context, groupID string) ([]string, error)
|
||||||
FindGroupMemberNum(ctx context.Context, groupID string) (uint32, error)
|
FindGroupMemberNum(ctx context.Context, groupID string) (uint32, error)
|
||||||
@ -120,34 +119,6 @@ func (g *groupDatabase) FindGroupMemberAll(ctx context.Context, groupID string)
|
|||||||
return g.cache.GetAllGroupMembersInfo(ctx, groupID)
|
return g.cache.GetAllGroupMembersInfo(ctx, groupID)
|
||||||
}
|
}
|
||||||
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
var total int64
|
|
||||||
groupMembers := make([]*relationtb.GroupMemberModel, 0)
|
|
||||||
for _, member := range members {
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
return total, GMembers, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (g *groupDatabase) FindGroupsOwner(ctx context.Context, groupIDs []string) ([]*relationtb.GroupMemberModel, error) {
|
func (g *groupDatabase) FindGroupsOwner(ctx context.Context, groupIDs []string) ([]*relationtb.GroupMemberModel, error) {
|
||||||
return g.cache.GetGroupsOwner(ctx, groupIDs)
|
return g.cache.GetGroupsOwner(ctx, groupIDs)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,7 +17,6 @@ package mgo
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"github.com/OpenIMSDK/protocol/user"
|
"github.com/OpenIMSDK/protocol/user"
|
||||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/OpenIMSDK/tools/mgoutil"
|
"github.com/OpenIMSDK/tools/mgoutil"
|
||||||
@ -71,7 +70,7 @@ func (u *UserMgo) TakeNotification(ctx context.Context, level int64) (user []*re
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (u *UserMgo) TakeByNickname(ctx context.Context, nickname string) (user []*relation.UserModel, err error) {
|
func (u *UserMgo) TakeByNickname(ctx context.Context, nickname string) (user []*relation.UserModel, err error) {
|
||||||
return mgoutil.Find[*relation.UserModel](ctx, u.coll, bson.E{Key: "nickname", Value: bson.M{"$regex": primitive.Regex{Pattern: ".*" + nickname + ".*", Options: "i"}}})
|
return mgoutil.Find[*relation.UserModel](ctx, u.coll, bson.M{"nickname": nickname})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (u *UserMgo) Page(ctx context.Context, pagination pagination.Pagination) (count int64, users []*relation.UserModel, err error) {
|
func (u *UserMgo) Page(ctx context.Context, pagination pagination.Pagination) (count int64, users []*relation.UserModel, err error) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user