mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-05-07 19:22:30 +08:00
1
This commit is contained in:
parent
01d3977766
commit
ef475cb9d9
@ -1,9 +1,7 @@
|
|||||||
package group
|
package group
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"Open_IM/pkg/common/constant"
|
"Open_IM/pkg/common/tracelog"
|
||||||
relation "Open_IM/pkg/common/db/mysql"
|
|
||||||
pbGroup "Open_IM/pkg/proto/group"
|
|
||||||
sdk_ws "Open_IM/pkg/proto/sdk_ws"
|
sdk_ws "Open_IM/pkg/proto/sdk_ws"
|
||||||
"Open_IM/pkg/utils"
|
"Open_IM/pkg/utils"
|
||||||
"context"
|
"context"
|
||||||
@ -12,32 +10,32 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
func getDBGroupRequest(ctx context.Context, req *pbGroup.GroupApplicationResponseReq) (dbGroupRequest *relation.GroupRequest) {
|
//func getDBGroupRequest(ctx context.Context, req *pbGroup.GroupApplicationResponseReq) (dbGroupRequest *relation.GroupRequest) {
|
||||||
dbGroupRequest = &relation.GroupRequest{}
|
// dbGroupRequest = &relation.GroupRequest{}
|
||||||
utils.CopyStructFields(&dbGroupRequest, req)
|
// utils.CopyStructFields(&dbGroupRequest, req)
|
||||||
dbGroupRequest.UserID = req.FromUserID
|
// dbGroupRequest.UserID = req.FromUserID
|
||||||
dbGroupRequest.HandleUserID = utils.OpUserID(ctx)
|
// dbGroupRequest.HandleUserID = utils.OpUserID(ctx)
|
||||||
dbGroupRequest.HandledTime = time.Now()
|
// dbGroupRequest.HandledTime = time.Now()
|
||||||
return dbGroupRequest
|
// return dbGroupRequest
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
func getDBGroupMember(ctx context.Context, groupID, userID string) (dbGroupMember *relation.GroupMember, err error) {
|
//func getDBGroupMember(ctx context.Context, groupID, userID string) (dbGroupMember *relation.GroupMember, err error) {
|
||||||
dbGroupMember = &relation.GroupMember{}
|
// dbGroupMember = &relation.GroupMember{}
|
||||||
|
//
|
||||||
member := relation.GroupMember{}
|
// member := relation.GroupMember{}
|
||||||
member.GroupID = groupID
|
// member.GroupID = groupID
|
||||||
member.UserID = userID
|
// member.UserID = userID
|
||||||
member.RoleLevel = constant.GroupOrdinaryUsers
|
// member.RoleLevel = constant.GroupOrdinaryUsers
|
||||||
member.OperatorUserID = utils.OpUserID(ctx)
|
// member.OperatorUserID = utils.OpUserID(ctx)
|
||||||
|
//
|
||||||
member.FaceURL = user.FaceURL
|
// member.FaceURL = user.FaceURL
|
||||||
member.Nickname = user.Nickname
|
// member.Nickname = user.Nickname
|
||||||
member.JoinSource = request.JoinSource
|
// member.JoinSource = request.JoinSource
|
||||||
member.InviterUserID = request.InviterUserID
|
// member.InviterUserID = request.InviterUserID
|
||||||
member.MuteEndTime = time.Unix(int64(time.Now().Second()), 0)
|
// member.MuteEndTime = time.Unix(int64(time.Now().Second()), 0)
|
||||||
|
//
|
||||||
return dbGroupMember, nil
|
// return dbGroupMember, nil
|
||||||
}
|
//}
|
||||||
|
|
||||||
func getUsersInfo(ctx context.Context, userIDs []string) ([]*sdk_ws.UserInfo, error) {
|
func getUsersInfo(ctx context.Context, userIDs []string) ([]*sdk_ws.UserInfo, error) {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
@ -59,7 +57,7 @@ func genGroupID(ctx context.Context, groupID string) string {
|
|||||||
if groupID != "" {
|
if groupID != "" {
|
||||||
return groupID
|
return groupID
|
||||||
}
|
}
|
||||||
groupID = utils.Md5(utils.OperationID(ctx) + strconv.FormatInt(time.Now().UnixNano(), 10))
|
groupID = utils.Md5(tracelog.GetOperationID(ctx) + strconv.FormatInt(time.Now().UnixNano(), 10))
|
||||||
bi := big.NewInt(0)
|
bi := big.NewInt(0)
|
||||||
bi.SetString(groupID[0:8], 16)
|
bi.SetString(groupID[0:8], 16)
|
||||||
groupID = bi.String()
|
groupID = bi.String()
|
||||||
|
@ -526,14 +526,49 @@ func FillPublicUserInfoByUserID(operationID, userID string, userInfo *open_im_sd
|
|||||||
|
|
||||||
func (s *groupServer) GetGroupApplicationList(ctx context.Context, req *pbGroup.GetGroupApplicationListReq) (*pbGroup.GetGroupApplicationListResp, error) {
|
func (s *groupServer) GetGroupApplicationList(ctx context.Context, req *pbGroup.GetGroupApplicationListReq) (*pbGroup.GetGroupApplicationListResp, error) {
|
||||||
resp := &pbGroup.GetGroupApplicationListResp{}
|
resp := &pbGroup.GetGroupApplicationListResp{}
|
||||||
reply, err := s.GroupInterface.GetGroupRecvApplicationList(ctx, req.FromUserID)
|
groupRequests, err := s.GroupInterface.GetGroupRecvApplicationList(ctx, req.FromUserID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
if len(groupRequests) == 0 {
|
||||||
|
return resp, nil
|
||||||
|
}
|
||||||
|
var (
|
||||||
|
userIDs []string
|
||||||
|
groupIDs []string
|
||||||
|
)
|
||||||
|
for _, gr := range groupRequests {
|
||||||
|
userIDs = append(userIDs, gr.UserID)
|
||||||
|
groupIDs = append(groupIDs, gr.GroupID)
|
||||||
|
}
|
||||||
|
userMap, err := getUserMap(ctx, userIDs)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
for _, userID := range userIDs {
|
||||||
|
if _, ok := userMap[userID]; !ok {
|
||||||
|
return nil, constant.ErrUserIDNotFound.Wrap(userID)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
groups, err := s.GroupInterface.FindGroupsByID(ctx, groupIDs)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
groupMap := make(map[string]*relation.Group)
|
||||||
|
for i, group := range groups {
|
||||||
|
groupMap[group.GroupID] = groups[i]
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, gr := range groupRequests {
|
||||||
|
groupRequest := open_im_sdk.GroupRequest{UserInfo: &open_im_sdk.PublicUserInfo{}, GroupInfo: &open_im_sdk.GroupInfo{}}
|
||||||
|
utils.CopyStructFields(&groupRequest, gr)
|
||||||
|
getUserMap()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
var errResult error
|
var errResult error
|
||||||
tracelog.SetCtxInfo(ctx, "GetRecvGroupApplicationList", nil, " FromUserID: ", req.FromUserID, "GroupApplicationList: ", reply)
|
tracelog.SetCtxInfo(ctx, "GetRecvGroupApplicationList", nil, " FromUserID: ", req.FromUserID, "GroupApplicationList: ", groupRequests)
|
||||||
for _, v := range reply {
|
for _, v := range groupRequests {
|
||||||
node := open_im_sdk.GroupRequest{UserInfo: &open_im_sdk.PublicUserInfo{}, GroupInfo: &open_im_sdk.GroupInfo{}}
|
node := open_im_sdk.GroupRequest{UserInfo: &open_im_sdk.PublicUserInfo{}, GroupInfo: &open_im_sdk.GroupInfo{}}
|
||||||
err := FillGroupInfoByGroupID(tracelog.GetOperationID(ctx), v.GroupID, node.GroupInfo)
|
err := FillGroupInfoByGroupID(tracelog.GetOperationID(ctx), v.GroupID, node.GroupInfo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user