Merge remote-tracking branch 'origin/errcode' into errcode

This commit is contained in:
withchao
2023-04-21 19:54:02 +08:00
12 changed files with 206 additions and 78 deletions
+1 -1
View File
@@ -87,7 +87,7 @@ func getCache[T any](ctx context.Context, rcClient *rockscache.Client, key strin
return t, nil
}
if v == "" {
return t, errs.ErrRecordNotFound
return t, errs.ErrRecordNotFound.Wrap("cache is not found")
}
err = json.Unmarshal([]byte(v), &t)
if err != nil {
+57 -57
View File
@@ -197,63 +197,63 @@ func (g *groupDatabase) FindGroupMember(ctx context.Context, groupIDs []string,
}
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
// }
//}
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
}
}
return g.groupMemberDB.SearchMember(ctx, "", groupIDs, userIDs, roleLevels, pageNumber, showNumber)
}
+3 -2
View File
@@ -2,6 +2,7 @@ package relation
import (
"context"
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/table/relation"
"github.com/OpenIMSDK/Open-IM-Server/pkg/utils"
"gorm.io/gorm"
@@ -77,7 +78,7 @@ func (f *FriendGorm) FindOwnerFriends(ctx context.Context, ownerUserID string, p
if err != nil {
return nil, 0, utils.Wrap(err, "")
}
err = utils.Wrap(f.db(ctx).Where("owner_user_id = ? ", ownerUserID).Limit(int(showNumber)).Offset(int(pageNumber*showNumber)).Find(&friends).Error, "")
err = utils.Wrap(f.db(ctx).Where("owner_user_id = ? ", ownerUserID).Limit(int(showNumber)).Offset(int((pageNumber-1)*showNumber)).Find(&friends).Error, "")
return
}
@@ -87,7 +88,7 @@ func (f *FriendGorm) FindInWhoseFriends(ctx context.Context, friendUserID string
if err != nil {
return nil, 0, utils.Wrap(err, "")
}
err = utils.Wrap(f.db(ctx).Where("friend_user_id = ? ", friendUserID).Limit(int(showNumber)).Offset(int(pageNumber*showNumber)).Find(&friends).Error, "")
err = utils.Wrap(f.db(ctx).Where("friend_user_id = ? ", friendUserID).Limit(int(showNumber)).Offset(int((pageNumber-1)*showNumber)).Find(&friends).Error, "")
return
}
+1 -1
View File
@@ -50,7 +50,7 @@ func (u *UserGorm) Page(ctx context.Context, pageNumber, showNumber int32) (user
if err != nil {
return
}
err = utils.Wrap(u.db(ctx).Limit(int(showNumber)).Offset(int(pageNumber*showNumber)).Find(&users).Order("create_time DESC").Error, "")
err = utils.Wrap(u.db(ctx).Limit(int(showNumber)).Offset(int((pageNumber-1)*showNumber)).Find(&users).Order("create_time DESC").Error, "")
return
}