diff --git a/internal/rpc/msg/friend_notification.go b/internal/rpc/msg/friend_notification.go index df71e919f..1d130882e 100644 --- a/internal/rpc/msg/friend_notification.go +++ b/internal/rpc/msg/friend_notification.go @@ -4,6 +4,7 @@ import ( "Open_IM/pkg/common/constant" imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" + utils2 "Open_IM/pkg/common/utils" pbFriend "Open_IM/pkg/proto/friend" open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" @@ -27,23 +28,31 @@ import ( // PublicUserInfo OpedUser = 3; //user2 //} -func getFromToUserNickname(fromUserID, toUserID string) (string, string) { - from, err1 := imdb.GetUserByUserID(fromUserID) - to, err2 := imdb.GetUserByUserID(toUserID) - if err1 != nil || err2 != nil { - log.NewError("FindUserByUID failed ", err1, err2, fromUserID, toUserID) +func getFromToUserNickname(fromUserID, toUserID string) (string, string, error) { + from, err := imdb.GetUserByUserID(fromUserID) + if err != nil { + return "", "", utils.Wrap(err, "") } - fromNickname, toNickname := "", "" - if from != nil { - fromNickname = from.Nickname + to, err := imdb.GetUserByUserID(toUserID) + if err != nil { + return "", "", utils.Wrap(err, "") } - if to != nil { - toNickname = to.Nickname - } - return fromNickname, toNickname + return from.Nickname, to.Nickname, nil } func FriendApplicationAddedNotification(req *pbFriend.AddFriendReq) { + var FriendApplicationAddedTips open_im_sdk.FriendApplicationAddedTips + FriendApplicationAddedTips.FromToUserID.FromUserID = req.CommID.FromUserID + FriendApplicationAddedTips.FromToUserID.ToUserID = req.CommID.ToUserID + fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) + if err != nil { + log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID) + return + } + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(FriendApplicationAddedTips) + tips.DefaultTips = fromUserNickname + " FriendApplicationAddedNotification " + toUserNickname + var n NotificationMsg n.SendID = req.CommID.FromUserID n.RecvID = req.CommID.ToUserID @@ -51,19 +60,24 @@ func FriendApplicationAddedNotification(req *pbFriend.AddFriendReq) { n.SessionType = constant.SingleChatType n.MsgFrom = constant.SysMsgType n.OperationID = req.CommID.OperationID - - var FriendApplicationAddedTips open_im_sdk.FriendApplicationAddedTips - FriendApplicationAddedTips.FromToUserID.FromUserID = req.CommID.FromUserID - FriendApplicationAddedTips.FromToUserID.ToUserID = req.CommID.ToUserID - fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.OperationID, req.CommID.FromUserID, req.CommID.ToUserID) - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(FriendApplicationAddedTips) - tips.DefaultTips = fromUserNickname + " FriendApplicationAddedNotification " + toUserNickname n.Content, _ = json.Marshal(tips) - Notification(&n, true) + Notification(&n) } func FriendApplicationProcessedNotification(req *pbFriend.AddFriendResponseReq) { + var FriendApplicationProcessedTips open_im_sdk.FriendApplicationProcessedTips + FriendApplicationProcessedTips.FromToUserID.FromUserID = req.CommID.FromUserID + FriendApplicationProcessedTips.FromToUserID.ToUserID = req.CommID.ToUserID + fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) + if err != nil { + log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID) + return + } + + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(FriendApplicationProcessedTips) + tips.DefaultTips = fromUserNickname + " FriendApplicationProcessedNotification " + toUserNickname + var n NotificationMsg n.SendID = req.CommID.FromUserID n.RecvID = req.CommID.ToUserID @@ -71,19 +85,35 @@ func FriendApplicationProcessedNotification(req *pbFriend.AddFriendResponseReq) n.SessionType = constant.SingleChatType n.MsgFrom = constant.SysMsgType n.OperationID = req.CommID.OperationID - - var FriendApplicationProcessedTips open_im_sdk.FriendApplicationProcessedTips - FriendApplicationProcessedTips.FromToUserID.FromUserID = req.CommID.FromUserID - FriendApplicationProcessedTips.FromToUserID.ToUserID = req.CommID.ToUserID - fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.OperationID, req.CommID.FromUserID, req.CommID.ToUserID) - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(FriendApplicationProcessedTips) - tips.DefaultTips = fromUserNickname + " FriendApplicationProcessedNotification " + toUserNickname n.Content, _ = json.Marshal(tips) Notification(&n) } func FriendAddedNotification(operationID, opUserID, fromUserID, toUserID string) { + var FriendAddedTips open_im_sdk.FriendAddedTips + user, err := imdb.GetUserByUserID(opUserID) + if err != nil { + log.NewError(operationID, "GetUserByUserID failed ", err.Error(), opUserID) + return + } + utils.CopyStructFields(FriendAddedTips.OpUser, user) + + friend, err := imdb.GetFriendRelationshipFromFriend(fromUserID, toUserID) + if err != nil { + log.NewError(operationID, "GetFriendRelationshipFromFriend failed ", err.Error(), fromUserID, toUserID) + return + } + utils2.FriendDBCopyOpenIM(FriendAddedTips.Friend, friend) + + fromUserNickname, toUserNickname, err := getFromToUserNickname(fromUserID, toUserID) + if err != nil { + log.Error(operationID, "getFromToUserNickname failed ", err.Error(), fromUserID, toUserID) + return + } + + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(FriendAddedTips) + tips.DefaultTips = fromUserNickname + " FriendAddedNotification " + toUserNickname var n NotificationMsg n.SendID = fromUserID n.RecvID = toUserID @@ -91,44 +121,6 @@ func FriendAddedNotification(operationID, opUserID, fromUserID, toUserID string) n.SessionType = constant.SingleChatType n.MsgFrom = constant.SysMsgType n.OperationID = operationID - - var FriendAddedTips open_im_sdk.FriendAddedTips - - user, err := imdb.GetUserByUserID(opUserID) - if err != nil { - log.NewError(operationID, "FindUserByUID failed ", err.Error(), opUserID) - - } else { - utils.CopyStructFields(FriendAddedTips.OpUser, user) - } - - friend, err := imdb.GetFriendRelationshipFromFriend(fromUserID, toUserID) - if err != nil { - log.NewError(operationID, "FindUserByUID failed ", err.Error(), fromUserID, toUserID) - } else { - FriendAddedTips.Friend.Remark = friend.Remark - } - - from, err := imdb.GetUserByUserID(fromUserID) - if err != nil { - log.NewError(operationID, "FindUserByUID failed ", err.Error(), fromUserID) - - } else { - utils.CopyStructFields(FriendAddedTips.Friend, from) - } - - to, err := imdb.GetUserByUserID(toUserID) - if err != nil { - log.NewError(operationID, "FindUserByUID failed ", err.Error(), toUserID) - - } else { - utils.CopyStructFields(FriendAddedTips.Friend.FriendUser, to) - } - - fromUserNickname, toUserNickname := from.Nickname, to.Nickname - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(FriendAddedTips) - tips.DefaultTips = fromUserNickname + " FriendAddedNotification " + toUserNickname n.Content, _ = json.Marshal(tips) Notification(&n) } @@ -137,6 +129,18 @@ func FriendAddedNotification(operationID, opUserID, fromUserID, toUserID string) // FriendInfo Friend = 1; //} func FriendDeletedNotification(req *pbFriend.DeleteFriendReq) { + + var FriendDeletedTips open_im_sdk.FriendDeletedTips + FriendDeletedTips.FromToUserID.FromUserID = req.CommID.FromUserID + FriendDeletedTips.FromToUserID.ToUserID = req.CommID.ToUserID + fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) + if err != nil { + log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", req.CommID.FromUserID, req.CommID.ToUserID) + return + } + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(FriendDeletedTips) + tips.DefaultTips = fromUserNickname + " FriendDeletedNotification " + toUserNickname var n NotificationMsg n.SendID = req.CommID.FromUserID n.RecvID = req.CommID.ToUserID @@ -144,14 +148,6 @@ func FriendDeletedNotification(req *pbFriend.DeleteFriendReq) { n.SessionType = constant.SingleChatType n.MsgFrom = constant.SysMsgType n.OperationID = req.CommID.OperationID - - var FriendDeletedTips open_im_sdk.FriendDeletedTips - FriendDeletedTips.FromToUserID.FromUserID = req.CommID.FromUserID - FriendDeletedTips.FromToUserID.ToUserID = req.CommID.ToUserID - fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(FriendDeletedTips) - tips.DefaultTips = fromUserNickname + " FriendDeletedNotification " + toUserNickname n.Content, _ = json.Marshal(tips) Notification(&n) } @@ -162,6 +158,18 @@ func FriendDeletedNotification(req *pbFriend.DeleteFriendReq) { // uint64 OperationTime = 3; //} func FriendInfoChangedNotification(operationID, opUserID, fromUserID, toUserID string) { + + var FriendInfoChangedTips open_im_sdk.FriendInfoChangedTips + FriendInfoChangedTips.FromToUserID.FromUserID = fromUserID + FriendInfoChangedTips.FromToUserID.ToUserID = toUserID + fromUserNickname, toUserNickname, err := getFromToUserNickname(fromUserID, toUserID) + if err != nil { + log.Error(operationID, "getFromToUserNickname failed ", fromUserID, toUserID) + return + } + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(FriendInfoChangedTips) + tips.DefaultTips = fromUserNickname + " FriendDeletedNotification " + toUserNickname var n NotificationMsg n.SendID = fromUserID n.RecvID = toUserID @@ -170,18 +178,23 @@ func FriendInfoChangedNotification(operationID, opUserID, fromUserID, toUserID s n.MsgFrom = constant.SysMsgType n.OperationID = operationID - var FriendInfoChangedTips open_im_sdk.FriendInfoChangedTips - FriendInfoChangedTips.FromToUserID.FromUserID = fromUserID - FriendInfoChangedTips.FromToUserID.ToUserID = toUserID - fromUserNickname, toUserNickname := getFromToUserNickname(fromUserID, toUserID) - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(FriendInfoChangedTips) - tips.DefaultTips = fromUserNickname + " FriendDeletedNotification " + toUserNickname n.Content, _ = json.Marshal(tips) Notification(&n) } func BlackAddedNotification(req *pbFriend.AddBlacklistReq) { + + var BlackAddedTips open_im_sdk.BlackAddedTips + BlackAddedTips.FromToUserID.FromUserID = req.CommID.FromUserID + BlackAddedTips.FromToUserID.ToUserID = req.CommID.ToUserID + fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) + if err != nil { + log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", req.CommID.FromUserID, req.CommID.ToUserID) + return + } + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(BlackAddedTips) + tips.DefaultTips = fromUserNickname + " BlackAddedNotification " + toUserNickname var n NotificationMsg n.SendID = req.CommID.FromUserID n.RecvID = req.CommID.ToUserID @@ -189,14 +202,6 @@ func BlackAddedNotification(req *pbFriend.AddBlacklistReq) { n.SessionType = constant.SingleChatType n.MsgFrom = constant.SysMsgType n.OperationID = req.CommID.OperationID - - var BlackAddedTips open_im_sdk.BlackAddedTips - BlackAddedTips.FromToUserID.FromUserID = req.CommID.FromUserID - BlackAddedTips.FromToUserID.ToUserID = req.CommID.ToUserID - fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(BlackAddedTips) - tips.DefaultTips = fromUserNickname + " BlackAddedNotification " + toUserNickname n.Content, _ = json.Marshal(tips) Notification(&n) } @@ -205,6 +210,17 @@ func BlackAddedNotification(req *pbFriend.AddBlacklistReq) { // BlackInfo Black = 1; //} func BlackDeletedNotification(req *pbFriend.RemoveBlacklistReq) { + var BlackDeletedTips open_im_sdk.BlackDeletedTips + BlackDeletedTips.FromToUserID.FromUserID = req.CommID.FromUserID + BlackDeletedTips.FromToUserID.ToUserID = req.CommID.ToUserID + fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) + if err != nil { + log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID) + return + } + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(BlackDeletedTips) + tips.DefaultTips = fromUserNickname + " BlackDeletedNotification " + toUserNickname var n NotificationMsg n.SendID = req.CommID.FromUserID n.RecvID = req.CommID.ToUserID @@ -212,14 +228,6 @@ func BlackDeletedNotification(req *pbFriend.RemoveBlacklistReq) { n.SessionType = constant.SingleChatType n.MsgFrom = constant.SysMsgType n.OperationID = req.CommID.OperationID - - var BlackDeletedTips open_im_sdk.BlackDeletedTips - BlackDeletedTips.FromToUserID.FromUserID = req.CommID.FromUserID - BlackDeletedTips.FromToUserID.ToUserID = req.CommID.ToUserID - fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(BlackDeletedTips) - tips.DefaultTips = fromUserNickname + " BlackDeletedNotification " + toUserNickname n.Content, _ = json.Marshal(tips) Notification(&n) } @@ -230,6 +238,15 @@ func BlackDeletedNotification(req *pbFriend.RemoveBlacklistReq) { // uint64 OperationTime = 3; //} func SelfInfoUpdatedNotification(operationID, userID string) { + var SelfInfoUpdatedTips open_im_sdk.SelfInfoUpdatedTips + SelfInfoUpdatedTips.UserID = userID + u, err := imdb.GetUserByUserID(userID) + if err != nil { + log.NewError(operationID, "FindUserByUID failed ", err.Error(), userID) + return + } + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(SelfInfoUpdatedTips) var n NotificationMsg n.SendID = userID n.RecvID = userID @@ -238,16 +255,6 @@ func SelfInfoUpdatedNotification(operationID, userID string) { n.MsgFrom = constant.SysMsgType n.OperationID = operationID - var SelfInfoUpdatedTips open_im_sdk.SelfInfoUpdatedTips - SelfInfoUpdatedTips.UserID = userID - - var tips open_im_sdk.TipsComm - u, err := imdb.GetUserByUserID(userID) - if err != nil { - log.NewError(operationID, "FindUserByUID failed ", err.Error(), userID) - } - - tips.Detail, _ = json.Marshal(SelfInfoUpdatedTips) tips.DefaultTips = u.Nickname + " SelfInfoUpdatedNotification " n.Content, _ = json.Marshal(tips) Notification(&n)