mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-05-21 12:19:18 +08:00
fix: modifying user information notifications to join groups and group avatar issues (#1147)
* fix: user update group notification, group member face url * fix: user update group notification, group member face url
This commit is contained in:
parent
f198317ce7
commit
eb749af807
2
go.work
2
go.work
@ -4,7 +4,7 @@ use (
|
|||||||
.
|
.
|
||||||
./test/typecheck
|
./test/typecheck
|
||||||
./tools/changelog
|
./tools/changelog
|
||||||
./tools/imctl
|
//./tools/imctl
|
||||||
./tools/infra
|
./tools/infra
|
||||||
./tools/ncpu
|
./tools/ncpu
|
||||||
./tools/openim-web
|
./tools/openim-web
|
||||||
|
@ -225,15 +225,16 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbgroup.CreateGroupR
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
joinGroup := func(userID string, roleLevel int32) error {
|
joinGroup := func(userID string, roleLevel int32) error {
|
||||||
groupMember := convert.Pb2DbGroupMember(userMap[userID])
|
groupMember := &relationtb.GroupMemberModel{
|
||||||
groupMember.Nickname = ""
|
GroupID: group.GroupID,
|
||||||
groupMember.GroupID = group.GroupID
|
UserID: userID,
|
||||||
groupMember.RoleLevel = roleLevel
|
RoleLevel: roleLevel,
|
||||||
groupMember.OperatorUserID = mcontext.GetOpUserID(ctx)
|
OperatorUserID: opUserID,
|
||||||
groupMember.JoinSource = constant.JoinByInvitation
|
JoinSource: constant.JoinByInvitation,
|
||||||
groupMember.InviterUserID = mcontext.GetOpUserID(ctx)
|
InviterUserID: opUserID,
|
||||||
groupMember.JoinTime = time.Now()
|
JoinTime: time.Now(),
|
||||||
groupMember.MuteEndTime = time.Unix(0, 0)
|
MuteEndTime: time.UnixMilli(0),
|
||||||
|
}
|
||||||
if err := CallbackBeforeMemberJoinGroup(ctx, groupMember, group.Ex); err != nil {
|
if err := CallbackBeforeMemberJoinGroup(ctx, groupMember, group.Ex); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -359,6 +360,9 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbgroup.Invite
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
if len(userMap) != len(req.InvitedUserIDs) {
|
||||||
|
return nil, errs.ErrRecordNotFound.Wrap("user not found")
|
||||||
|
}
|
||||||
var groupMember *relationtb.GroupMemberModel
|
var groupMember *relationtb.GroupMemberModel
|
||||||
var opUserID string
|
var opUserID string
|
||||||
if !authverify.IsAppManagerUid(ctx) {
|
if !authverify.IsAppManagerUid(ctx) {
|
||||||
@ -416,15 +420,16 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbgroup.Invite
|
|||||||
opUserID := mcontext.GetOpUserID(ctx)
|
opUserID := mcontext.GetOpUserID(ctx)
|
||||||
var groupMembers []*relationtb.GroupMemberModel
|
var groupMembers []*relationtb.GroupMemberModel
|
||||||
for _, userID := range req.InvitedUserIDs {
|
for _, userID := range req.InvitedUserIDs {
|
||||||
member := convert.Pb2DbGroupMember(userMap[userID])
|
member := &relationtb.GroupMemberModel{
|
||||||
member.Nickname = ""
|
GroupID: req.GroupID,
|
||||||
member.GroupID = req.GroupID
|
UserID: userID,
|
||||||
member.RoleLevel = constant.GroupOrdinaryUsers
|
RoleLevel: constant.GroupOrdinaryUsers,
|
||||||
member.OperatorUserID = opUserID
|
OperatorUserID: opUserID,
|
||||||
member.InviterUserID = opUserID
|
InviterUserID: opUserID,
|
||||||
member.JoinSource = constant.JoinByInvitation
|
JoinSource: constant.JoinByInvitation,
|
||||||
member.JoinTime = time.Now()
|
JoinTime: time.Now(),
|
||||||
member.MuteEndTime = time.Unix(0, 0)
|
MuteEndTime: time.UnixMilli(0),
|
||||||
|
}
|
||||||
if err := CallbackBeforeMemberJoinGroup(ctx, member, group.Ex); err != nil {
|
if err := CallbackBeforeMemberJoinGroup(ctx, member, group.Ex); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -800,14 +805,15 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbgroup.JoinGroupReq)
|
|||||||
if group.GroupType == constant.SuperGroup {
|
if group.GroupType == constant.SuperGroup {
|
||||||
return nil, errs.ErrGroupTypeNotSupport.Wrap()
|
return nil, errs.ErrGroupTypeNotSupport.Wrap()
|
||||||
}
|
}
|
||||||
groupMember := convert.Pb2DbGroupMember(user)
|
groupMember := &relationtb.GroupMemberModel{
|
||||||
groupMember.GroupID = group.GroupID
|
GroupID: group.GroupID,
|
||||||
groupMember.RoleLevel = constant.GroupOrdinaryUsers
|
UserID: user.UserID,
|
||||||
groupMember.OperatorUserID = mcontext.GetOpUserID(ctx)
|
RoleLevel: constant.GroupOrdinaryUsers,
|
||||||
groupMember.JoinSource = constant.JoinByInvitation
|
OperatorUserID: mcontext.GetOpUserID(ctx),
|
||||||
groupMember.InviterUserID = req.InviterUserID
|
InviterUserID: req.InviterUserID,
|
||||||
groupMember.JoinTime = time.Now()
|
JoinTime: time.Now(),
|
||||||
groupMember.MuteEndTime = time.Unix(0, 0)
|
MuteEndTime: time.UnixMilli(0),
|
||||||
|
}
|
||||||
if err := CallbackBeforeMemberJoinGroup(ctx, groupMember, group.Ex); err != nil {
|
if err := CallbackBeforeMemberJoinGroup(ctx, groupMember, group.Ex); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -1272,6 +1278,9 @@ func (s *groupServer) SetGroupMemberInfo(ctx context.Context, req *pbgroup.SetGr
|
|||||||
if len(req.Members) == 0 {
|
if len(req.Members) == 0 {
|
||||||
return nil, errs.ErrArgs.Wrap("members empty")
|
return nil, errs.ErrArgs.Wrap("members empty")
|
||||||
}
|
}
|
||||||
|
for i := range req.Members {
|
||||||
|
req.Members[i].FaceURL = nil
|
||||||
|
}
|
||||||
duplicateMap := make(map[[2]string]struct{})
|
duplicateMap := make(map[[2]string]struct{})
|
||||||
userIDMap := make(map[string]struct{})
|
userIDMap := make(map[string]struct{})
|
||||||
groupIDMap := make(map[string]struct{})
|
groupIDMap := make(map[string]struct{})
|
||||||
|
@ -139,6 +139,9 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbuser.UpdateUserI
|
|||||||
for _, friendID := range friends {
|
for _, friendID := range friends {
|
||||||
s.friendNotificationSender.FriendInfoUpdatedNotification(ctx, req.UserInfo.UserID, friendID)
|
s.friendNotificationSender.FriendInfoUpdatedNotification(ctx, req.UserInfo.UserID, friendID)
|
||||||
}
|
}
|
||||||
|
if err := s.groupRpcClient.NotificationUserInfoUpdate(ctx, req.UserInfo.UserID); err != nil {
|
||||||
|
log.ZError(ctx, "NotificationUserInfoUpdate", err, "userID", req.UserInfo.UserID)
|
||||||
|
}
|
||||||
return resp, nil
|
return resp, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -138,11 +138,11 @@ func Pb2DBGroupInfo(m *sdkws.GroupInfo) *relation.GroupModel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func Pb2DbGroupMember(m *sdkws.UserInfo) *relation.GroupMemberModel {
|
//func Pb2DbGroupMember(m *sdkws.UserInfo) *relation.GroupMemberModel {
|
||||||
return &relation.GroupMemberModel{
|
// return &relation.GroupMemberModel{
|
||||||
UserID: m.UserID,
|
// UserID: m.UserID,
|
||||||
Nickname: m.Nickname,
|
// Nickname: m.Nickname,
|
||||||
FaceURL: m.FaceURL,
|
// FaceURL: m.FaceURL,
|
||||||
Ex: m.Ex,
|
// Ex: m.Ex,
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user