2023-11-15 15:27:04 +08:00

163 lines
4.4 KiB
Go

// Copyright © 2023 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package group
import (
"context"
"github.com/OpenIMSDK/tools/utils"
relationtb "github.com/openimsdk/open-im-server/v3/pkg/common/db/table/relation"
)
//func (s *groupServer) FindGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32) ([]*relationtb.GroupMemberModel, error) {
// members, err := s.db.FindGroupMember(ctx, groupIDs, userIDs, roleLevels)
// if err != nil {
// return nil, err
// }
// emptyUserIDs := make(map[string]struct{})
// for _, member := range members {
// if member.Nickname == "" || member.FaceURL == "" {
// emptyUserIDs[member.UserID] = struct{}{}
// }
// }
// if len(emptyUserIDs) > 0 {
// users, err := s.User.GetPublicUserInfoMap(ctx, utils.Keys(emptyUserIDs), true)
// if err != nil {
// return nil, err
// }
// for i, member := range members {
// user, ok := users[member.UserID]
// if !ok {
// continue
// }
// if member.Nickname == "" {
// members[i].Nickname = user.Nickname
// }
// if member.FaceURL == "" {
// members[i].FaceURL = user.FaceURL
// }
// }
// }
// return members, nil
//}
func (s *groupServer) PopulateGroupMember(ctx context.Context, members ...*relationtb.GroupMemberModel) error {
if len(members) == 0 {
return nil
}
emptyUserIDs := make(map[string]struct{})
for _, member := range members {
if member.Nickname == "" || member.FaceURL == "" {
emptyUserIDs[member.UserID] = struct{}{}
}
}
if len(emptyUserIDs) > 0 {
users, err := s.User.GetPublicUserInfoMap(ctx, utils.Keys(emptyUserIDs), true)
if err != nil {
return err
}
for i, member := range members {
user, ok := users[member.UserID]
if !ok {
continue
}
if member.Nickname == "" {
members[i].Nickname = user.Nickname
}
if member.FaceURL == "" {
members[i].FaceURL = user.FaceURL
}
}
}
return nil
}
//func (s *groupServer) TakeGroupMembers(ctx context.Context, groupID string, userID string) (*relationtb.GroupMemberModel, error) {
// member, err := s.db.TakeGroupMember(ctx, groupID, userID)
// if err != nil {
// return nil, err
// }
// if member.Nickname == "" || member.FaceURL == "" {
// user, err := s.User.GetPublicUserInfo(ctx, userID)
// if err != nil {
// return nil, err
// }
// if member.Nickname == "" {
// member.Nickname = user.Nickname
// }
// if member.FaceURL == "" {
// member.FaceURL = user.FaceURL
// }
// }
// return member, nil
//}
//func (s *groupServer) TakeGroupOwner(ctx context.Context, groupID string) (*relationtb.GroupMemberModel, error) {
// owner, err := s.db.TakeGroupOwner(ctx, groupID)
// if err != nil {
// return nil, err
// }
// if owner.Nickname == "" || owner.FaceURL == "" {
// user, err := s.User.GetUserInfo(ctx, owner.UserID)
// if err != nil {
// return nil, err
// }
// if owner.Nickname == "" {
// owner.Nickname = user.Nickname
// }
// if owner.FaceURL == "" {
// owner.FaceURL = user.FaceURL
// }
// }
// return owner, nil
//}
//
//func (s *groupServer) PageGetGroupMember(
// ctx context.Context,
// groupID string,
// pageNumber, showNumber int32,
//) (uint32, []*relationtb.GroupMemberModel, error) {
// total, members, err := s.db.PageGetGroupMember(ctx, groupID, pageNumber, showNumber)
// if err != nil {
// return 0, nil, err
// }
// emptyUserIDs := make(map[string]struct{})
// for _, member := range members {
// if member.Nickname == "" || member.FaceURL == "" {
// emptyUserIDs[member.UserID] = struct{}{}
// }
// }
// if len(emptyUserIDs) > 0 {
// users, err := s.User.GetPublicUserInfoMap(ctx, utils.Keys(emptyUserIDs), true)
// if err != nil {
// return 0, nil, err
// }
// for i, member := range members {
// user, ok := users[member.UserID]
// if !ok {
// continue
// }
// if member.Nickname == "" {
// members[i].Nickname = user.Nickname
// }
// if member.FaceURL == "" {
// members[i].FaceURL = user.FaceURL
// }
// }
// }
// return total, members, nil
//}