|
|
@ -13,13 +13,10 @@ import (
|
|
|
|
prome "Open_IM/pkg/common/prometheus"
|
|
|
|
prome "Open_IM/pkg/common/prometheus"
|
|
|
|
"Open_IM/pkg/common/tokenverify"
|
|
|
|
"Open_IM/pkg/common/tokenverify"
|
|
|
|
"Open_IM/pkg/common/tracelog"
|
|
|
|
"Open_IM/pkg/common/tracelog"
|
|
|
|
"Open_IM/pkg/proto/group"
|
|
|
|
|
|
|
|
pbgroup "Open_IM/pkg/proto/group"
|
|
|
|
|
|
|
|
"Open_IM/pkg/proto/sdkws"
|
|
|
|
"Open_IM/pkg/proto/sdkws"
|
|
|
|
pbuser "Open_IM/pkg/proto/user"
|
|
|
|
pbuser "Open_IM/pkg/proto/user"
|
|
|
|
"Open_IM/pkg/utils"
|
|
|
|
"Open_IM/pkg/utils"
|
|
|
|
"context"
|
|
|
|
"context"
|
|
|
|
"github.com/golang/protobuf/ptypes/wrappers"
|
|
|
|
|
|
|
|
grpcPrometheus "github.com/grpc-ecosystem/go-grpc-prometheus"
|
|
|
|
grpcPrometheus "github.com/grpc-ecosystem/go-grpc-prometheus"
|
|
|
|
|
|
|
|
|
|
|
|
"google.golang.org/grpc"
|
|
|
|
"google.golang.org/grpc"
|
|
|
@ -86,87 +83,103 @@ func (s *userServer) Run() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// ok
|
|
|
|
// ok
|
|
|
|
func (s *userServer) SyncJoinedGroupMemberFaceURL(ctx context.Context, userID string, faceURL string, operationID string, opUserID string) {
|
|
|
|
//func (s *userServer) SyncJoinedGroupMemberFaceURL(ctx context.Context, userID string, faceURL string, operationID string, opUserID string) {
|
|
|
|
members, err := s.GetJoinedGroupMembers(ctx, userID)
|
|
|
|
// members, err := s.GetJoinedGroupMembers(ctx, userID)
|
|
|
|
if err != nil {
|
|
|
|
// if err != nil {
|
|
|
|
return
|
|
|
|
// return
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
groupIDs := make([]string, 0)
|
|
|
|
// groupIDs := make([]string, 0)
|
|
|
|
for _, v := range members {
|
|
|
|
// for _, v := range members {
|
|
|
|
groupIDs = append(groupIDs, v.GroupID)
|
|
|
|
// groupIDs = append(groupIDs, v.GroupID)
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
if s.SetGroupMemberInfo(ctx, "", faceURL, "", 0, groupIDs, userID) != nil {
|
|
|
|
// if s.SetGroupMemberInfo(ctx, "", faceURL, "", 0, groupIDs, userID) != nil {
|
|
|
|
return
|
|
|
|
// return
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
for _, v := range groupIDs {
|
|
|
|
// for _, v := range groupIDs {
|
|
|
|
chat.GroupMemberInfoSetNotification(operationID, opUserID, v, userID)
|
|
|
|
// chat.GroupMemberInfoSetNotification(operationID, opUserID, v, userID)
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
// ok
|
|
|
|
// ok
|
|
|
|
func (s *userServer) SyncJoinedGroupMemberNickname(ctx context.Context, userID string, newNickname, oldNickname string, operationID string, opUserID string) {
|
|
|
|
//func (s *userServer) SyncJoinedGroupMemberNickname(ctx context.Context, userID string, newNickname, oldNickname string, operationID string, opUserID string) {
|
|
|
|
members, err := s.GetJoinedGroupMembers(ctx, userID)
|
|
|
|
// members, err := s.GetJoinedGroupMembers(ctx, userID)
|
|
|
|
if err != nil {
|
|
|
|
// if err != nil {
|
|
|
|
return
|
|
|
|
// return
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
groupIDs := make([]string, 0)
|
|
|
|
// groupIDs := make([]string, 0)
|
|
|
|
for _, v := range members {
|
|
|
|
// for _, v := range members {
|
|
|
|
if v.Nickname == oldNickname {
|
|
|
|
// if v.Nickname == oldNickname {
|
|
|
|
groupIDs = append(groupIDs, v.GroupID)
|
|
|
|
// groupIDs = append(groupIDs, v.GroupID)
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
s.SetGroupMemberInfo(ctx, newNickname, "", "", 0, groupIDs, userID)
|
|
|
|
// s.SetGroupMemberInfo(ctx, newNickname, "", "", 0, groupIDs, userID)
|
|
|
|
for _, v := range groupIDs {
|
|
|
|
// for _, v := range groupIDs {
|
|
|
|
chat.GroupMemberInfoSetNotification(operationID, opUserID, v, userID)
|
|
|
|
// chat.GroupMemberInfoSetNotification(operationID, opUserID, v, userID)
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
// 设置群昵称
|
|
|
|
// 设置群头像
|
|
|
|
//func (s *userServer) SetGroupMemberNickname(ctx context.Context, nickname string, groupID string, userID string) (err error) {
|
|
|
|
//func (s *userServer) SetGroupMemberInfo(ctx context.Context, nickname, faceURL, ex string, roleLevel int32, groupIDs []string, userID string) (err error) {
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// req := pbgroup.SetGroupMemberInfo{UserID: userID}
|
|
|
|
|
|
|
|
// if nickname != "" {
|
|
|
|
|
|
|
|
// req.Nickname = &wrappers.StringValue{Value: nickname}
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// if faceURL != "" {
|
|
|
|
|
|
|
|
// req.FaceURL = &wrappers.StringValue{Value: faceURL}
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// if ex != "" {
|
|
|
|
|
|
|
|
// req.Ex = &wrappers.StringValue{Value: ex}
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// if roleLevel != 0 {
|
|
|
|
|
|
|
|
// req.RoleLevel = &wrappers.Int32Value{Value: roleLevel}
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// setGroupMemberInfoReq := &pbgroup.SetGroupMemberInfoReq{}
|
|
|
|
|
|
|
|
// for _, v := range groupIDs {
|
|
|
|
|
|
|
|
// req.GroupID = v
|
|
|
|
|
|
|
|
// setGroupMemberInfoReq.Members = append(setGroupMemberInfoReq.Members, &req)
|
|
|
|
|
|
|
|
// }
|
|
|
|
// conn, err := s.RegisterCenter.GetConn(config.Config.RpcRegisterName.OpenImGroupName)
|
|
|
|
// conn, err := s.RegisterCenter.GetConn(config.Config.RpcRegisterName.OpenImGroupName)
|
|
|
|
// if err != nil {
|
|
|
|
// if err != nil {
|
|
|
|
// return err
|
|
|
|
// return err
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// client := group.NewGroupClient(conn)
|
|
|
|
// client := group.NewGroupClient(conn)
|
|
|
|
// req := &pbgroup.SetGroupMemberNicknameReq{GroupID: groupID, Nickname: nickname, UserID: userID}
|
|
|
|
// _, err = client.SetGroupMemberInfo(ctx, setGroupMemberInfoReq)
|
|
|
|
// _, err = client.SetGroupMemberNickname(ctx, req)
|
|
|
|
|
|
|
|
// return
|
|
|
|
// return
|
|
|
|
//}
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
// 设置群头像
|
|
|
|
|
|
|
|
func (s *userServer) SetGroupMemberInfo(ctx context.Context, nickname, faceURL, ex string, roleLevel int32, groupIDs []string, userID string) (err error) {
|
|
|
|
|
|
|
|
conn, err := s.RegisterCenter.GetConn(config.Config.RpcRegisterName.OpenImGroupName)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
return err
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
req := pbgroup.SetGroupMemberInfo{UserID: userID}
|
|
|
|
|
|
|
|
if nickname != "" {
|
|
|
|
|
|
|
|
req.Nickname = &wrappers.StringValue{Value: nickname}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if faceURL != "" {
|
|
|
|
|
|
|
|
req.FaceURL = &wrappers.StringValue{Value: faceURL}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if ex != "" {
|
|
|
|
|
|
|
|
req.Ex = &wrappers.StringValue{Value: ex}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if roleLevel != 0 {
|
|
|
|
|
|
|
|
req.RoleLevel = &wrappers.Int32Value{Value: roleLevel}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
setGroupMemberInfoReq := &pbgroup.SetGroupMemberInfoReq{}
|
|
|
|
|
|
|
|
for _, v := range groupIDs {
|
|
|
|
|
|
|
|
req.GroupID = v
|
|
|
|
|
|
|
|
setGroupMemberInfoReq.Members = append(setGroupMemberInfoReq.Members, &req)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
client := group.NewGroupClient(conn)
|
|
|
|
|
|
|
|
_, err = client.SetGroupMemberInfo(ctx, setGroupMemberInfoReq)
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 获取加入的群成员信息
|
|
|
|
// 获取加入的群成员信息
|
|
|
|
func (s *userServer) GetJoinedGroupMembers(ctx context.Context, userID string) (members []*sdkws.GroupMemberFullInfo, err error) {
|
|
|
|
//func (s *userServer) GetJoinedGroupMembers(ctx context.Context, userID string) (members []*sdkws.GroupMemberFullInfo, err error) {
|
|
|
|
return
|
|
|
|
// conn, err := s.RegisterCenter.GetConn(config.Config.RpcRegisterName.OpenImGroupName)
|
|
|
|
}
|
|
|
|
// if err != nil {
|
|
|
|
|
|
|
|
// return nil, err
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// client := group.NewGroupClient(conn)
|
|
|
|
|
|
|
|
// for {
|
|
|
|
|
|
|
|
// idx := int32(0)
|
|
|
|
|
|
|
|
// req := pbgroup.GetJoinedGroupListReq{FromUserID: userID, Pagination: &sdkws.RequestPagination{PageNumber: idx, ShowNumber: constant.ShowNumber}}
|
|
|
|
|
|
|
|
// resp, err := client.GetJoinedGroupList(ctx, &req)
|
|
|
|
|
|
|
|
// if err != nil {
|
|
|
|
|
|
|
|
// return nil, err
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// groupIDs := make([]string, 0)
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// for _, v := range resp.Groups {
|
|
|
|
|
|
|
|
// groupIDs = append(groupIDs, v.GroupID)
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// client.GetGroupMembersInfo()
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// if len(resp.Groups) < constant.ShowNumber {
|
|
|
|
|
|
|
|
// break
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// idx++
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// return
|
|
|
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
// ok
|
|
|
|
// ok
|
|
|
|
func (s *userServer) GetDesignateUsers(ctx context.Context, req *pbuser.GetDesignateUsersReq) (resp *pbuser.GetDesignateUsersResp, err error) {
|
|
|
|
func (s *userServer) GetDesignateUsers(ctx context.Context, req *pbuser.GetDesignateUsersReq) (resp *pbuser.GetDesignateUsersResp, err error) {
|
|
|
@ -193,14 +206,14 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbuser.UpdateUserI
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
oldNickname := ""
|
|
|
|
//oldNickname := ""
|
|
|
|
if req.UserInfo.Nickname != "" {
|
|
|
|
//if req.UserInfo.Nickname != "" {
|
|
|
|
u, err := s.FindWithError(ctx, []string{req.UserInfo.UserID})
|
|
|
|
// u, err := s.FindWithError(ctx, []string{req.UserInfo.UserID})
|
|
|
|
if err != nil {
|
|
|
|
// if err != nil {
|
|
|
|
return nil, err
|
|
|
|
// return nil, err
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
oldNickname = u[0].Nickname
|
|
|
|
// oldNickname = u[0].Nickname
|
|
|
|
}
|
|
|
|
//}
|
|
|
|
user, err := convert.NewPBUser(req.UserInfo).Convert()
|
|
|
|
user, err := convert.NewPBUser(req.UserInfo).Convert()
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
return nil, err
|
|
|
@ -220,12 +233,7 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbuser.UpdateUserI
|
|
|
|
}()
|
|
|
|
}()
|
|
|
|
|
|
|
|
|
|
|
|
chat.UserInfoUpdatedNotification(ctx, tracelog.GetOpUserID(ctx), req.UserInfo.UserID)
|
|
|
|
chat.UserInfoUpdatedNotification(ctx, tracelog.GetOpUserID(ctx), req.UserInfo.UserID)
|
|
|
|
if req.UserInfo.FaceURL != "" {
|
|
|
|
|
|
|
|
go s.SyncJoinedGroupMemberFaceURL(ctx, req.UserInfo.UserID, req.UserInfo.FaceURL, tracelog.GetOperationID(ctx), tracelog.GetOpUserID(ctx))
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if req.UserInfo.Nickname != "" {
|
|
|
|
|
|
|
|
go s.SyncJoinedGroupMemberNickname(ctx, req.UserInfo.UserID, req.UserInfo.Nickname, oldNickname, tracelog.GetOperationID(ctx), tracelog.GetOpUserID(ctx))
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return resp, nil
|
|
|
|
return resp, nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -296,7 +304,6 @@ func (s *userServer) UserRegister(ctx context.Context, req *pbuser.UserRegisterR
|
|
|
|
for _, v := range req.Users {
|
|
|
|
for _, v := range req.Users {
|
|
|
|
userIDs = append(userIDs, v.UserID)
|
|
|
|
userIDs = append(userIDs, v.UserID)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
exist, err := s.IsExist(ctx, userIDs)
|
|
|
|
exist, err := s.IsExist(ctx, userIDs)
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
return nil, err
|
|
|
|