提交 e64bc40c 编写于 作者: W wenxu12345

notification

上级 d40e1e47
package friend package friend
import ( import (
"Open_IM/internal/rpc/chat" chat "Open_IM/internal/rpc/msg"
"Open_IM/pkg/common/config" "Open_IM/pkg/common/config"
"Open_IM/pkg/common/constant" "Open_IM/pkg/common/constant"
imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model"
...@@ -124,7 +124,7 @@ func (s *friendServer) AddBlacklist(ctx context.Context, req *pbFriend.AddBlackl ...@@ -124,7 +124,7 @@ func (s *friendServer) AddBlacklist(ctx context.Context, req *pbFriend.AddBlackl
return &pbFriend.CommonResp{ErrCode: constant.ErrMysql.ErrCode, ErrMsg: constant.ErrMysql.ErrMsg}, nil return &pbFriend.CommonResp{ErrCode: constant.ErrMysql.ErrCode, ErrMsg: constant.ErrMysql.ErrMsg}, nil
} }
log.NewInfo(req.CommID.OperationID, "InsertInToUserBlackList ok ", req.CommID.FromUserID, req.CommID.ToUserID) log.NewInfo(req.CommID.OperationID, "InsertInToUserBlackList ok ", req.CommID.FromUserID, req.CommID.ToUserID)
chat.BlackAddedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID) chat.BlackAddedNotification(req)
return &pbFriend.CommonResp{}, nil return &pbFriend.CommonResp{}, nil
} }
...@@ -148,7 +148,7 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq ...@@ -148,7 +148,7 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq
return &pbFriend.CommonResp{ErrCode: constant.ErrAddFriend.ErrCode, ErrMsg: constant.ErrAddFriend.ErrMsg}, nil return &pbFriend.CommonResp{ErrCode: constant.ErrAddFriend.ErrCode, ErrMsg: constant.ErrAddFriend.ErrMsg}, nil
} }
chat.FriendApplicationAddedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID, req.ReqMessage) chat.FriendApplicationAddedNotification(req)
return &pbFriend.CommonResp{}, nil return &pbFriend.CommonResp{}, nil
} }
...@@ -195,7 +195,10 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri ...@@ -195,7 +195,10 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri
c.ErrCode = 408 c.ErrCode = 408
continue continue
} }
chat.FriendAddedNotification(req.OperationID, req.OpUserID, req.FromUserID, v) for _, v := range req.FriendUserIDList {
chat.FriendAddedNotification(req.OperationID, req.OpUserID, req.FromUserID, v)
}
} }
} }
} }
...@@ -204,10 +207,11 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri ...@@ -204,10 +207,11 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri
return &resp, nil return &resp, nil
} }
//process Friend application
func (s *friendServer) AddFriendResponse(ctx context.Context, req *pbFriend.AddFriendResponseReq) (*pbFriend.CommonResp, error) { func (s *friendServer) AddFriendResponse(ctx context.Context, req *pbFriend.AddFriendResponseReq) (*pbFriend.CommonResp, error) {
log.NewInfo(req.CommID.OperationID, "AddFriendResponse args ", req.String()) log.NewInfo(req.CommID.OperationID, "AddFriendResponse args ", req.String())
if !token_verify.CheckAccess(rreq.CommID.FromUserID, req.CommID.ToUserID) { if !token_verify.CheckAccess(req.CommID.FromUserID, req.CommID.ToUserID) {
log.NewError(req.CommID.OperationID, "CheckAccess failed ", req.CommID.FromUserID, req.CommID.ToUserID) log.NewError(req.CommID.OperationID, "CheckAccess failed ", req.CommID.FromUserID, req.CommID.ToUserID)
return &pbFriend.CommonResp{ErrCode: constant.ErrAgreeToAddFriend.ErrCode, ErrMsg: constant.ErrAgreeToAddFriend.ErrMsg}, nil return &pbFriend.CommonResp{ErrCode: constant.ErrAgreeToAddFriend.ErrCode, ErrMsg: constant.ErrAgreeToAddFriend.ErrMsg}, nil
} }
...@@ -253,7 +257,8 @@ func (s *friendServer) AddFriendResponse(ctx context.Context, req *pbFriend.AddF ...@@ -253,7 +257,8 @@ func (s *friendServer) AddFriendResponse(ctx context.Context, req *pbFriend.AddF
} }
} }
chat.FriendApplicationProcessedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID, req.Flag) chat.FriendApplicationProcessedNotification(req)
chat.FriendAddedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID)
return &pbFriend.CommonResp{}, nil return &pbFriend.CommonResp{}, nil
} }
...@@ -271,7 +276,7 @@ func (s *friendServer) DeleteFriend(ctx context.Context, req *pbFriend.DeleteFri ...@@ -271,7 +276,7 @@ func (s *friendServer) DeleteFriend(ctx context.Context, req *pbFriend.DeleteFri
return &pbFriend.CommonResp{ErrCode: constant.ErrMysql.ErrCode, ErrMsg: constant.ErrMysql.ErrMsg}, nil return &pbFriend.CommonResp{ErrCode: constant.ErrMysql.ErrCode, ErrMsg: constant.ErrMysql.ErrMsg}, nil
} }
log.NewInfo(req.CommID.OperationID, "DeleteFriend rpc ok") log.NewInfo(req.CommID.OperationID, "DeleteFriend rpc ok")
chat.FriendDeletedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID) chat.FriendDeletedNotification(req)
return &pbFriend.CommonResp{}, nil return &pbFriend.CommonResp{}, nil
} }
...@@ -322,7 +327,7 @@ func (s *friendServer) SetFriendComment(ctx context.Context, req *pbFriend.SetFr ...@@ -322,7 +327,7 @@ func (s *friendServer) SetFriendComment(ctx context.Context, req *pbFriend.SetFr
return &pbFriend.CommonResp{ErrCode: constant.ErrSetFriendComment.ErrCode, ErrMsg: constant.ErrSetFriendComment.ErrMsg}, nil return &pbFriend.CommonResp{ErrCode: constant.ErrSetFriendComment.ErrCode, ErrMsg: constant.ErrSetFriendComment.ErrMsg}, nil
} }
log.NewInfo(req.CommID.OperationID, "rpc SetFriendComment ok") log.NewInfo(req.CommID.OperationID, "rpc SetFriendComment ok")
chat.FriendInfoChangedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID) chat.FriendInfoChangedNotification(req)
return &pbFriend.CommonResp{}, nil return &pbFriend.CommonResp{}, nil
} }
...@@ -339,7 +344,7 @@ func (s *friendServer) RemoveBlacklist(ctx context.Context, req *pbFriend.Remove ...@@ -339,7 +344,7 @@ func (s *friendServer) RemoveBlacklist(ctx context.Context, req *pbFriend.Remove
return &pbFriend.CommonResp{ErrCode: constant.ErrMysql.ErrCode, ErrMsg: constant.ErrMysql.ErrMsg}, nil return &pbFriend.CommonResp{ErrCode: constant.ErrMysql.ErrCode, ErrMsg: constant.ErrMysql.ErrMsg}, nil
} }
log.NewInfo(req.CommID.OperationID, "rpc RemoveBlacklist ok") log.NewInfo(req.CommID.OperationID, "rpc RemoveBlacklist ok")
chat.BlackDeletedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID) chat.BlackDeletedNotification(req)
return &pbFriend.CommonResp{}, nil return &pbFriend.CommonResp{}, nil
} }
......
...@@ -11,11 +11,9 @@ import ( ...@@ -11,11 +11,9 @@ import (
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/token_verify"
"Open_IM/pkg/grpc-etcdv3/getcdv3" "Open_IM/pkg/grpc-etcdv3/getcdv3"
pbGroup "Open_IM/pkg/proto/group" pbGroup "Open_IM/pkg/proto/group"
"Open_IM/pkg/proto/sdk_ws" open_im_sdk "Open_IM/pkg/proto/sdk_ws"
"Open_IM/pkg/utils" "Open_IM/pkg/utils"
"context" "context"
"encoding/json"
"fmt"
"google.golang.org/grpc" "google.golang.org/grpc"
"net" "net"
"strconv" "strconv"
...@@ -39,6 +37,7 @@ func NewGroupServer(port int) *groupServer { ...@@ -39,6 +37,7 @@ func NewGroupServer(port int) *groupServer {
etcdAddr: config.Config.Etcd.EtcdAddr, etcdAddr: config.Config.Etcd.EtcdAddr,
} }
} }
func (s *groupServer) Run() { func (s *groupServer) Run() {
log.Info("", "", "rpc group init....") log.Info("", "", "rpc group init....")
...@@ -78,6 +77,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR ...@@ -78,6 +77,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR
} }
//Time stamp + MD5 to generate group chat id //Time stamp + MD5 to generate group chat id
groupId := utils.Md5(strconv.FormatInt(time.Now().UnixNano(), 10)) groupId := utils.Md5(strconv.FormatInt(time.Now().UnixNano(), 10))
//to group
err := im_mysql_model.InsertIntoGroup(groupId, req.GroupName, req.Introduction, req.Notification, req.FaceUrl, req.Ext) err := im_mysql_model.InsertIntoGroup(groupId, req.GroupName, req.Introduction, req.Notification, req.FaceUrl, req.Ext)
if err != nil { if err != nil {
log.NewError(req.OperationID, "InsertIntoGroup failed, ", err.Error(), groupId, req.GroupName, req.Introduction, req.Notification, req.FaceUrl, req.Ext) log.NewError(req.OperationID, "InsertIntoGroup failed, ", err.Error(), groupId, req.GroupName, req.Introduction, req.Notification, req.FaceUrl, req.Ext)
...@@ -90,7 +90,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR ...@@ -90,7 +90,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR
return &pbGroup.CreateGroupResp{ErrCode: constant.ErrCreateGroup.ErrCode, ErrMsg: constant.ErrCreateGroup.ErrMsg}, nil return &pbGroup.CreateGroupResp{ErrCode: constant.ErrCreateGroup.ErrCode, ErrMsg: constant.ErrCreateGroup.ErrMsg}, nil
} }
//Add the group owner to the group first, otherwise the group creation will fail //to group member
err = im_mysql_model.InsertIntoGroupMember(groupId, us.UserID, us.Nickname, us.FaceUrl, constant.GroupOwner) err = im_mysql_model.InsertIntoGroupMember(groupId, us.UserID, us.Nickname, us.FaceUrl, constant.GroupOwner)
if err != nil { if err != nil {
log.NewError(req.OperationID, "InsertIntoGroupMember failed ", err.Error()) log.NewError(req.OperationID, "InsertIntoGroupMember failed ", err.Error())
...@@ -103,7 +103,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR ...@@ -103,7 +103,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR
// return &pbGroup.CreateGroupResp{ErrCode: constant.ErrCreateGroup.ErrCode, ErrMsg: constant.ErrCreateGroup.ErrMsg}, nil // return &pbGroup.CreateGroupResp{ErrCode: constant.ErrCreateGroup.ErrCode, ErrMsg: constant.ErrCreateGroup.ErrMsg}, nil
} }
//Binding group id and member id //to group member
for _, user := range req.InitMemberList { for _, user := range req.InitMemberList {
us, err := im_mysql_model.FindUserByUID(user.UserID) us, err := im_mysql_model.FindUserByUID(user.UserID)
if err != nil { if err != nil {
...@@ -123,8 +123,8 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR ...@@ -123,8 +123,8 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR
log.NewError(req.OperationID, "add mongo group member failed, db.DB.AddGroupMember failed ", err.Error()) log.NewError(req.OperationID, "add mongo group member failed, db.DB.AddGroupMember failed ", err.Error())
} }
} }
resp := &pbGroup.CreateGroupResp{}
resp := &pbGroup.CreateGroupResp{}
group, err := im_mysql_model.FindGroupInfoByGroupId(groupId) group, err := im_mysql_model.FindGroupInfoByGroupId(groupId)
if err != nil { if err != nil {
log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", err.Error(), groupId) log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", err.Error(), groupId)
...@@ -145,6 +145,7 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo ...@@ -145,6 +145,7 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo
return &pbGroup.GetJoinedGroupListResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil return &pbGroup.GetJoinedGroupListResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil
} }
//group list
joinedGroupList, err := imdb.GetJoinedGroupIdListByMemberId(req.FromUserID) joinedGroupList, err := imdb.GetJoinedGroupIdListByMemberId(req.FromUserID)
if err != nil { if err != nil {
log.NewError(req.OperationID, "GetJoinedGroupIdListByMemberId failed ", err.Error(), req.FromUserID) log.NewError(req.OperationID, "GetJoinedGroupIdListByMemberId failed ", err.Error(), req.FromUserID)
...@@ -152,7 +153,6 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo ...@@ -152,7 +153,6 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo
} }
var resp pbGroup.GetJoinedGroupListResp var resp pbGroup.GetJoinedGroupListResp
for _, v := range joinedGroupList { for _, v := range joinedGroupList {
var groupNode open_im_sdk.GroupInfo var groupNode open_im_sdk.GroupInfo
num := imdb.GetGroupMemberNumByGroupId(v.GroupID) num := imdb.GetGroupMemberNumByGroupId(v.GroupID)
...@@ -160,6 +160,7 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo ...@@ -160,6 +160,7 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo
group, err := imdb.FindGroupInfoByGroupId(v.GroupID) group, err := imdb.FindGroupInfoByGroupId(v.GroupID)
if num > 0 && owner != nil && err2 == nil && group != nil && err == nil { if num > 0 && owner != nil && err2 == nil && group != nil && err == nil {
utils.CopyStructFields(&groupNode, group) utils.CopyStructFields(&groupNode, group)
groupNode.CreateTime = group.CreateTime
utils.CopyStructFields(groupNode.Owner, owner) utils.CopyStructFields(groupNode.Owner, owner)
groupNode.MemberCount = uint32(num) groupNode.MemberCount = uint32(num)
resp.GroupList = append(resp.GroupList, &groupNode) resp.GroupList = append(resp.GroupList, &groupNode)
...@@ -177,7 +178,7 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo ...@@ -177,7 +178,7 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo
func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.InviteUserToGroupReq) (*pbGroup.InviteUserToGroupResp, error) { func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.InviteUserToGroupReq) (*pbGroup.InviteUserToGroupResp, error) {
log.NewInfo(req.OperationID, "InviteUserToGroup args ", req.String()) log.NewInfo(req.OperationID, "InviteUserToGroup args ", req.String())
if !imdb.IsExistGroupMember(req.GroupID, req.OpUserID) && !utils.IsContain(req.OpUserID, config.Config.Manager.AppManagerUid) { if !imdb.IsExistGroupMember(req.GroupID, req.OpUserID) && !token_verify.IsMangerUserID(req.OpUserID) {
log.NewError(req.OperationID, "no permission InviteUserToGroup ", req.GroupID, req.OpUserID) log.NewError(req.OperationID, "no permission InviteUserToGroup ", req.GroupID, req.OpUserID)
return &pbGroup.InviteUserToGroupResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil return &pbGroup.InviteUserToGroupResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil
} }
...@@ -191,6 +192,7 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite ...@@ -191,6 +192,7 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite
//from User: invite: applicant //from User: invite: applicant
//to user: invite: invited //to user: invite: invited
var resp pbGroup.InviteUserToGroupResp var resp pbGroup.InviteUserToGroupResp
var okUserIDList []string
for _, v := range req.InvitedUserIDList { for _, v := range req.InvitedUserIDList {
var resultNode pbGroup.Id2Result var resultNode pbGroup.Id2Result
resultNode.UserID = v resultNode.UserID = v
...@@ -217,7 +219,7 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite ...@@ -217,7 +219,7 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite
resp.Id2ResultList = append(resp.Id2ResultList, &resultNode) resp.Id2ResultList = append(resp.Id2ResultList, &resultNode)
continue continue
} }
chat.MemberInvitedNotification(req.OperationID, req.GroupID, req.OpUserID, v) okUserIDList = append(okUserIDList, v)
err = db.DB.AddGroupMember(req.GroupID, toUserInfo.UserID) err = db.DB.AddGroupMember(req.GroupID, toUserInfo.UserID)
if err != nil { if err != nil {
log.NewError(req.OperationID, "AddGroupMember failed ", err.Error(), req.GroupID, toUserInfo.UserID) log.NewError(req.OperationID, "AddGroupMember failed ", err.Error(), req.GroupID, toUserInfo.UserID)
...@@ -225,8 +227,9 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite ...@@ -225,8 +227,9 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite
resp.Id2ResultList = append(resp.Id2ResultList, &resultNode) resp.Id2ResultList = append(resp.Id2ResultList, &resultNode)
} }
chat.MemberInvitedNotification(req.OperationID, req.GroupID, req.OpUserID, req.Reason, okUserIDList)
resp.ErrCode = 0 resp.ErrCode = 0
log.NewInfo(req.OperationID, "InviteUserToGroup rpc return ", resp) log.NewInfo(req.OperationID, "InviteUserToGroup rpc return ", resp.String())
return &resp, nil return &resp, nil
} }
...@@ -308,6 +311,7 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou ...@@ -308,6 +311,7 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou
} }
} }
//op is app manager
if flag != 1 { if flag != 1 {
if token_verify.IsMangerUserID(req.OpUserID) { if token_verify.IsMangerUserID(req.OpUserID) {
flag = 1 flag = 1
...@@ -332,6 +336,7 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou ...@@ -332,6 +336,7 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou
} }
} }
var okUserIDList []string
//remove //remove
var resp pbGroup.KickGroupMemberResp var resp pbGroup.KickGroupMemberResp
for _, v := range req.KickedUserIDList { for _, v := range req.KickedUserIDList {
...@@ -347,19 +352,17 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou ...@@ -347,19 +352,17 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou
resp.Id2ResultList = append(resp.Id2ResultList, &pbGroup.Id2Result{UserID: v, Result: -1}) resp.Id2ResultList = append(resp.Id2ResultList, &pbGroup.Id2Result{UserID: v, Result: -1})
} else { } else {
resp.Id2ResultList = append(resp.Id2ResultList, &pbGroup.Id2Result{UserID: v, Result: 0}) resp.Id2ResultList = append(resp.Id2ResultList, &pbGroup.Id2Result{UserID: v, Result: 0})
okUserIDList = append(okUserIDList, v)
} }
err = db.DB.DelGroupMember(req.GroupID, v) err = db.DB.DelGroupMember(req.GroupID, v)
if err != nil { if err != nil {
log.NewError(req.OperationID, "DelGroupMember failed ", err.Error(), req.GroupID, v.UserId) log.NewError(req.OperationID, "DelGroupMember failed ", err.Error(), req.GroupID, v)
} }
} }
chat.MemberKickedNotification(req, okUserIDList)
for _, v := range req.KickedUserIDList {
chat.MemberKickedNotification(req.OperationID, req.GroupID, req.OpUserID, v, req.Reason)
}
resp.ErrCode = 0 resp.ErrCode = 0
log.NewInfo(req.OperationID, "GetGroupMemberList rpc return ", resp) log.NewInfo(req.OperationID, "GetGroupMemberList rpc return ", resp.String())
return &resp, nil return &resp, nil
} }
...@@ -377,11 +380,12 @@ func (s *groupServer) GetGroupMembersInfo(ctx context.Context, req *pbGroup.GetG ...@@ -377,11 +380,12 @@ func (s *groupServer) GetGroupMembersInfo(ctx context.Context, req *pbGroup.GetG
continue continue
} else { } else {
utils.CopyStructFields(&memberNode, memberInfo) utils.CopyStructFields(&memberNode, memberInfo)
memberNode.JoinTime = memberInfo.JoinTime
resp.MemberList = append(resp.MemberList, &memberNode) resp.MemberList = append(resp.MemberList, &memberNode)
} }
} }
resp.ErrCode = 0 resp.ErrCode = 0
log.NewInfo(req.OperationID, "GetGroupMembersInfo rpc return ", resp) log.NewInfo(req.OperationID, "GetGroupMembersInfo rpc return ", resp.String())
return &resp, nil return &resp, nil
} }
...@@ -407,6 +411,7 @@ func (s *groupServer) GetGroupsInfo(ctx context.Context, req *pbGroup.GetGroupsI ...@@ -407,6 +411,7 @@ func (s *groupServer) GetGroupsInfo(ctx context.Context, req *pbGroup.GetGroupsI
} }
var groupInfo open_im_sdk.GroupInfo var groupInfo open_im_sdk.GroupInfo
utils.CopyStructFields(&groupInfo, groupInfoFromMysql) utils.CopyStructFields(&groupInfo, groupInfoFromMysql)
groupInfo.CreateTime = groupInfoFromMysql.CreateTime
groupsInfoList = append(groupsInfoList, &groupInfo) groupsInfoList = append(groupsInfoList, &groupInfo)
} }
...@@ -437,24 +442,24 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G ...@@ -437,24 +442,24 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G
} }
} }
if req.ToUserID == "0" { if req.ToUserID == "0" {
group, err := imdb.FindGroupInfoByGroupId(req.GroupID) //group, err := imdb.FindGroupInfoByGroupId(req.GroupID)
if err != nil { //if err != nil {
log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", req.GroupID) // log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", req.GroupID)
return reply, nil // return reply, nil
} //}
member, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, req.OpUserID) //member, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, req.OpUserID)
if err != nil { //if err != nil {
log.NewError(req.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", req.GroupID, req.OpUserID) // log.NewError(req.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", req.GroupID, req.OpUserID)
return reply, nil // return reply, nil
} //}
chat.ApplicationProcessedNotification(req.OperationID, req.FromUserID, *group, *member, req.HandleResult, req.HandledMsg) chat.ApplicationProcessedNotification(req)
if req.HandleResult == 1 { if req.HandleResult == 1 {
entrantUser, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, req.FromUserID) // entrantUser, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, req.FromUserID)
if err != nil { // if err != nil {
log.NewError(req.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), req.GroupID, req.FromUserID) // log.NewError(req.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), req.GroupID, req.FromUserID)
return reply, nil // return reply, nil
} // }
chat.MemberEnterNotification(req.OperationID, req.GroupID, entrantUser) chat.MemberEnterNotification(req)
} }
} else { } else {
log.NewError(req.OperationID, "args failed ", req.String()) log.NewError(req.OperationID, "args failed ", req.String())
...@@ -466,25 +471,20 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G ...@@ -466,25 +471,20 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G
func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) (*pbGroup.CommonResp, error) { func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) (*pbGroup.CommonResp, error) {
log.NewInfo(req.OperationID, "JoinGroup args ", req.String()) log.NewInfo(req.OperationID, "JoinGroup args ", req.String())
//Parse token, to find current user information
//claims, err := token_verify.ParseToken(req.Token) applicationUserInfo, err := im_mysql_model.FindUserByUID(req.OpUserID)
//if err != nil {
// log.NewError(req.OperationID, "ParseToken failed", err.Error(), req.String())
// return &pbGroup.CommonResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil
//}
applicationUserInfo, err := im_mysql_model.FindUserByUID(req.FromUserID)
if err != nil { if err != nil {
log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.FromUserID) log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.OpUserID)
return &pbGroup.CommonResp{ErrCode: constant.ErrSearchUserInfo.ErrCode, ErrMsg: constant.ErrSearchUserInfo.ErrMsg}, nil return &pbGroup.CommonResp{ErrCode: constant.ErrSearchUserInfo.ErrCode, ErrMsg: constant.ErrSearchUserInfo.ErrMsg}, nil
} }
_, err = im_mysql_model.FindGroupRequestUserInfoByGroupIDAndUid(req.GroupID, req.FromUserID) _, err = im_mysql_model.FindGroupRequestUserInfoByGroupIDAndUid(req.GroupID, req.OpUserID)
if err == nil { if err == nil {
err = im_mysql_model.DelGroupRequest(req.GroupID, req.FromUserID, "0") err = im_mysql_model.DelGroupRequest(req.GroupID, req.OpUserID, "0")
} }
if err = im_mysql_model.InsertIntoGroupRequest(req.GroupID, req.FromUserID, "0", req.ReqMessage, applicationUserInfo.Nickname, applicationUserInfo.FaceUrl); err != nil { if err = im_mysql_model.InsertIntoGroupRequest(req.GroupID, req.OpUserID, "0", req.ReqMessage, applicationUserInfo.Nickname, applicationUserInfo.FaceUrl); err != nil {
log.NewError(req.OperationID, "InsertIntoGroupRequest ", err.Error(), req.GroupID, req.FromUserID, "0", req.ReqMessage, applicationUserInfo.Nickname, applicationUserInfo.FaceUrl) log.NewError(req.OperationID, "InsertIntoGroupRequest ", err.Error(), req.GroupID, req.OpUserID, "0", req.ReqMessage, applicationUserInfo.Nickname, applicationUserInfo.FaceUrl)
return &pbGroup.CommonResp{ErrCode: constant.ErrJoinGroupApplication.ErrCode, ErrMsg: constant.ErrJoinGroupApplication.ErrMsg}, nil return &pbGroup.CommonResp{ErrCode: constant.ErrJoinGroupApplication.ErrCode, ErrMsg: constant.ErrJoinGroupApplication.ErrMsg}, nil
} }
...@@ -493,12 +493,8 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) ...@@ -493,12 +493,8 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq)
log.NewError(req.OperationID, "FindGroupMemberListByGroupIdAndFilterInfo failed ", req.GroupID, constant.GroupOwner, err) log.NewError(req.OperationID, "FindGroupMemberListByGroupIdAndFilterInfo failed ", req.GroupID, constant.GroupOwner, err)
return &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}, nil return &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}, nil
} }
group, err := im_mysql_model.FindGroupInfoByGroupId(req.GroupID)
if err != nil { chat.ReceiveJoinApplicationNotification(req)
log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", req.GroupID)
return &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}, nil
}
chat.ReceiveJoinApplicationNotification(req.OperationID, memberList[0].UserID, applicationUserInfo, group)
log.NewInfo(req.OperationID, "ReceiveJoinApplicationNotification rpc JoinGroup success return") log.NewInfo(req.OperationID, "ReceiveJoinApplicationNotification rpc JoinGroup success return")
return &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}, nil return &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}, nil
...@@ -525,7 +521,7 @@ func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) ...@@ -525,7 +521,7 @@ func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq)
// return &pbGroup.CommonResp{ErrorCode: constant.ErrQuitGroup.ErrCode, ErrorMsg: constant.ErrQuitGroup.ErrMsg}, nil // return &pbGroup.CommonResp{ErrorCode: constant.ErrQuitGroup.ErrCode, ErrorMsg: constant.ErrQuitGroup.ErrMsg}, nil
} }
chat.MemberLeaveNotification(req.OperationID, req.GroupID, req.OpUserID) chat.MemberLeaveNotification(req)
log.NewInfo(req.OperationID, "rpc quit group is success return") log.NewInfo(req.OperationID, "rpc quit group is success return")
return &pbGroup.CommonResp{}, nil return &pbGroup.CommonResp{}, nil
} }
...@@ -578,7 +574,7 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf ...@@ -578,7 +574,7 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf
} }
if changedType != 0 { if changedType != 0 {
chat.GroupInfoChangedNotification(req.OperationID, changedType, req.GroupInfo.GroupID, req.OpUserID) chat.GroupInfoChangedNotification(req)
} }
return &pbGroup.CommonResp{}, nil return &pbGroup.CommonResp{}, nil
......
此差异已折叠。
...@@ -75,14 +75,7 @@ func (s *userServer) GetUserInfo(ctx context.Context, req *pbUser.GetUserInfoReq ...@@ -75,14 +75,7 @@ func (s *userServer) GetUserInfo(ctx context.Context, req *pbUser.GetUserInfoReq
log.ErrorByKv("search userinfo failed", req.OperationID, "userID", userID, "err=%s", err.Error()) log.ErrorByKv("search userinfo failed", req.OperationID, "userID", userID, "err=%s", err.Error())
continue continue
} }
userInfo.Uid = user.UID utils.CopyStructFields(&userInfo, user)
userInfo.Icon = user.Icon
userInfo.Name = user.Name
userInfo.Gender = user.Gender
userInfo.Mobile = user.Mobile
userInfo.Birth = user.Birth
userInfo.Email = user.Email
userInfo.Ex = user.Ex
userInfoList = append(userInfoList, &userInfo) userInfoList = append(userInfoList, &userInfo)
} }
} else { } else {
......
...@@ -2,6 +2,7 @@ package user ...@@ -2,6 +2,7 @@ package user
import ( import (
"Open_IM/internal/push/logic" "Open_IM/internal/push/logic"
chat "Open_IM/internal/rpc/msg"
"Open_IM/pkg/common/config" "Open_IM/pkg/common/config"
"Open_IM/pkg/common/constant" "Open_IM/pkg/common/constant"
"Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/db/mysql_model/im_mysql_model"
...@@ -49,7 +50,7 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI ...@@ -49,7 +50,7 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI
log.ErrorByKv("get friend list rpc server failed", req.OperationID, "err", err.Error(), "req", req.String()) log.ErrorByKv("get friend list rpc server failed", req.OperationID, "err", err.Error(), "req", req.String())
return &pbUser.CommonResp{}, nil return &pbUser.CommonResp{}, nil
} }
if RpcResp.ErrorCode != 0 { if RpcResp.ErrCode != 0 {
log.ErrorByKv("get friend list rpc server failed", req.OperationID, "err", err.Error(), "req", req.String()) log.ErrorByKv("get friend list rpc server failed", req.OperationID, "err", err.Error(), "req", req.String())
return &pbUser.CommonResp{}, nil return &pbUser.CommonResp{}, nil
} }
...@@ -62,6 +63,8 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI ...@@ -62,6 +63,8 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI
if self != nil { if self != nil {
name, faceUrl = self.Name, self.Icon name, faceUrl = self.Name, self.Icon
} }
chat.SelfInfoUpdatedNotification(req.OperationID, req.Uid)
for _, v := range RpcResp.Data { for _, v := range RpcResp.Data {
logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{ logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{
SendID: ownerUid, SendID: ownerUid,
......
...@@ -45,22 +45,38 @@ const ( ...@@ -45,22 +45,38 @@ const (
GroupMsg = 201 GroupMsg = 201
//SysRelated //SysRelated
AcceptFriendApplicationTip = 201 FriendApplicationAddedNotification = 201
AddFriendTip = 202 FriendApplicationProcessedNotification = 202
RefuseFriendApplicationTip = 203 FriendAddedNotification = 203
SetSelfInfoTip = 204 FriendDeletedNotification = 204
FriendInfoChangedNotification = 205
TransferGroupOwnerTip = 501 BlackAddedNotification = 206
CreateGroupTip = 502 BlackDeletedNotification = 207
GroupApplicationResponseTip = 503 //AcceptFriendApplicationTip = 201
ApplyJoinGroupTip = 504 //AddFriendTip = 202
QuitGroupTip = 505 //RefuseFriendApplicationTip = 203
SetGroupInfoTip = 506
AcceptGroupApplicationTip = 507 SelfInfoUpdatedNotification = 301
RefuseGroupApplicationTip = 508
KickGroupMemberTip = 509 GroupCreatedNotification = 501
InviteUserToGroupTip = 510 JoinApplicationNotification = 502
ChangeGroupInfoTip = 511 ApplicationProcessedNotification = 503
MemberInvitedNotification = 504
MemberKickedNotification = 505
GroupInfoChangedNotification = 506
MemberLeaveNotification = 507
MemberEnterNotification = 508
//TransferGroupOwnerTip = 501
//CreateGroupTip = 502
//GroupApplicationResponseTip = 503
//ApplyJoinGroupTip = 504
//QuitGroupTip = 505
//SetGroupInfoTip = 506
//AcceptGroupApplicationTip = 507
//RefuseGroupApplicationTip = 508
//KickGroupMemberTip = 509
//InviteUserToGroupTip = 510
//ChangeGroupInfoTip = 511
//MsgFrom //MsgFrom
UserMsgType = 100 UserMsgType = 100
......
...@@ -91,18 +91,6 @@ func initMysqlDB() { ...@@ -91,18 +91,6 @@ func initMysqlDB() {
panic(err.Error()) panic(err.Error())
} }
sqlTable = "CREATE TABLE IF NOT EXISTS `black_list` (" +
" `uid` varchar(32) NOT NULL COMMENT 'uid'," +
" `begin_disable_time` datetime DEFAULT NULL," +
" `end_disable_time` datetime DEFAULT NULL," +
" `ex` varchar(1024) DEFAULT NULL," +
" PRIMARY KEY (`uid`) USING BTREE" +
" ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;"
err = db.Exec(sqlTable).Error
if err != nil {
panic(err.Error())
}
sqlTable = "CREATE TABLE IF NOT EXISTS `user_black_list` (" + sqlTable = "CREATE TABLE IF NOT EXISTS `user_black_list` (" +
" `owner_id` varchar(64) NOT NULL," + " `owner_id` varchar(64) NOT NULL," +
" `block_id` varchar(64) NOT NULL," + " `block_id` varchar(64) NOT NULL," +
......
...@@ -15,7 +15,7 @@ func InsertIntoGroup(groupId, name, introduction, notification, faceUrl, ex stri ...@@ -15,7 +15,7 @@ func InsertIntoGroup(groupId, name, introduction, notification, faceUrl, ex stri
} }
//Default group name //Default group name
if name == "" { if name == "" {
name = "groupChat" name = "Group Chat"
} }
toInsertInfo := Group{GroupID: groupId, GroupName: name, Introduction: introduction, Notification: notification, FaceUrl: faceUrl, CreateTime: time.Now(), Ex: ex} toInsertInfo := Group{GroupID: groupId, GroupName: name, Introduction: introduction, Notification: notification, FaceUrl: faceUrl, CreateTime: time.Now(), Ex: ex}
err = dbConn.Table("group").Create(toInsertInfo).Error err = dbConn.Table("group").Create(toInsertInfo).Error
......
此差异已折叠。
此差异已折叠。
...@@ -164,7 +164,6 @@ message MemberEnterTips{ ...@@ -164,7 +164,6 @@ message MemberEnterTips{
uint64 OperationTime = 3; uint64 OperationTime = 3;
} }
//Actively leave the group //Actively leave the group
message MemberLeaveTips{ message MemberLeaveTips{
GroupInfo Group = 1; GroupInfo Group = 1;
...@@ -175,20 +174,19 @@ message MemberLeaveTips{ ...@@ -175,20 +174,19 @@ message MemberLeaveTips{
message MemberInvitedTips{ message MemberInvitedTips{
GroupInfo Group = 1; GroupInfo Group = 1;
GroupMemberFullInfo OpUser = 2; GroupMemberFullInfo OpUser = 2;
GroupMemberFullInfo InvitedUser = 3; repeated GroupMemberFullInfo InvitedUserList = 3;
uint64 OperationTime = 4; uint64 OperationTime = 4;
} }
message MemberKickedTips{ message MemberKickedTips{
GroupInfo Group = 1; GroupInfo Group = 1;
GroupMemberFullInfo OpUser = 2; GroupMemberFullInfo OpUser = 2;
GroupMemberFullInfo KickedUser = 3; repeated GroupMemberFullInfo KickedUserList = 3;
uint64 OperationTime = 4; uint64 OperationTime = 4;
} }
message MemberInfoChangedTips{ message MemberInfoChangedTips{
int32 ChangeType = 1; //1:info changed; 2:mute int32 ChangeType = 1; ///bitwise operators 0001:member info changed; 0010:mute ;
GroupMemberFullInfo OpUser = 2; //who do this GroupMemberFullInfo OpUser = 2; //who do this
GroupMemberFullInfo FinalInfo = 3; // GroupMemberFullInfo FinalInfo = 3; //
uint64 MuteTime = 4; uint64 MuteTime = 4;
...@@ -203,12 +201,12 @@ message GroupCreatedTips{ ...@@ -203,12 +201,12 @@ message GroupCreatedTips{
} }
message GroupInfoChangedTips{ message GroupInfoChangedTips{
int32 ChangedType = 1; //bitwise operators: 1:groupName; 10:Notification 100:Introduction; 1000:FaceUrl int32 ChangedType = 1; //bitwise operators: 0001:groupName; 0010:Notification 0100:Introduction; 1000:FaceUrl
GroupInfo Group = 2; GroupInfo Group = 2;
GroupMemberFullInfo OpUser = 3; GroupMemberFullInfo OpUser = 3;
} }
message ReceiveJoinApplicationTips{ message JoinGroupApplicationTips{
GroupInfo Group = 1; GroupInfo Group = 1;
PublicUserInfo Applicant = 2; PublicUserInfo Applicant = 2;
string Reason = 3; string Reason = 3;
...@@ -235,56 +233,52 @@ message FriendApplication{ ...@@ -235,56 +233,52 @@ message FriendApplication{
string AddWording = 3; string AddWording = 3;
} }
//user1 add user2 message FromToUserID{
string FromUserID = 1;
string ToUserID = 2;
}
//FromUserID apply to add ToUserID
message FriendApplicationAddedTips{ message FriendApplicationAddedTips{
PublicUserInfo OpUser = 1; //user1 FromToUserID FromToUserID = 1;
FriendApplication Application = 2;
PublicUserInfo OpedUser = 3; //user2
uint64 OperationTime = 4;
} }
// user2 accept or reject //FromUserID accept or reject ToUserID
message FriendApplicationProcessedTips{ message FriendApplicationProcessedTips{
PublicUserInfo OpUser = 1; //user2 FromToUserID FromToUserID = 1;
PublicUserInfo OpedUser = 2; //user1
int32 result = 3; //1: accept; -1: reject
uint64 OperationTime = 4;
} }
// FromUserID Added a friend ToUserID
message FriendAddedTips{ message FriendAddedTips{
FriendInfo Friend = 1; FriendInfo Friend = 1;
uint64 OperationTime = 2; uint64 OperationTime = 2;
PublicUserInfo OpUser = 3; //who do this
} }
// FromUserID deleted a friend ToUserID
message FriendDeletedTips{ message FriendDeletedTips{
FriendInfo Friend = 1; FromToUserID FromToUserID = 1;
uint64 OperationTime = 2;
} }
message BlackInfo{ //message BlackInfo{
PublicUserInfo OwnerUser = 1; // PublicUserInfo OwnerUser = 1;
uint64 CreateTime = 3; // uint64 CreateTime = 3;
PublicUserInfo BlackUser = 4; // PublicUserInfo BlackUser = 4;
} //}
message BlackAddedTips{ message BlackAddedTips{
BlackInfo Black = 1; FromToUserID FromToUserID = 1;
uint64 OperationTime = 2;
} }
message BlackDeletedTips{ message BlackDeletedTips{
BlackInfo Black = 1; FromToUserID FromToUserID = 1;
uint64 OperationTime = 2;
} }
message FriendInfoChangedTips{ message FriendInfoChangedTips{
FriendInfo Friend = 1; FromToUserID FromToUserID = 1;
PublicUserInfo OpUser = 2;
uint64 OperationTime = 3;
} }
//////////////////////user///////////////////// //////////////////////user/////////////////////
message SelfInfoUpdatedTips{ message SelfInfoUpdatedTips{
UserInfo SelfUserInfo = 1; string UserID = 1;
PublicUserInfo OpUser = 2;
uint64 OperationTime = 3;
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册