diff --git a/internal/api/friend.go b/internal/api/friend.go index 3ac40f7c5..0dc3eed2c 100644 --- a/internal/api/friend.go +++ b/internal/api/friend.go @@ -42,11 +42,11 @@ func (o *Friend) DeleteFriend(c *gin.Context) { } func (o *Friend) GetFriendApplyList(c *gin.Context) { - a2r.Call(friend.FriendClient.GetPaginationFriendsApplyFrom, o.client, c) + a2r.Call(friend.FriendClient.GetPaginationFriendsApplyTo, o.client, c) } func (o *Friend) GetSelfApplyList(c *gin.Context) { - a2r.Call(friend.FriendClient.GetPaginationFriendsApplyTo, o.client, c) + a2r.Call(friend.FriendClient.GetPaginationFriendsApplyFrom, o.client, c) } func (o *Friend) GetFriendList(c *gin.Context) { diff --git a/internal/rpc/friend/friend.go b/internal/rpc/friend/friend.go index 8b7031cf2..54e7e3573 100644 --- a/internal/rpc/friend/friend.go +++ b/internal/rpc/friend/friend.go @@ -222,6 +222,8 @@ func (s *friendServer) GetPaginationFriendsApplyFrom(ctx context.Context, req *p if err != nil { return nil, err } + log.ZInfo(ctx, "test log out") + log.ZInfo(ctx, "GetPaginationFriendsApplyFrom.xxx", "total", total, "friendRequests", len(friendRequests), "userRpcClient", s.userRpcClient == nil) resp.FriendRequests, err = convert.FriendRequestDB2Pb(ctx, friendRequests, s.userRpcClient.GetUsersInfoMap) if err != nil { return nil, err diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 2f325b774..f588ba28c 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -222,7 +222,8 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo pageNumber = req.Pagination.PageNumber showNumber = req.Pagination.ShowNumber } - total, members, err := s.GroupDatabase.PageGroupMember(ctx, nil, []string{req.FromUserID}, nil, pageNumber, showNumber) + //total, members, err := s.GroupDatabase.PageGroupMember(ctx, nil, []string{req.FromUserID}, nil, pageNumber, showNumber) + total, members, err := s.GroupDatabase.PageGetJoinGroup(ctx, req.FromUserID, pageNumber, showNumber) if err != nil { return nil, err } @@ -383,7 +384,8 @@ func (s *groupServer) GetGroupAllMember(ctx context.Context, req *pbGroup.GetGro func (s *groupServer) GetGroupMemberList(ctx context.Context, req *pbGroup.GetGroupMemberListReq) (*pbGroup.GetGroupMemberListResp, error) { resp := &pbGroup.GetGroupMemberListResp{} //total, members, err := s.GroupDatabase.PageGroupMember(ctx, []string{req.GroupID}, nil, utils.If(req.Filter >= 0, []int32{req.Filter}, nil), req.Pagination.PageNumber, req.Pagination.ShowNumber) - total, members, err := s.GroupDatabase.PageGroupMember(ctx, []string{req.GroupID}, nil, nil, req.Pagination.PageNumber, req.Pagination.ShowNumber) + //total, members, err := s.GroupDatabase.PageGroupMember(ctx, []string{req.GroupID}, nil, nil, req.Pagination.PageNumber, req.Pagination.ShowNumber) + total, members, err := s.GroupDatabase.PageGetGroupMember(ctx, req.GroupID, req.Pagination.PageNumber, req.Pagination.ShowNumber) if err != nil { return nil, err } diff --git a/pkg/common/db/controller/group.go b/pkg/common/db/controller/group.go index 8f6c6d2db..5f4c65c96 100644 --- a/pkg/common/db/controller/group.go +++ b/pkg/common/db/controller/group.go @@ -32,7 +32,9 @@ type GroupDatabase interface { TakeGroupOwner(ctx context.Context, groupID string) (*relationTb.GroupMemberModel, error) FindGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32) ([]*relationTb.GroupMemberModel, error) FindGroupMemberUserID(ctx context.Context, groupID string) ([]string, error) - PageGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (uint32, []*relationTb.GroupMemberModel, error) + //PageGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (uint32, []*relationTb.GroupMemberModel, error) + PageGetJoinGroup(ctx context.Context, userID string, pageNumber, showNumber int32) (total uint32, totalGroupMembers []*relationTb.GroupMemberModel, err error) + PageGetGroupMember(ctx context.Context, groupID string, pageNumber, showNumber int32) (total uint32, totalGroupMembers []*relationTb.GroupMemberModel, err error) SearchGroupMember(ctx context.Context, keyword string, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (uint32, []*relationTb.GroupMemberModel, error) HandlerGroupRequest(ctx context.Context, groupID string, userID string, handledMsg string, handleResult int32, member *relationTb.GroupMemberModel) error DeleteGroupMember(ctx context.Context, groupID string, userIDs []string) error @@ -196,65 +198,27 @@ func (g *groupDatabase) FindGroupMember(ctx context.Context, groupIDs []string, return g.groupMemberDB.Find(ctx, groupIDs, userIDs, roleLevels) } -func (g *groupDatabase) PageGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (total uint32, totalGroupMembers []*relationTb.GroupMemberModel, err error) { - if len(roleLevels) == 0 { - if pageNumber == 0 || showNumber == 0 { - if len(groupIDs) == 0 { - for _, userID := range userIDs { - groupIDs, err := g.cache.GetJoinedGroupIDs(ctx, userID) - if err != nil { - return 0, nil, err - } - for _, groupID := range groupIDs { - groupMembers, err := g.cache.GetGroupMembersInfo(ctx, groupID, []string{userID}) - if err != nil { - return 0, nil, err - } - totalGroupMembers = append(totalGroupMembers, groupMembers...) - } - } - - return uint32(len(totalGroupMembers)), totalGroupMembers, nil - } - for _, groupID := range groupIDs { - groupMembers, err := g.cache.GetGroupMembersInfo(ctx, groupID, userIDs) - if err != nil { - return 0, nil, err - } - totalGroupMembers = append(totalGroupMembers, groupMembers...) - } - return uint32(len(totalGroupMembers)), totalGroupMembers, nil - } else { - if len(groupIDs) == 0 { - for _, userID := range userIDs { - groupIDs, err := g.cache.GetJoinedGroupIDs(ctx, userID) - if err != nil { - return 0, nil, err - } - groupIDs = utils.Paginate(groupIDs, int(pageNumber), int(showNumber)) - for _, groupID := range groupIDs { - groupMembers, err := g.cache.GetGroupMembersInfo(ctx, groupID, []string{userID}) - if err != nil { - return 0, nil, err - } - totalGroupMembers = append(totalGroupMembers, groupMembers...) - } - } - return uint32(len(groupIDs)), totalGroupMembers, nil - } - var totalAll uint32 - for _, groupID := range groupIDs { - total, groupMembers, err := g.cache.GetGroupMembersPage(ctx, groupID, userIDs, pageNumber, showNumber) - if err != nil { - return 0, nil, err - } - totalAll += total - totalGroupMembers = append(totalGroupMembers, groupMembers...) - } - return totalAll, totalGroupMembers, nil - } +func (g *groupDatabase) PageGetJoinGroup(ctx context.Context, userID string, pageNumber, showNumber int32) (total uint32, totalGroupMembers []*relationTb.GroupMemberModel, err error) { + groupIDs, err := g.cache.GetJoinedGroupIDs(ctx, userID) + if err != nil { + return 0, nil, err } - return g.groupMemberDB.SearchMember(ctx, "", groupIDs, userIDs, roleLevels, pageNumber, showNumber) + for _, groupID := range utils.Paginate(groupIDs, int(pageNumber), int(showNumber)) { + groupMembers, err := g.cache.GetGroupMembersInfo(ctx, groupID, []string{userID}) + if err != nil { + return 0, nil, err + } + totalGroupMembers = append(totalGroupMembers, groupMembers...) + } + return uint32(len(groupIDs)), totalGroupMembers, nil +} + +func (g *groupDatabase) PageGetGroupMember(ctx context.Context, groupID string, pageNumber, showNumber int32) (total uint32, totalGroupMembers []*relationTb.GroupMemberModel, err error) { + groupMembers, err := g.cache.GetAllGroupMembersInfo(ctx, groupID) + if err != nil { + return 0, nil, err + } + return uint32(len(groupMembers)), utils.Paginate(groupMembers, int(pageNumber), int(showNumber)), nil } func (g *groupDatabase) SearchGroupMember(ctx context.Context, keyword string, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (uint32, []*relationTb.GroupMemberModel, error) { diff --git a/pkg/common/mw/rpc_server_interceptor.go b/pkg/common/mw/rpc_server_interceptor.go index a891bc100..c416c584e 100644 --- a/pkg/common/mw/rpc_server_interceptor.go +++ b/pkg/common/mw/rpc_server_interceptor.go @@ -33,7 +33,7 @@ func RpcServerInterceptor(ctx context.Context, req interface{}, info *grpc.Unary defer func() { if r := recover(); r != nil { log.ZError(ctx, "rpc panic", nil, "FullMethod", info.FullMethod, "type:", fmt.Sprintf("%T", r), "panic:", r) - fmt.Println("stack info:", string(debug.Stack())) + fmt.Printf("panic: %+v\nstack info: %s\n", r, string(debug.Stack())) pc, file, line, ok := runtime.Caller(4) if !ok { panic("get runtime.Caller failed")