This commit is contained in:
withchao 2023-02-03 18:26:51 +08:00
parent 3d8902c670
commit b801cde5c4

View File

@ -173,10 +173,8 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR
if err != nil { if err != nil {
return nil, err return nil, err
} }
for _, userID := range userIDs { if ids := utils.Single(userIDs, utils.MapKey(userMap)); len(ids) > 0 {
if userMap[userID] == nil { return nil, constant.ErrUserIDNotFound.Wrap(strings.Join(ids, ","))
return nil, constant.ErrUserIDNotFound.Wrap(userID)
}
} }
if err := callbackBeforeCreateGroup(ctx, req); err != nil { if err := callbackBeforeCreateGroup(ctx, req); err != nil {
return nil, err return nil, err
@ -275,7 +273,7 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite
if len(req.InvitedUserIDs) == 0 { if len(req.InvitedUserIDs) == 0 {
return nil, constant.ErrArgs.Wrap("user empty") return nil, constant.ErrArgs.Wrap("user empty")
} }
if utils.IsDuplicateID(req.InvitedUserIDs) { if utils.Duplicate(req.InvitedUserIDs) {
return nil, constant.ErrArgs.Wrap("userID duplicate") return nil, constant.ErrArgs.Wrap("userID duplicate")
} }
group, err := s.GroupInterface.TakeGroupByID(ctx, req.GroupID) group, err := s.GroupInterface.TakeGroupByID(ctx, req.GroupID)
@ -289,23 +287,18 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite
if err != nil { if err != nil {
return nil, err return nil, err
} }
memberMap := make(map[string]*relation2.GroupMemberModel) memberMap := utils.SliceToMap(members, func(e *relation2.GroupMemberModel) string {
for i, member := range members { return e.UserID
memberMap[member.GroupID] = members[i] })
} if ids := utils.Single(req.InvitedUserIDs, utils.MapKey(memberMap)); len(ids) > 0 {
for _, userID := range req.InvitedUserIDs { return nil, constant.ErrArgs.Wrap("user in group " + strings.Join(ids, ","))
if _, ok := memberMap[userID]; ok {
return nil, constant.ErrArgs.Wrap("user in group " + userID)
}
} }
userMap, err := getUserMap(ctx, req.InvitedUserIDs) userMap, err := getUserMap(ctx, req.InvitedUserIDs)
if err != nil { if err != nil {
return nil, err return nil, err
} }
for _, userID := range req.InvitedUserIDs { if ids := utils.Single(req.InvitedUserIDs, utils.MapKey(userMap)); len(ids) > 0 {
if _, ok := userMap[userID]; !ok { return nil, constant.ErrArgs.Wrap("user not found " + strings.Join(ids, ","))
return nil, constant.ErrUserIDNotFound.Wrap(userID)
}
} }
if group.NeedVerification == constant.AllNeedVerification { if group.NeedVerification == constant.AllNeedVerification {
if !token_verify.IsAppManagerUid(ctx) { if !token_verify.IsAppManagerUid(ctx) {
@ -382,10 +375,6 @@ func (s *groupServer) GetGroupAllMember(ctx context.Context, req *pbGroup.GetGro
if err != nil { if err != nil {
return nil, err return nil, err
} }
var userIDs []string
for _, member := range members {
userIDs = append(userIDs, member.UserID)
}
for _, member := range members { for _, member := range members {
var node open_im_sdk.GroupMemberFullInfo var node open_im_sdk.GroupMemberFullInfo
utils.CopyStructFields(&node, member) utils.CopyStructFields(&node, member)