diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 02d6ae314..dd5643536 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -104,19 +104,6 @@ func Start(client discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) e gs.conversationRpcClient = conversationRpcClient gs.msgRpcClient = msgRpcClient pbgroup.RegisterGroupServer(server, &gs) - //pbgroup.RegisterGroupServer(server, &groupServer{ - // db: database, - // User: userRpcClient, - // Notification: notification.NewGroupNotificationSender(database, &msgRpcClient, &userRpcClient, func(ctx context.Context, userIDs []string) ([]notification.CommonUser, error) { - // users, err := userRpcClient.GetUsersInfo(ctx, userIDs) - // if err != nil { - // return nil, err - // } - // return utils.Slice(users, func(e *sdkws.UserInfo) notification.CommonUser { return e }), nil - // }), - // conversationRpcClient: conversationRpcClient, - // msgRpcClient: msgRpcClient, - //}) return nil } @@ -1569,7 +1556,7 @@ func (s *groupServer) GetGroupMemberRoleLevel(ctx context.Context, req *pbgroup. func (s *groupServer) GetGroupUsersReqApplicationList(ctx context.Context, req *pbgroup.GetGroupUsersReqApplicationListReq) (*pbgroup.GetGroupUsersReqApplicationListResp, error) { resp := &pbgroup.GetGroupUsersReqApplicationListResp{} - total, requests, err := s.db.FindGroupRequests(ctx, req.GroupID, req.UserIDs) + requests, err := s.db.FindGroupRequests(ctx, req.GroupID, req.UserIDs) if err != nil { return nil, err } @@ -1610,7 +1597,7 @@ func (s *groupServer) GetGroupUsersReqApplicationList(ctx context.Context, req * } return convert.Db2PbGroupRequest(e, nil, convert.Db2PbGroupInfo(groupMap[e.GroupID], ownerUserID, groupMemberNum[e.GroupID])) }) - resp.Total = total + resp.Total = int64(len(resp.GroupRequests)) return resp, nil } diff --git a/pkg/common/db/controller/group.go b/pkg/common/db/controller/group.go index 5060ed9c3..26217e1ad 100644 --- a/pkg/common/db/controller/group.go +++ b/pkg/common/db/controller/group.go @@ -63,7 +63,7 @@ type GroupDatabase interface { // GroupRequest CreateGroupRequest(ctx context.Context, requests []*relationtb.GroupRequestModel) error TakeGroupRequest(ctx context.Context, groupID string, userID string) (*relationtb.GroupRequestModel, error) - FindGroupRequests(ctx context.Context, groupID string, userIDs []string) (int64, []*relationtb.GroupRequestModel, error) + FindGroupRequests(ctx context.Context, groupID string, userIDs []string) ([]*relationtb.GroupRequestModel, error) PageGroupRequestUser(ctx context.Context, userID string, pagination pagination.Pagination) (int64, []*relationtb.GroupRequestModel, error) // 获取群总数 @@ -381,7 +381,7 @@ func (g *groupDatabase) CountRangeEverydayTotal(ctx context.Context, start time. return g.groupDB.CountRangeEverydayTotal(ctx, start, end) } -func (g *groupDatabase) FindGroupRequests(ctx context.Context, groupID string, userIDs []string) (int64, []*relationtb.GroupRequestModel, error) { +func (g *groupDatabase) FindGroupRequests(ctx context.Context, groupID string, userIDs []string) ([]*relationtb.GroupRequestModel, error) { return g.groupRequestDB.FindGroupRequests(ctx, groupID, userIDs) } diff --git a/pkg/common/db/newmgo/group_request.go b/pkg/common/db/newmgo/group_request.go index e28ef415b..ea367b653 100644 --- a/pkg/common/db/newmgo/group_request.go +++ b/pkg/common/db/newmgo/group_request.go @@ -2,8 +2,10 @@ package newmgo import ( "context" + "github.com/openimsdk/open-im-server/v3/pkg/common/db/newmgo/mgotool" "github.com/openimsdk/open-im-server/v3/pkg/common/db/table/relation" "github.com/openimsdk/open-im-server/v3/pkg/common/pagination" + "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo" ) @@ -16,36 +18,29 @@ type GroupRequestMgo struct { } func (g *GroupRequestMgo) Create(ctx context.Context, groupRequests []*relation.GroupRequestModel) (err error) { - //TODO implement me - panic("implement me") + return mgotool.InsertMany(ctx, g.coll, groupRequests) } func (g *GroupRequestMgo) Delete(ctx context.Context, groupID string, userID string) (err error) { - //TODO implement me - panic("implement me") + return mgotool.DeleteOne(ctx, g.coll, bson.M{"group_id": groupID, "user_id": userID}) } func (g *GroupRequestMgo) UpdateHandler(ctx context.Context, groupID string, userID string, handledMsg string, handleResult int32) (err error) { - //TODO implement me - panic("implement me") + return mgotool.UpdateOne(ctx, g.coll, bson.M{"group_id": groupID, "user_id": userID}, bson.M{"$set": bson.M{"handle_msg": handledMsg, "handle_result": handleResult}}, true) } func (g *GroupRequestMgo) Take(ctx context.Context, groupID string, userID string) (groupRequest *relation.GroupRequestModel, err error) { - //TODO implement me - panic("implement me") + return mgotool.FindOne[*relation.GroupRequestModel](ctx, g.coll, bson.M{"group_id": groupID, "user_id": userID}) } -func (g *GroupRequestMgo) FindGroupRequests(ctx context.Context, groupID string, userIDs []string) (int64, []*relation.GroupRequestModel, error) { - //TODO implement me - panic("implement me") +func (g *GroupRequestMgo) FindGroupRequests(ctx context.Context, groupID string, userIDs []string) ([]*relation.GroupRequestModel, error) { + return mgotool.Find[*relation.GroupRequestModel](ctx, g.coll, bson.M{"group_id": groupID, "user_id": bson.M{"$in": userIDs}}) } func (g *GroupRequestMgo) Page(ctx context.Context, userID string, pagination pagination.Pagination) (total int64, groups []*relation.GroupRequestModel, err error) { - //TODO implement me - panic("implement me") + return mgotool.FindPage[*relation.GroupRequestModel](ctx, g.coll, bson.M{"user_id": userID}, pagination) } func (g *GroupRequestMgo) PageGroup(ctx context.Context, groupIDs []string, pagination pagination.Pagination) (total int64, groups []*relation.GroupRequestModel, err error) { - //TODO implement me - panic("implement me") + return mgotool.FindPage[*relation.GroupRequestModel](ctx, g.coll, bson.M{"group_id": bson.M{"$in": groupIDs}}, pagination) } diff --git a/pkg/common/db/relation/group_request_model.go b/pkg/common/db/relation/group_request_model.go index af3f277e8..aa601aaba 100644 --- a/pkg/common/db/relation/group_request_model.go +++ b/pkg/common/db/relation/group_request_model.go @@ -14,105 +14,106 @@ package relation -import ( - "context" - - "github.com/OpenIMSDK/tools/ormutil" - - "gorm.io/gorm" - - "github.com/OpenIMSDK/tools/utils" - - "github.com/openimsdk/open-im-server/v3/pkg/common/db/table/relation" -) - -type GroupRequestGorm struct { - *MetaDB -} - -func NewGroupRequest(db *gorm.DB) relation.GroupRequestModelInterface { - return &GroupRequestGorm{ - NewMetaDB(db, &relation.GroupRequestModel{}), - } -} - -func (g *GroupRequestGorm) NewTx(tx any) relation.GroupRequestModelInterface { - return &GroupRequestGorm{NewMetaDB(tx.(*gorm.DB), &relation.GroupRequestModel{})} -} - -func (g *GroupRequestGorm) Create(ctx context.Context, groupRequests []*relation.GroupRequestModel) (err error) { - return utils.Wrap(g.DB.WithContext(ctx).Create(&groupRequests).Error, utils.GetSelfFuncName()) -} - -func (g *GroupRequestGorm) Delete(ctx context.Context, groupID string, userID string) (err error) { - return utils.Wrap( - g.DB.WithContext(ctx). - Where("group_id = ? and user_id = ? ", groupID, userID). - Delete(&relation.GroupRequestModel{}). - Error, - utils.GetSelfFuncName(), - ) -} - -func (g *GroupRequestGorm) UpdateHandler( - ctx context.Context, - groupID string, - userID string, - handledMsg string, - handleResult int32, -) (err error) { - return utils.Wrap( - g.DB.WithContext(ctx). - Model(&relation.GroupRequestModel{}). - Where("group_id = ? and user_id = ? ", groupID, userID). - Updates(map[string]any{ - "handle_msg": handledMsg, - "handle_result": handleResult, - }). - Error, - utils.GetSelfFuncName(), - ) -} - -func (g *GroupRequestGorm) Take( - ctx context.Context, - groupID string, - userID string, -) (groupRequest *relation.GroupRequestModel, err error) { - groupRequest = &relation.GroupRequestModel{} - return groupRequest, utils.Wrap( - g.DB.WithContext(ctx).Where("group_id = ? and user_id = ? ", groupID, userID).Take(groupRequest).Error, - utils.GetSelfFuncName(), - ) -} - -func (g *GroupRequestGorm) Page( - ctx context.Context, - userID string, - pageNumber, showNumber int32, -) (total uint32, groups []*relation.GroupRequestModel, err error) { - return ormutil.GormSearch[relation.GroupRequestModel]( - g.DB.WithContext(ctx).Where("user_id = ?", userID), - nil, - "", - pageNumber, - showNumber, - ) -} - -func (g *GroupRequestGorm) PageGroup( - ctx context.Context, - groupIDs []string, - pageNumber, showNumber int32, -) (total uint32, groups []*relation.GroupRequestModel, err error) { - return ormutil.GormPage[relation.GroupRequestModel]( - g.DB.WithContext(ctx).Where("group_id in ?", groupIDs), - pageNumber, - showNumber, - ) -} - -func (g *GroupRequestGorm) FindGroupRequests(ctx context.Context, groupID string, userIDs []string) (total int64, groupRequests []*relation.GroupRequestModel, err error) { - err = g.DB.WithContext(ctx).Where("group_id = ? and user_id in ?", groupID, userIDs).Find(&groupRequests).Error - return int64(len(groupRequests)), groupRequests, utils.Wrap(err, utils.GetSelfFuncName()) -} +// +//import ( +// "context" +// +// "github.com/OpenIMSDK/tools/ormutil" +// +// "gorm.io/gorm" +// +// "github.com/OpenIMSDK/tools/utils" +// +// "github.com/openimsdk/open-im-server/v3/pkg/common/db/table/relation" +//) +// +//type GroupRequestGorm struct { +// *MetaDB +//} +// +//func NewGroupRequest(db *gorm.DB) relation.GroupRequestModelInterface { +// return &GroupRequestGorm{ +// NewMetaDB(db, &relation.GroupRequestModel{}), +// } +//} +// +//func (g *GroupRequestGorm) NewTx(tx any) relation.GroupRequestModelInterface { +// return &GroupRequestGorm{NewMetaDB(tx.(*gorm.DB), &relation.GroupRequestModel{})} +//} +// +//func (g *GroupRequestGorm) Create(ctx context.Context, groupRequests []*relation.GroupRequestModel) (err error) { +// return utils.Wrap(g.DB.WithContext(ctx).Create(&groupRequests).Error, utils.GetSelfFuncName()) +//} +// +//func (g *GroupRequestGorm) Delete(ctx context.Context, groupID string, userID string) (err error) { +// return utils.Wrap( +// g.DB.WithContext(ctx). +// Where("group_id = ? and user_id = ? ", groupID, userID). +// Delete(&relation.GroupRequestModel{}). +// Error, +// utils.GetSelfFuncName(), +// ) +//} +// +//func (g *GroupRequestGorm) UpdateHandler( +// ctx context.Context, +// groupID string, +// userID string, +// handledMsg string, +// handleResult int32, +//) (err error) { +// return utils.Wrap( +// g.DB.WithContext(ctx). +// Model(&relation.GroupRequestModel{}). +// Where("group_id = ? and user_id = ? ", groupID, userID). +// Updates(map[string]any{ +// "handle_msg": handledMsg, +// "handle_result": handleResult, +// }). +// Error, +// utils.GetSelfFuncName(), +// ) +//} +// +//func (g *GroupRequestGorm) Take( +// ctx context.Context, +// groupID string, +// userID string, +//) (groupRequest *relation.GroupRequestModel, err error) { +// groupRequest = &relation.GroupRequestModel{} +// return groupRequest, utils.Wrap( +// g.DB.WithContext(ctx).Where("group_id = ? and user_id = ? ", groupID, userID).Take(groupRequest).Error, +// utils.GetSelfFuncName(), +// ) +//} +// +//func (g *GroupRequestGorm) Page( +// ctx context.Context, +// userID string, +// pageNumber, showNumber int32, +//) (total uint32, groups []*relation.GroupRequestModel, err error) { +// return ormutil.GormSearch[relation.GroupRequestModel]( +// g.DB.WithContext(ctx).Where("user_id = ?", userID), +// nil, +// "", +// pageNumber, +// showNumber, +// ) +//} +// +//func (g *GroupRequestGorm) PageGroup( +// ctx context.Context, +// groupIDs []string, +// pageNumber, showNumber int32, +//) (total uint32, groups []*relation.GroupRequestModel, err error) { +// return ormutil.GormPage[relation.GroupRequestModel]( +// g.DB.WithContext(ctx).Where("group_id in ?", groupIDs), +// pageNumber, +// showNumber, +// ) +//} +// +//func (g *GroupRequestGorm) FindGroupRequests(ctx context.Context, groupID string, userIDs []string) (total int64, groupRequests []*relation.GroupRequestModel, err error) { +// err = g.DB.WithContext(ctx).Where("group_id = ? and user_id in ?", groupID, userIDs).Find(&groupRequests).Error +// return int64(len(groupRequests)), groupRequests, utils.Wrap(err, utils.GetSelfFuncName()) +//} diff --git a/pkg/common/db/table/relation/group_request.go b/pkg/common/db/table/relation/group_request.go index 55ba5b3ef..83c0cf5bd 100644 --- a/pkg/common/db/table/relation/group_request.go +++ b/pkg/common/db/table/relation/group_request.go @@ -57,12 +57,11 @@ func (GroupRequestModel) TableName() string { } type GroupRequestModelInterface interface { - //NewTx(tx any) GroupRequestModelInterface Create(ctx context.Context, groupRequests []*GroupRequestModel) (err error) Delete(ctx context.Context, groupID string, userID string) (err error) UpdateHandler(ctx context.Context, groupID string, userID string, handledMsg string, handleResult int32) (err error) Take(ctx context.Context, groupID string, userID string) (groupRequest *GroupRequestModel, err error) - FindGroupRequests(ctx context.Context, groupID string, userIDs []string) (int64, []*GroupRequestModel, error) + FindGroupRequests(ctx context.Context, groupID string, userIDs []string) ([]*GroupRequestModel, error) Page(ctx context.Context, userID string, pagination pagination.Pagination) (total int64, groups []*GroupRequestModel, err error) PageGroup(ctx context.Context, groupIDs []string, pagination pagination.Pagination) (total int64, groups []*GroupRequestModel, err error) }