From 9d542edc963a1d084969db5755a0f582d2508ec6 Mon Sep 17 00:00:00 2001 From: skiffer-git <72860476+skiffer-git@users.noreply.github.com> Date: Fri, 10 Nov 2023 08:44:36 +0800 Subject: [PATCH 1/4] Update README-zh_CN.md --- README-zh_CN.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README-zh_CN.md b/README-zh_CN.md index f24ee4739..699fdc476 100644 --- a/README-zh_CN.md +++ b/README-zh_CN.md @@ -29,6 +29,10 @@

+## 🟢 扫描微信进群交流 + + + ## Ⓜ️ 关于 OpenIM OpenIM 不仅仅是一个开源的即时消息组件,它是你的应用程序生态系统的一个不可或缺的部分。查看下面的图表,了解 AppServer、AppClient、OpenIMServer 和 OpenIMSDK 是如何交互的。 From 4eb8e0068d6a93299497d31f06e8c9d7f27ad6fc Mon Sep 17 00:00:00 2001 From: skiffer-git <72860476+skiffer-git@users.noreply.github.com> Date: Fri, 10 Nov 2023 08:46:00 +0800 Subject: [PATCH 2/4] Update README-zh_CN.md --- README-zh_CN.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README-zh_CN.md b/README-zh_CN.md index 699fdc476..db1e8beab 100644 --- a/README-zh_CN.md +++ b/README-zh_CN.md @@ -30,7 +30,7 @@

## 🟢 扫描微信进群交流 - + ## Ⓜ️ 关于 OpenIM From e40aca81dc753adc80f2d8e998e58db54bd75b08 Mon Sep 17 00:00:00 2001 From: chao <48119764+withchao@users.noreply.github.com> Date: Thu, 9 Nov 2023 21:30:33 -0600 Subject: [PATCH 3/4] fix: GetUserReqApplicationList error when there is a disbanded group chat (#1374) --- internal/rpc/group/group.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 17d748920..6a0ce5733 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -1126,9 +1126,6 @@ func (s *groupServer) GetUserReqApplicationList(ctx context.Context, req *pbgrou groupMap := utils.SliceToMap(groups, func(e *relationtb.GroupModel) string { return e.GroupID }) - if ids := utils.Single(groupIDs, utils.Keys(groupMap)); len(ids) > 0 { - return nil, errs.ErrGroupIDNotFound.Wrap(strings.Join(ids, ",")) - } owners, err := s.FindGroupMember(ctx, groupIDs, nil, []int32{constant.GroupOwner}) if err != nil { return nil, err @@ -1144,7 +1141,11 @@ func (s *groupServer) GetUserReqApplicationList(ctx context.Context, req *pbgrou return nil, err } resp.GroupRequests = utils.Slice(requests, func(e *relationtb.GroupRequestModel) *sdkws.GroupRequest { - return convert.Db2PbGroupRequest(e, user, convert.Db2PbGroupInfo(groupMap[e.GroupID], ownerMap[e.GroupID].UserID, uint32(groupMemberNum[e.GroupID]))) + var ownerUserID string + if owner, ok := ownerMap[e.GroupID]; ok { + ownerUserID = owner.UserID + } + return convert.Db2PbGroupRequest(e, user, convert.Db2PbGroupInfo(groupMap[e.GroupID], ownerUserID, groupMemberNum[e.GroupID])) }) return resp, nil } From a285f02631feb12f430157d1b85bb908e9eb2dac Mon Sep 17 00:00:00 2001 From: chao <48119764+withchao@users.noreply.github.com> Date: Fri, 10 Nov 2023 01:44:28 -0600 Subject: [PATCH 4/4] fix: error when querying some information about disbanded group (#1376) * fix: GetUserReqApplicationList error when there is a disbanded group chat * fix: error when querying some information about disbanded group --- internal/rpc/group/group.go | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 6a0ce5733..2a79c5d93 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -690,7 +690,11 @@ func (s *groupServer) GetGroupApplicationList(ctx context.Context, req *pbgroup. return e.GroupID }) resp.GroupRequests = utils.Slice(groupRequests, func(e *relationtb.GroupRequestModel) *sdkws.GroupRequest { - return convert.Db2PbGroupRequest(e, userMap[e.UserID], convert.Db2PbGroupInfo(groupMap[e.GroupID], ownerMap[e.GroupID].UserID, groupMemberNumMap[e.GroupID])) + var ownerUserID string + if owner, ok := ownerMap[e.GroupID]; ok { + ownerUserID = owner.UserID + } + return convert.Db2PbGroupRequest(e, userMap[e.UserID], convert.Db2PbGroupInfo(groupMap[e.GroupID], ownerUserID, groupMemberNumMap[e.GroupID])) }) return resp, nil } @@ -1056,16 +1060,20 @@ func (s *groupServer) GetGroups(ctx context.Context, req *pbgroup.GetGroupsReq) ownerMemberMap := utils.SliceToMap(ownerMembers, func(e *relationtb.GroupMemberModel) string { return e.GroupID }) - if ids := utils.Single(groupIDs, utils.Keys(ownerMemberMap)); len(ids) > 0 { - return nil, errs.ErrDatabase.Wrap("group not owner " + strings.Join(ids, ",")) - } groupMemberNumMap, err := s.GroupDatabase.MapGroupMemberNum(ctx, groupIDs) if err != nil { return nil, err } resp.Groups = utils.Slice(groups, func(group *relationtb.GroupModel) *pbgroup.CMSGroup { - member := ownerMemberMap[group.GroupID] - return convert.Db2PbCMSGroup(group, member.UserID, member.Nickname, uint32(groupMemberNumMap[group.GroupID])) + var ( + userID string + username string + ) + if member, ok := ownerMemberMap[group.GroupID]; ok { + userID = member.UserID + username = member.Nickname + } + return convert.Db2PbCMSGroup(group, userID, username, groupMemberNumMap[group.GroupID]) }) return resp, nil } @@ -1133,9 +1141,6 @@ func (s *groupServer) GetUserReqApplicationList(ctx context.Context, req *pbgrou ownerMap := utils.SliceToMap(owners, func(e *relationtb.GroupMemberModel) string { return e.GroupID }) - if ids := utils.Single(groupIDs, utils.Keys(ownerMap)); len(ids) > 0 { - return nil, errs.ErrData.Wrap("group no owner", strings.Join(ids, ",")) - } groupMemberNum, err := s.GroupDatabase.MapGroupMemberNum(ctx, groupIDs) if err != nil { return nil, err @@ -1564,15 +1569,16 @@ func (s *groupServer) GetGroupUsersReqApplicationList(ctx context.Context, req * ownerMap := utils.SliceToMap(owners, func(e *relationtb.GroupMemberModel) string { return e.GroupID }) - if ids := utils.Single(groupIDs, utils.Keys(ownerMap)); len(ids) > 0 { - return nil, errs.ErrData.Wrap("group no owner", strings.Join(ids, ",")) - } groupMemberNum, err := s.GroupDatabase.MapGroupMemberNum(ctx, groupIDs) if err != nil { return nil, err } resp.GroupRequests = utils.Slice(requests, func(e *relationtb.GroupRequestModel) *sdkws.GroupRequest { - return convert.Db2PbGroupRequest(e, nil, convert.Db2PbGroupInfo(groupMap[e.GroupID], ownerMap[e.GroupID].UserID, uint32(groupMemberNum[e.GroupID]))) + var ownerUserID string + if owner, ok := ownerMap[e.GroupID]; ok { + ownerUserID = owner.UserID + } + return convert.Db2PbGroupRequest(e, nil, convert.Db2PbGroupInfo(groupMap[e.GroupID], ownerUserID, groupMemberNum[e.GroupID])) }) resp.Total = total return resp, nil