notification

pull/131/head
wenxu12345 3 years ago
parent d40e1e47fd
commit e64bc40ca9

@ -1,7 +1,7 @@
package friend
import (
"Open_IM/internal/rpc/chat"
chat "Open_IM/internal/rpc/msg"
"Open_IM/pkg/common/config"
"Open_IM/pkg/common/constant"
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
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)
chat.BlackAddedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID)
chat.BlackAddedNotification(req)
return &pbFriend.CommonResp{}, nil
}
@ -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
}
chat.FriendApplicationAddedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID, req.ReqMessage)
chat.FriendApplicationAddedNotification(req)
return &pbFriend.CommonResp{}, nil
}
@ -195,7 +195,10 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri
c.ErrCode = 408
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
return &resp, nil
}
//process Friend application
func (s *friendServer) AddFriendResponse(ctx context.Context, req *pbFriend.AddFriendResponseReq) (*pbFriend.CommonResp, error) {
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)
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
}
}
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
}
@ -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
}
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
}
@ -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
}
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
}
@ -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
}
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
}

@ -11,11 +11,9 @@ import (
"Open_IM/pkg/common/token_verify"
"Open_IM/pkg/grpc-etcdv3/getcdv3"
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"
"context"
"encoding/json"
"fmt"
"google.golang.org/grpc"
"net"
"strconv"
@ -39,6 +37,7 @@ func NewGroupServer(port int) *groupServer {
etcdAddr: config.Config.Etcd.EtcdAddr,
}
}
func (s *groupServer) Run() {
log.Info("", "", "rpc group init....")
@ -78,6 +77,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR
}
//Time stamp + MD5 to generate group chat id
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)
if err != nil {
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
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)
if err != nil {
log.NewError(req.OperationID, "InsertIntoGroupMember failed ", err.Error())
@ -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
}
//Binding group id and member id
//to group member
for _, user := range req.InitMemberList {
us, err := im_mysql_model.FindUserByUID(user.UserID)
if err != nil {
@ -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())
}
}
resp := &pbGroup.CreateGroupResp{}
resp := &pbGroup.CreateGroupResp{}
group, err := im_mysql_model.FindGroupInfoByGroupId(groupId)
if err != nil {
log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", err.Error(), groupId)
@ -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
}
//group list
joinedGroupList, err := imdb.GetJoinedGroupIdListByMemberId(req.FromUserID)
if err != nil {
log.NewError(req.OperationID, "GetJoinedGroupIdListByMemberId failed ", err.Error(), req.FromUserID)
@ -152,7 +153,6 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo
}
var resp pbGroup.GetJoinedGroupListResp
for _, v := range joinedGroupList {
var groupNode open_im_sdk.GroupInfo
num := imdb.GetGroupMemberNumByGroupId(v.GroupID)
@ -160,6 +160,7 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo
group, err := imdb.FindGroupInfoByGroupId(v.GroupID)
if num > 0 && owner != nil && err2 == nil && group != nil && err == nil {
utils.CopyStructFields(&groupNode, group)
groupNode.CreateTime = group.CreateTime
utils.CopyStructFields(groupNode.Owner, owner)
groupNode.MemberCount = uint32(num)
resp.GroupList = append(resp.GroupList, &groupNode)
@ -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) {
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)
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
//from User: invite: applicant
//to user: invite: invited
var resp pbGroup.InviteUserToGroupResp
var okUserIDList []string
for _, v := range req.InvitedUserIDList {
var resultNode pbGroup.Id2Result
resultNode.UserID = v
@ -217,7 +219,7 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite
resp.Id2ResultList = append(resp.Id2ResultList, &resultNode)
continue
}
chat.MemberInvitedNotification(req.OperationID, req.GroupID, req.OpUserID, v)
okUserIDList = append(okUserIDList, v)
err = db.DB.AddGroupMember(req.GroupID, toUserInfo.UserID)
if err != nil {
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
resp.Id2ResultList = append(resp.Id2ResultList, &resultNode)
}
chat.MemberInvitedNotification(req.OperationID, req.GroupID, req.OpUserID, req.Reason, okUserIDList)
resp.ErrCode = 0
log.NewInfo(req.OperationID, "InviteUserToGroup rpc return ", resp)
log.NewInfo(req.OperationID, "InviteUserToGroup rpc return ", resp.String())
return &resp, nil
}
@ -308,6 +311,7 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou
}
}
//op is app manager
if flag != 1 {
if token_verify.IsMangerUserID(req.OpUserID) {
flag = 1
@ -332,6 +336,7 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou
}
}
var okUserIDList []string
//remove
var resp pbGroup.KickGroupMemberResp
for _, v := range req.KickedUserIDList {
@ -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})
} else {
resp.Id2ResultList = append(resp.Id2ResultList, &pbGroup.Id2Result{UserID: v, Result: 0})
okUserIDList = append(okUserIDList, v)
}
err = db.DB.DelGroupMember(req.GroupID, v)
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)
}
}
for _, v := range req.KickedUserIDList {
chat.MemberKickedNotification(req.OperationID, req.GroupID, req.OpUserID, v, req.Reason)
}
chat.MemberKickedNotification(req, okUserIDList)
resp.ErrCode = 0
log.NewInfo(req.OperationID, "GetGroupMemberList rpc return ", resp)
log.NewInfo(req.OperationID, "GetGroupMemberList rpc return ", resp.String())
return &resp, nil
}
@ -377,11 +380,12 @@ func (s *groupServer) GetGroupMembersInfo(ctx context.Context, req *pbGroup.GetG
continue
} else {
utils.CopyStructFields(&memberNode, memberInfo)
memberNode.JoinTime = memberInfo.JoinTime
resp.MemberList = append(resp.MemberList, &memberNode)
}
}
resp.ErrCode = 0
log.NewInfo(req.OperationID, "GetGroupMembersInfo rpc return ", resp)
log.NewInfo(req.OperationID, "GetGroupMembersInfo rpc return ", resp.String())
return &resp, nil
}
@ -407,6 +411,7 @@ func (s *groupServer) GetGroupsInfo(ctx context.Context, req *pbGroup.GetGroupsI
}
var groupInfo open_im_sdk.GroupInfo
utils.CopyStructFields(&groupInfo, groupInfoFromMysql)
groupInfo.CreateTime = groupInfoFromMysql.CreateTime
groupsInfoList = append(groupsInfoList, &groupInfo)
}
@ -437,24 +442,24 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G
}
}
if req.ToUserID == "0" {
group, err := imdb.FindGroupInfoByGroupId(req.GroupID)
if err != nil {
log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", req.GroupID)
return reply, nil
}
member, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, req.OpUserID)
if err != nil {
log.NewError(req.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", req.GroupID, req.OpUserID)
return reply, nil
}
chat.ApplicationProcessedNotification(req.OperationID, req.FromUserID, *group, *member, req.HandleResult, req.HandledMsg)
//group, err := imdb.FindGroupInfoByGroupId(req.GroupID)
//if err != nil {
// log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", req.GroupID)
// return reply, nil
//}
//member, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, req.OpUserID)
//if err != nil {
// log.NewError(req.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", req.GroupID, req.OpUserID)
// return reply, nil
//}
chat.ApplicationProcessedNotification(req)
if req.HandleResult == 1 {
entrantUser, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, req.FromUserID)
if err != nil {
log.NewError(req.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), req.GroupID, req.FromUserID)
return reply, nil
}
chat.MemberEnterNotification(req.OperationID, req.GroupID, entrantUser)
// entrantUser, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, req.FromUserID)
// if err != nil {
// log.NewError(req.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), req.GroupID, req.FromUserID)
// return reply, nil
// }
chat.MemberEnterNotification(req)
}
} else {
log.NewError(req.OperationID, "args failed ", req.String())
@ -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) {
log.NewInfo(req.OperationID, "JoinGroup args ", req.String())
//Parse token, to find current user information
//claims, err := token_verify.ParseToken(req.Token)
//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)
applicationUserInfo, err := im_mysql_model.FindUserByUID(req.OpUserID)
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
}
_, err = im_mysql_model.FindGroupRequestUserInfoByGroupIDAndUid(req.GroupID, req.FromUserID)
_, err = im_mysql_model.FindGroupRequestUserInfoByGroupIDAndUid(req.GroupID, req.OpUserID)
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 {
log.NewError(req.OperationID, "InsertIntoGroupRequest ", err.Error(), req.GroupID, req.FromUserID, "0", req.ReqMessage, applicationUserInfo.Nickname, applicationUserInfo.FaceUrl)
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.OpUserID, "0", req.ReqMessage, applicationUserInfo.Nickname, applicationUserInfo.FaceUrl)
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)
log.NewError(req.OperationID, "FindGroupMemberListByGroupIdAndFilterInfo failed ", req.GroupID, constant.GroupOwner, err)
return &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}, nil
}
group, err := im_mysql_model.FindGroupInfoByGroupId(req.GroupID)
if err != nil {
log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", req.GroupID)
return &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}, nil
}
chat.ReceiveJoinApplicationNotification(req.OperationID, memberList[0].UserID, applicationUserInfo, group)
chat.ReceiveJoinApplicationNotification(req)
log.NewInfo(req.OperationID, "ReceiveJoinApplicationNotification rpc JoinGroup success return")
return &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}, nil
@ -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
}
chat.MemberLeaveNotification(req.OperationID, req.GroupID, req.OpUserID)
chat.MemberLeaveNotification(req)
log.NewInfo(req.OperationID, "rpc quit group is success return")
return &pbGroup.CommonResp{}, nil
}
@ -578,7 +574,7 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf
}
if changedType != 0 {
chat.GroupInfoChangedNotification(req.OperationID, changedType, req.GroupInfo.GroupID, req.OpUserID)
chat.GroupInfoChangedNotification(req)
}
return &pbGroup.CommonResp{}, nil

@ -10,6 +10,7 @@ import (
"Open_IM/pkg/common/token_verify"
"Open_IM/pkg/grpc-etcdv3/getcdv3"
pbChat "Open_IM/pkg/proto/chat"
pbFriend "Open_IM/pkg/proto/friend"
pbGroup "Open_IM/pkg/proto/group"
open_im_sdk "Open_IM/pkg/proto/sdk_ws"
sdk_ws "Open_IM/pkg/proto/sdk_ws"
@ -308,51 +309,82 @@ func Notification(n *NotificationMsg, onlineUserOnly bool) {
// repeated GroupMemberFullInfo MemberList = 3;
// uint64 OperationTime = 4;
//} creator->group
func GroupCreatedNotification(req *pbGroup.CreateGroupReq, groupID string) {
var n NotificationMsg
n.SendID = req.OpUserID
n.RecvID = groupID
n.ContentType = constant.CreateGroupTip
n.SessionType = constant.GroupChatType
n.MsgFrom = constant.SysMsgType
n.OperationID = req.OperationID
var groupCreated open_im_sdk.GroupCreatedTips
groupCreated.Group = &open_im_sdk.GroupInfo{}
if token_verify.IsMangerUserID(req.OpUserID) {
u, err := imdb.FindUserByUID(req.OpUserID)
if err != nil || u == nil {
func setOpUserInfo(operationID, opUserID, groupID string, groupMemberInfo *open_im_sdk.GroupMemberFullInfo) {
if token_verify.IsMangerUserID(opUserID) {
u, err := imdb.FindUserByUID(opUserID)
if err != nil {
log.NewError(operationID, "FindUserByUID failed ", err.Error(), opUserID)
return
}
utils.CopyStructFields(groupCreated.Creator, u)
groupCreated.Creator.AppMangerLevel = 1
utils.CopyStructFields(groupMemberInfo, u)
groupMemberInfo.AppMangerLevel = 1
} else {
u, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(groupID, req.OpUserID)
if err != nil || u == nil {
u, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(groupID, opUserID)
if err != nil {
log.NewError(operationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), groupID, opUserID)
return
}
utils.CopyStructFields(groupCreated.Creator, u)
utils.CopyStructFields(groupMemberInfo, u)
}
}
func setGroupInfo(operationID, groupID string, groupInfo *open_im_sdk.GroupInfo, ownerUserID string) {
group, err := imdb.FindGroupInfoByGroupId(groupID)
if err != nil || group == nil {
if err != nil {
log.NewError(operationID, "FindGroupInfoByGroupId failed ", err.Error(), groupID)
return
}
utils.CopyStructFields(groupInfo, group)
if ownerUserID != "" {
groupInfo.Owner = &open_im_sdk.PublicUserInfo{}
setGroupPublicUserInfo(operationID, groupID, ownerUserID, groupInfo.Owner)
}
}
func setGroupMemberInfo(operationID, groupID, userID string, groupMemberInfo *open_im_sdk.GroupMemberFullInfo) {
group, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(groupID, userID)
if err != nil {
log.NewError(operationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), groupID, userID)
return
}
utils.CopyStructFields(groupCreated.Group, group)
groupCreated.Creator = &open_im_sdk.GroupMemberFullInfo{}
utils.CopyStructFields(groupMemberInfo, group)
}
func setGroupPublicUserInfo(operationID, groupID, userID string, publicUserInfo *open_im_sdk.PublicUserInfo) {
group, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(groupID, userID)
if err != nil {
log.NewError(operationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), groupID, userID)
return
}
utils.CopyStructFields(publicUserInfo, group)
}
for _, v := range req.InitMemberList {
//创建群后调用
func GroupCreatedNotification(operationID, opUserID, OwnerUserID, groupID string, initMemberList []string) {
var n NotificationMsg
n.SendID = opUserID
n.RecvID = groupID
n.ContentType = constant.GroupCreatedNotification
n.SessionType = constant.GroupChatType
n.MsgFrom = constant.SysMsgType
n.OperationID = operationID
GroupCreatedTips := open_im_sdk.GroupCreatedTips{Group: &open_im_sdk.GroupInfo{},
Creator: &open_im_sdk.GroupMemberFullInfo{}}
setOpUserInfo(operationID, GroupCreatedTips.Creator.UserID, groupID, GroupCreatedTips.Creator)
setGroupInfo(operationID, groupID, GroupCreatedTips.Group, OwnerUserID)
for _, v := range initMemberList {
var groupMemberInfo open_im_sdk.GroupMemberFullInfo
member, err := imdb.GetMemberInfoById(groupID, v.UserID)
if err != nil {
utils.CopyStructFields(&groupMemberInfo, member)
}
groupCreated.MemberList = append(groupCreated.MemberList, &groupMemberInfo)
setGroupMemberInfo(operationID, groupID, v, &groupMemberInfo)
GroupCreatedTips.MemberList = append(GroupCreatedTips.MemberList, &groupMemberInfo)
}
var tips open_im_sdk.TipsComm
tips.Detail, _ = json.Marshal(groupCreated)
tips.Detail, _ = json.Marshal(GroupCreatedTips)
tips.DefaultTips = config.Config.Notification.GroupCreated.DefaultTips.Tips
n.Content, _ = json.Marshal(tips)
Notification(&n, false)
@ -362,27 +394,44 @@ func GroupCreatedNotification(req *pbGroup.CreateGroupReq, groupID string) {
// GroupInfo Group = 1;
// PublicUserInfo Applicant = 2;
// string Reason = 3;
//}
func ReceiveJoinApplicationNotification(operationID, RecvID string, applicant *immysql.User, group *immysql.Group) {
//} apply->all managers GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"`
// ReqMessage string `protobuf:"bytes,2,opt,name=ReqMessage" json:"ReqMessage,omitempty"`
// OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"`
// OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"`
//申请进群后调用
func JoinApplicationNotification(req *pbGroup.JoinGroupReq) {
managerList, err := imdb.GetOwnerManagerByGroupId(req.GroupID)
if err != nil {
log.NewError(req.OperationID, "GetOwnerManagerByGroupId failed ", err.Error(), req.GroupID)
return
}
var n NotificationMsg
n.SendID = applicant.UserID
n.RecvID = RecvID
n.ContentType = constant.ApplyJoinGroupTip
n.SendID = req.OpUserID
n.ContentType = constant.JoinApplicationNotification
n.SessionType = constant.SingleChatType
n.MsgFrom = constant.SysMsgType
n.OperationID = operationID
n.OperationID = req.OperationID
var joniGroup open_im_sdk.ReceiveJoinApplicationTips
joniGroup.Group = &open_im_sdk.GroupInfo{}
utils.CopyStructFields(joniGroup.Group, group)
joniGroup.Applicant = &open_im_sdk.PublicUserInfo{}
utils.CopyStructFields(joniGroup.Applicant, applicant)
JoinGroupApplicationTips := open_im_sdk.JoinGroupApplicationTips{Group: &open_im_sdk.GroupInfo{}, Applicant: &open_im_sdk.PublicUserInfo{}}
setGroupInfo(req.OperationID, req.GroupID, JoinGroupApplicationTips.Group, "")
apply, err := imdb.FindUserByUID(req.OpUserID)
if err != nil {
log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.OpUserID)
return
}
utils.CopyStructFields(JoinGroupApplicationTips.Applicant, apply)
JoinGroupApplicationTips.Reason = req.ReqMessage
var tips open_im_sdk.TipsComm
tips.Detail, _ = json.Marshal(joniGroup)
tips.DefaultTips = config.Config.Notification.ApplyJoinGroup.DefaultTips.Tips
tips.Detail, _ = json.Marshal(JoinGroupApplicationTips)
tips.DefaultTips = "JoinGroupApplicationTips"
n.Content, _ = json.Marshal(tips)
Notification(&n, false)
for _, v := range managerList {
n.RecvID = v.UserID
Notification(&n, true)
}
}
//message ApplicationProcessedTips{
@ -391,8 +440,28 @@ func ReceiveJoinApplicationNotification(operationID, RecvID string, applicant *i
// int32 Result = 3;
// string Reason = 4;
//}
func ApplicationProcessedNotification(operationID, RecvID string, group immysql.Group, opUser immysql.GroupMember, result int32, Reason string) {
//处理进群请求后调用
func ApplicationProcessedNotification(req *pbGroup.GroupApplicationResponseReq) {
var n NotificationMsg
n.SendID = req.OpUserID
n.ContentType = constant.ApplicationProcessedNotification
n.SessionType = constant.SingleChatType
n.MsgFrom = constant.SysMsgType
n.OperationID = req.OperationID
n.RecvID = req.ToUserID
ApplicationProcessedTips := open_im_sdk.ApplicationProcessedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}}
setGroupInfo(req.OperationID, req.GroupID, ApplicationProcessedTips.Group, "")
setOpUserInfo(req.OperationID, req.OpUserID, req.GroupID, ApplicationProcessedTips.OpUser)
ApplicationProcessedTips.Reason = req.HandledMsg
ApplicationProcessedTips.Result = req.HandleResult
var tips open_im_sdk.TipsComm
tips.Detail, _ = json.Marshal(ApplicationProcessedTips)
tips.DefaultTips = "ApplicationProcessedNotification"
n.Content, _ = json.Marshal(tips)
Notification(&n, true)
}
//message MemberInvitedTips{
@ -401,8 +470,29 @@ func ApplicationProcessedNotification(operationID, RecvID string, group immysql.
// GroupMemberFullInfo InvitedUser = 3;
// uint64 OperationTime = 4;
//}
func MemberInvitedNotification(operationID string, group immysql.Group, opUser immysql.User, invitedUser immysql.GroupMember) {
//被邀请进群后调用
func MemberInvitedNotification(operationID, groupID, opUserID, reason string, invitedUserIDList []string) {
var n NotificationMsg
n.SendID = opUserID
n.ContentType = constant.MemberInvitedNotification
n.SessionType = constant.GroupChatType
n.MsgFrom = constant.SysMsgType
n.OperationID = operationID
ApplicationProcessedTips := open_im_sdk.MemberInvitedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}}
setGroupInfo(operationID, groupID, ApplicationProcessedTips.Group, "")
setOpUserInfo(operationID, opUserID, groupID, ApplicationProcessedTips.OpUser)
for _, v := range invitedUserIDList {
var groupMemberInfo open_im_sdk.GroupMemberFullInfo
setGroupMemberInfo(operationID, groupID, v, &groupMemberInfo)
ApplicationProcessedTips.InvitedUserList = append(ApplicationProcessedTips.InvitedUserList, &groupMemberInfo)
}
var tips open_im_sdk.TipsComm
tips.Detail, _ = json.Marshal(ApplicationProcessedTips)
tips.DefaultTips = "MemberInvitedNotification"
n.Content, _ = json.Marshal(tips)
n.RecvID = groupID
Notification(&n, true)
}
//message MemberKickedTips{
@ -411,12 +501,35 @@ func MemberInvitedNotification(operationID string, group immysql.Group, opUser i
// GroupMemberFullInfo KickedUser = 3;
// uint64 OperationTime = 4;
//}
//被踢后调用
func MemberKickedNotification(req *pbGroup.KickGroupMemberReq, kickedUserIDList []string) {
var n NotificationMsg
n.SendID = req.OpUserID
n.ContentType = constant.MemberKickedNotification
n.SessionType = constant.GroupChatType
n.MsgFrom = constant.SysMsgType
n.OperationID = req.OperationID
func MemberKickedNotificationID(operationID, GroupID, opUserID, kickedUserID, reason string) {
}
func MemberKickedNotification(operationID string, group immysql.Group, opUser immysql.GroupMember, KickedUser immysql.GroupMember) {
MemberKickedTips := open_im_sdk.MemberKickedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}}
setGroupInfo(req.OperationID, req.GroupID, MemberKickedTips.Group, "")
setOpUserInfo(req.OperationID, req.OpUserID, req.GroupID, MemberKickedTips.OpUser)
for _, v := range kickedUserIDList {
var groupMemberInfo open_im_sdk.GroupMemberFullInfo
setGroupMemberInfo(req.OperationID, req.GroupID, v, &groupMemberInfo)
MemberKickedTips.KickedUserList = append(MemberKickedTips.KickedUserList, &groupMemberInfo)
}
var tips open_im_sdk.TipsComm
tips.Detail, _ = json.Marshal(MemberKickedTips)
tips.DefaultTips = "MemberKickedNotification"
n.Content, _ = json.Marshal(tips)
n.RecvID = req.GroupID
Notification(&n, true)
for _, v := range kickedUserIDList {
n.SessionType = constant.SingleChatType
n.RecvID = v
Notification(&n, true)
}
}
//message GroupInfoChangedTips{
@ -424,8 +537,26 @@ func MemberKickedNotification(operationID string, group immysql.Group, opUser im
// GroupInfo Group = 2;
// GroupMemberFullInfo OpUser = 3;
//}
func GroupInfoChangedNotification(operationID string, changedType int32, groupID string, opUserID string) {
//群信息改变后掉用
func GroupInfoChangedNotification(req *pbGroup.SetGroupInfoReq) {
var n NotificationMsg
n.SendID = req.OpUserID
n.ContentType = constant.GroupInfoChangedNotification
n.SessionType = constant.GroupChatType
n.MsgFrom = constant.SysMsgType
n.OperationID = req.OperationID
GroupInfoChangedTips := open_im_sdk.GroupInfoChangedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}}
setGroupInfo(req.OperationID, req.GroupInfo.GroupID, GroupInfoChangedTips.Group, "")
setOpUserInfo(req.OperationID, req.OpUserID, req.GroupInfo.GroupID, GroupInfoChangedTips.OpUser)
var tips open_im_sdk.TipsComm
tips.Detail, _ = json.Marshal(GroupInfoChangedTips)
tips.DefaultTips = "GroupInfoChangedNotification"
n.Content, _ = json.Marshal(tips)
n.RecvID = req.GroupInfo.GroupID
Notification(&n, true)
}
/*
@ -458,8 +589,30 @@ func GroupInfoChangedNotification(operationID string, changedType int32, group *
// GroupMemberFullInfo LeaverUser = 2;
// uint64 OperationTime = 3;
//}
func MemberLeaveNotification(operationID, groupID, leaverUserID string) {
//群成员退群后调用
func MemberLeaveNotification(req *pbGroup.QuitGroupReq) {
var n NotificationMsg
n.SendID = req.OpUserID
n.ContentType = constant.MemberLeaveNotification
n.SessionType = constant.GroupChatType
n.MsgFrom = constant.SysMsgType
n.OperationID = req.OperationID
MemberLeaveTips := open_im_sdk.MemberLeaveTips{Group: &open_im_sdk.GroupInfo{}, LeaverUser: &open_im_sdk.GroupMemberFullInfo{}}
setGroupInfo(req.OperationID, req.GroupID, MemberLeaveTips.Group, "")
setOpUserInfo(req.OperationID, req.OpUserID, req.GroupID, MemberLeaveTips.LeaverUser)
var tips open_im_sdk.TipsComm
tips.Detail, _ = json.Marshal(MemberLeaveTips)
tips.DefaultTips = "MemberLeaveNotification"
n.Content, _ = json.Marshal(tips)
n.RecvID = req.GroupID
Notification(&n, true)
n.SessionType = constant.SingleChatType
n.RecvID = req.OpUserID
Notification(&n, true)
}
//message MemberEnterTips{
@ -467,7 +620,25 @@ func MemberLeaveNotification(operationID, groupID, leaverUserID string) {
// GroupMemberFullInfo EntrantUser = 2;
// uint64 OperationTime = 3;
//}
func MemberEnterNotification(operationID string, group *immysql.Group, entrantUser *immysql.GroupMember) {
//群成员主动申请进群,管理员同意后调用,
func MemberEnterNotification(req *pbGroup.GroupApplicationResponseReq) {
var n NotificationMsg
n.SendID = req.OpUserID
n.ContentType = constant.MemberEnterNotification
n.SessionType = constant.GroupChatType
n.MsgFrom = constant.SysMsgType
n.OperationID = req.OperationID
MemberLeaveTips := open_im_sdk.MemberEnterTips{Group: &open_im_sdk.GroupInfo{}, EntrantUser: &open_im_sdk.GroupMemberFullInfo{}}
setGroupInfo(req.OperationID, req.GroupID, MemberLeaveTips.Group, "")
setOpUserInfo(req.OperationID, req.OpUserID, req.GroupID, MemberLeaveTips.EntrantUser)
var tips open_im_sdk.TipsComm
tips.Detail, _ = json.Marshal(MemberLeaveTips)
tips.DefaultTips = "MemberEnterNotification"
n.Content, _ = json.Marshal(tips)
n.RecvID = req.GroupID
Notification(&n, true)
}
@ -478,47 +649,143 @@ func MemberEnterNotification(operationID string, group *immysql.Group, entrantUs
// uint64 MuteTime = 4;
// GroupInfo Group = 5;
//}
func MemberInfoChangedNotification(operationID string, group *immysql.Group, opUser *immysql.GroupMember, userFinalInfo *immysql.GroupMember) {
//func MemberInfoChangedNotification(operationID string, group *immysql.Group, opUser *immysql.GroupMember, userFinalInfo *immysql.GroupMember) {
}
//}
//message FriendApplicationAddedTips{
// PublicUserInfo OpUser = 1; //user1
// FriendApplication Application = 2;
// PublicUserInfo OpedUser = 3; //user2
//}
func FriendApplicationAddedNotification(operationID string, opUser *immysql.User, opedUser *immysql.User, application *immysql.FriendRequest) {
func getFromToUserNickname(operationID, fromUserID, toUserID string) (string, string) {
from, err1 := imdb.FindUserByUID(fromUserID)
to, err2 := imdb.FindUserByUID(toUserID)
if err1 != nil || err2 != nil {
log.NewError("FindUserByUID failed ", err1, err2, fromUserID, toUserID)
}
fromNickname, toNickname := "", ""
if from != nil {
fromNickname = from.Nickname
}
if to != nil {
toNickname = to.Nickname
}
return fromNickname, toNickname
}
//message FriendApplicationProcessedTips{
// PublicUserInfo OpUser = 1; //user2
// PublicUserInfo OpedUser = 2; //user1
// int32 result = 3; //1: accept; -1: reject
//}
func FriendApplicationProcessedNotification(operationID string, opUser *immysql.User, OpedUser *immysql.User, result int32) {
func FriendApplicationAddedNotification(req *pbFriend.AddFriendReq) {
var n NotificationMsg
n.SendID = req.CommID.FromUserID
n.RecvID = req.CommID.ToUserID
n.ContentType = constant.FriendApplicationAddedNotification
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)
}
//message FriendAddedTips{
// FriendInfo Friend = 1;
//}
//message FriendInfo{
// UserInfo OwnerUser = 1;
// string Remark = 2;
// uint64 CreateTime = 3;
// UserInfo FriendUser = 4;
//}
func FriendApplicationProcessedNotification(req *pbFriend.AddFriendResponseReq) {
var n NotificationMsg
n.SendID = req.CommID.FromUserID
n.RecvID = req.CommID.ToUserID
n.ContentType = constant.FriendApplicationProcessedNotification
n.SessionType = constant.SingleChatType
n.MsgFrom = constant.SysMsgType
n.OperationID = req.CommID.OperationID
func FriendAddedNotification(operationID string, opUser *immysql.User, friendUser *immysql.Friend) {
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, true)
}
func FriendAddedNotification(operationID, opUserID, fromUserID, toUserID string) {
var n NotificationMsg
n.SendID = fromUserID
n.RecvID = toUserID
n.ContentType = constant.FriendAddedNotification
n.SessionType = constant.SingleChatType
n.MsgFrom = constant.SysMsgType
n.OperationID = operationID
var FriendAddedTips open_im_sdk.FriendAddedTips
user, err := imdb.FindUserByUID(opUserID)
if err != nil {
log.NewError(operationID, "FindUserByUID failed ", err.Error(), opUserID)
} else {
utils.CopyStructFields(FriendAddedTips.OpUser, user)
}
friend, err := imdb.FindFriendRelationshipFromFriend(fromUserID, toUserID)
if err != nil {
log.NewError(operationID, "FindUserByUID failed ", err.Error(), fromUserID, toUserID)
} else {
FriendAddedTips.Friend.Remark = friend.Remark
}
from, err := imdb.FindUserByUID(fromUserID)
if err != nil {
log.NewError(operationID, "FindUserByUID failed ", err.Error(), fromUserID)
} else {
utils.CopyStructFields(FriendAddedTips.Friend.OwnerUser, from)
}
to, err := imdb.FindUserByUID(toUserID)
if err != nil {
log.NewError(operationID, "FindUserByUID failed ", err.Error(), toUserID)
} else {
utils.CopyStructFields(FriendAddedTips.Friend.FriendUser, to)
}
fromUserNickname, toUserNickname := FriendAddedTips.Friend.OwnerUser.Nickname, FriendAddedTips.Friend.FriendUser.Nickname
var tips open_im_sdk.TipsComm
tips.Detail, _ = json.Marshal(FriendAddedTips)
tips.DefaultTips = fromUserNickname + " FriendAddedNotification " + toUserNickname
n.Content, _ = json.Marshal(tips)
Notification(&n, true)
}
//message FriendDeletedTips{
// FriendInfo Friend = 1;
//}
func FriendDeletedNotification(operationID string, opUser *immysql.User, friendUser *immysql.Friend) {
func FriendDeletedNotification(req *pbFriend.DeleteFriendReq) {
var n NotificationMsg
n.SendID = req.CommID.FromUserID
n.RecvID = req.CommID.ToUserID
n.ContentType = constant.FriendDeletedNotification
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.OperationID, 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, true)
}
//message FriendInfoChangedTips{
@ -526,8 +793,24 @@ func FriendDeletedNotification(operationID string, opUser *immysql.User, friendU
// PublicUserInfo OpUser = 2;
// uint64 OperationTime = 3;
//}
func FriendInfoChangedNotification(operationID string, opUser *immysql.User, friendUser *immysql.Friend) {
func FriendInfoChangedNotification(req *pbFriend.SetFriendCommentReq) {
var n NotificationMsg
n.SendID = req.CommID.FromUserID
n.RecvID = req.CommID.ToUserID
n.ContentType = constant.FriendInfoChangedNotification
n.SessionType = constant.SingleChatType
n.MsgFrom = constant.SysMsgType
n.OperationID = req.CommID.OperationID
var FriendInfoChangedTips open_im_sdk.FriendInfoChangedTips
FriendInfoChangedTips.FromToUserID.FromUserID = req.CommID.FromUserID
FriendInfoChangedTips.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(FriendInfoChangedTips)
tips.DefaultTips = fromUserNickname + " FriendDeletedNotification " + toUserNickname
n.Content, _ = json.Marshal(tips)
Notification(&n, true)
}
//message BlackAddedTips{
@ -539,15 +822,47 @@ func FriendInfoChangedNotification(operationID string, opUser *immysql.User, fri
// uint64 CreateTime = 3;
// PublicUserInfo BlackUser = 4;
//}
func BlackAddedNotification(operationID string, opUser *immysql.User, blackUser *immysql.User) {
func BlackAddedNotification(req *pbFriend.AddBlacklistReq) {
var n NotificationMsg
n.SendID = req.CommID.FromUserID
n.RecvID = req.CommID.ToUserID
n.ContentType = constant.BlackAddedNotification
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.OperationID, 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, true)
}
//message BlackDeletedTips{
// BlackInfo Black = 1;
//}
func BlackDeletedNotification(operationID string, opUser *immysql.User, blackUser *immysql.User) {
func BlackDeletedNotification(req *pbFriend.RemoveBlacklistReq) {
var n NotificationMsg
n.SendID = req.CommID.FromUserID
n.RecvID = req.CommID.ToUserID
n.ContentType = constant.BlackDeletedNotification
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.OperationID, 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, true)
}
//message SelfInfoUpdatedTips{
@ -555,6 +870,26 @@ func BlackDeletedNotification(operationID string, opUser *immysql.User, blackUse
// PublicUserInfo OpUser = 2;
// uint64 OperationTime = 3;
//}
func SelfInfoUpdatedNotification(operationID string, opUser *immysql.User, selfUser *immysql.User) {
func SelfInfoUpdatedNotification(operationID, userID string) {
var n NotificationMsg
n.SendID = userID
n.RecvID = userID
n.ContentType = constant.SelfInfoUpdatedNotification
n.SessionType = constant.SingleChatType
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.FindUserByUID(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, true)
}

@ -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())
continue
}
userInfo.Uid = user.UID
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
utils.CopyStructFields(&userInfo, user)
userInfoList = append(userInfoList, &userInfo)
}
} else {

@ -2,6 +2,7 @@ package user
import (
"Open_IM/internal/push/logic"
chat "Open_IM/internal/rpc/msg"
"Open_IM/pkg/common/config"
"Open_IM/pkg/common/constant"
"Open_IM/pkg/common/db/mysql_model/im_mysql_model"
@ -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())
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())
return &pbUser.CommonResp{}, nil
}
@ -62,6 +63,8 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI
if self != nil {
name, faceUrl = self.Name, self.Icon
}
chat.SelfInfoUpdatedNotification(req.OperationID, req.Uid)
for _, v := range RpcResp.Data {
logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{
SendID: ownerUid,

@ -45,22 +45,38 @@ const (
GroupMsg = 201
//SysRelated
AcceptFriendApplicationTip = 201
AddFriendTip = 202
RefuseFriendApplicationTip = 203
SetSelfInfoTip = 204
TransferGroupOwnerTip = 501
CreateGroupTip = 502
GroupApplicationResponseTip = 503
ApplyJoinGroupTip = 504
QuitGroupTip = 505
SetGroupInfoTip = 506
AcceptGroupApplicationTip = 507
RefuseGroupApplicationTip = 508
KickGroupMemberTip = 509
InviteUserToGroupTip = 510
ChangeGroupInfoTip = 511
FriendApplicationAddedNotification = 201
FriendApplicationProcessedNotification = 202
FriendAddedNotification = 203
FriendDeletedNotification = 204
FriendInfoChangedNotification = 205
BlackAddedNotification = 206
BlackDeletedNotification = 207
//AcceptFriendApplicationTip = 201
//AddFriendTip = 202
//RefuseFriendApplicationTip = 203
SelfInfoUpdatedNotification = 301
GroupCreatedNotification = 501
JoinApplicationNotification = 502
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
UserMsgType = 100

@ -91,18 +91,6 @@ func initMysqlDB() {
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` (" +
" `owner_id` varchar(64) NOT NULL," +
" `block_id` varchar(64) NOT NULL," +

@ -15,7 +15,7 @@ func InsertIntoGroup(groupId, name, introduction, notification, faceUrl, ex stri
}
//Default group 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}
err = dbConn.Table("group").Create(toInsertInfo).Error

@ -36,7 +36,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} }
func (m *CommonResp) String() string { return proto.CompactTextString(m) }
func (*CommonResp) ProtoMessage() {}
func (*CommonResp) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{0}
return fileDescriptor_group_95297d6a59bab850, []int{0}
}
func (m *CommonResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CommonResp.Unmarshal(m, b)
@ -82,7 +82,7 @@ func (m *GroupAddMemberInfo) Reset() { *m = GroupAddMemberInfo{} }
func (m *GroupAddMemberInfo) String() string { return proto.CompactTextString(m) }
func (*GroupAddMemberInfo) ProtoMessage() {}
func (*GroupAddMemberInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{1}
return fileDescriptor_group_95297d6a59bab850, []int{1}
}
func (m *GroupAddMemberInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupAddMemberInfo.Unmarshal(m, b)
@ -135,7 +135,7 @@ func (m *CreateGroupReq) Reset() { *m = CreateGroupReq{} }
func (m *CreateGroupReq) String() string { return proto.CompactTextString(m) }
func (*CreateGroupReq) ProtoMessage() {}
func (*CreateGroupReq) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{2}
return fileDescriptor_group_95297d6a59bab850, []int{2}
}
func (m *CreateGroupReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CreateGroupReq.Unmarshal(m, b)
@ -231,7 +231,7 @@ func (m *CreateGroupResp) Reset() { *m = CreateGroupResp{} }
func (m *CreateGroupResp) String() string { return proto.CompactTextString(m) }
func (*CreateGroupResp) ProtoMessage() {}
func (*CreateGroupResp) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{3}
return fileDescriptor_group_95297d6a59bab850, []int{3}
}
func (m *CreateGroupResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CreateGroupResp.Unmarshal(m, b)
@ -285,7 +285,7 @@ func (m *GetGroupsInfoReq) Reset() { *m = GetGroupsInfoReq{} }
func (m *GetGroupsInfoReq) String() string { return proto.CompactTextString(m) }
func (*GetGroupsInfoReq) ProtoMessage() {}
func (*GetGroupsInfoReq) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{4}
return fileDescriptor_group_95297d6a59bab850, []int{4}
}
func (m *GetGroupsInfoReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupsInfoReq.Unmarshal(m, b)
@ -339,7 +339,7 @@ func (m *GetGroupsInfoResp) Reset() { *m = GetGroupsInfoResp{} }
func (m *GetGroupsInfoResp) String() string { return proto.CompactTextString(m) }
func (*GetGroupsInfoResp) ProtoMessage() {}
func (*GetGroupsInfoResp) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{5}
return fileDescriptor_group_95297d6a59bab850, []int{5}
}
func (m *GetGroupsInfoResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupsInfoResp.Unmarshal(m, b)
@ -383,8 +383,7 @@ func (m *GetGroupsInfoResp) GetGroupInfoList() []*sdk_ws.GroupInfo {
type SetGroupInfoReq struct {
GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,1,opt,name=GroupInfo" json:"GroupInfo,omitempty"`
OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"`
FromUserID string `protobuf:"bytes,3,opt,name=FromUserID" json:"FromUserID,omitempty"`
OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"`
OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -394,7 +393,7 @@ func (m *SetGroupInfoReq) Reset() { *m = SetGroupInfoReq{} }
func (m *SetGroupInfoReq) String() string { return proto.CompactTextString(m) }
func (*SetGroupInfoReq) ProtoMessage() {}
func (*SetGroupInfoReq) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{6}
return fileDescriptor_group_95297d6a59bab850, []int{6}
}
func (m *SetGroupInfoReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetGroupInfoReq.Unmarshal(m, b)
@ -428,13 +427,6 @@ func (m *SetGroupInfoReq) GetOpUserID() string {
return ""
}
func (m *SetGroupInfoReq) GetFromUserID() string {
if m != nil {
return m.FromUserID
}
return ""
}
func (m *SetGroupInfoReq) GetOperationID() string {
if m != nil {
return m.OperationID
@ -442,7 +434,6 @@ func (m *SetGroupInfoReq) GetOperationID() string {
return ""
}
// owner or manager
type GetGroupApplicationListReq struct {
OpUserID string `protobuf:"bytes,1,opt,name=OpUserID" json:"OpUserID,omitempty"`
OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"`
@ -456,7 +447,7 @@ func (m *GetGroupApplicationListReq) Reset() { *m = GetGroupApplicationL
func (m *GetGroupApplicationListReq) String() string { return proto.CompactTextString(m) }
func (*GetGroupApplicationListReq) ProtoMessage() {}
func (*GetGroupApplicationListReq) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{7}
return fileDescriptor_group_95297d6a59bab850, []int{7}
}
func (m *GetGroupApplicationListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupApplicationListReq.Unmarshal(m, b)
@ -523,7 +514,7 @@ func (m *GetGroupApplicationList_Data_User) Reset() { *m = GetGroupAppli
func (m *GetGroupApplicationList_Data_User) String() string { return proto.CompactTextString(m) }
func (*GetGroupApplicationList_Data_User) ProtoMessage() {}
func (*GetGroupApplicationList_Data_User) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{8}
return fileDescriptor_group_95297d6a59bab850, []int{8}
}
func (m *GetGroupApplicationList_Data_User) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupApplicationList_Data_User.Unmarshal(m, b)
@ -667,7 +658,7 @@ func (m *GetGroupApplicationListData) Reset() { *m = GetGroupApplication
func (m *GetGroupApplicationListData) String() string { return proto.CompactTextString(m) }
func (*GetGroupApplicationListData) ProtoMessage() {}
func (*GetGroupApplicationListData) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{9}
return fileDescriptor_group_95297d6a59bab850, []int{9}
}
func (m *GetGroupApplicationListData) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupApplicationListData.Unmarshal(m, b)
@ -714,7 +705,7 @@ func (m *GetGroupApplicationListResp) Reset() { *m = GetGroupApplication
func (m *GetGroupApplicationListResp) String() string { return proto.CompactTextString(m) }
func (*GetGroupApplicationListResp) ProtoMessage() {}
func (*GetGroupApplicationListResp) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{10}
return fileDescriptor_group_95297d6a59bab850, []int{10}
}
func (m *GetGroupApplicationListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupApplicationListResp.Unmarshal(m, b)
@ -770,7 +761,7 @@ func (m *TransferGroupOwnerReq) Reset() { *m = TransferGroupOwnerReq{} }
func (m *TransferGroupOwnerReq) String() string { return proto.CompactTextString(m) }
func (*TransferGroupOwnerReq) ProtoMessage() {}
func (*TransferGroupOwnerReq) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{11}
return fileDescriptor_group_95297d6a59bab850, []int{11}
}
func (m *TransferGroupOwnerReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TransferGroupOwnerReq.Unmarshal(m, b)
@ -828,9 +819,8 @@ func (m *TransferGroupOwnerReq) GetOpUserID() string {
type JoinGroupReq struct {
GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"`
ReqMessage string `protobuf:"bytes,2,opt,name=ReqMessage" json:"ReqMessage,omitempty"`
FromUserID string `protobuf:"bytes,3,opt,name=FromUserID" json:"FromUserID,omitempty"`
OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"`
OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"`
OpUserID string `protobuf:"bytes,5,opt,name=OpUserID" json:"OpUserID,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -840,7 +830,7 @@ func (m *JoinGroupReq) Reset() { *m = JoinGroupReq{} }
func (m *JoinGroupReq) String() string { return proto.CompactTextString(m) }
func (*JoinGroupReq) ProtoMessage() {}
func (*JoinGroupReq) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{12}
return fileDescriptor_group_95297d6a59bab850, []int{12}
}
func (m *JoinGroupReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_JoinGroupReq.Unmarshal(m, b)
@ -874,9 +864,9 @@ func (m *JoinGroupReq) GetReqMessage() string {
return ""
}
func (m *JoinGroupReq) GetFromUserID() string {
func (m *JoinGroupReq) GetOpUserID() string {
if m != nil {
return m.FromUserID
return m.OpUserID
}
return ""
}
@ -888,24 +878,15 @@ func (m *JoinGroupReq) GetOperationID() string {
return ""
}
func (m *JoinGroupReq) GetOpUserID() string {
if m != nil {
return m.OpUserID
}
return ""
}
type GroupApplicationResponseReq struct {
OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"`
OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"`
GroupID string `protobuf:"bytes,3,opt,name=GroupID" json:"GroupID,omitempty"`
FromUserID string `protobuf:"bytes,4,opt,name=FromUserID" json:"FromUserID,omitempty"`
ToUserID string `protobuf:"bytes,7,opt,name=ToUserID" json:"ToUserID,omitempty"`
AddTime int64 `protobuf:"varint,10,opt,name=AddTime" json:"AddTime,omitempty"`
HandledMsg string `protobuf:"bytes,12,opt,name=HandledMsg" json:"HandledMsg,omitempty"`
// int32 Type = 13;
// int32 HandleStatus = 14;
HandleResult int32 `protobuf:"varint,15,opt,name=HandleResult" json:"HandleResult,omitempty"`
OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"`
OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"`
GroupID string `protobuf:"bytes,3,opt,name=GroupID" json:"GroupID,omitempty"`
FromUserID string `protobuf:"bytes,4,opt,name=FromUserID" json:"FromUserID,omitempty"`
ToUserID string `protobuf:"bytes,5,opt,name=ToUserID" json:"ToUserID,omitempty"`
AddTime int64 `protobuf:"varint,6,opt,name=AddTime" json:"AddTime,omitempty"`
HandledMsg string `protobuf:"bytes,7,opt,name=HandledMsg" json:"HandledMsg,omitempty"`
HandleResult int32 `protobuf:"varint,8,opt,name=HandleResult" json:"HandleResult,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -915,7 +896,7 @@ func (m *GroupApplicationResponseReq) Reset() { *m = GroupApplicationRes
func (m *GroupApplicationResponseReq) String() string { return proto.CompactTextString(m) }
func (*GroupApplicationResponseReq) ProtoMessage() {}
func (*GroupApplicationResponseReq) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{13}
return fileDescriptor_group_95297d6a59bab850, []int{13}
}
func (m *GroupApplicationResponseReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupApplicationResponseReq.Unmarshal(m, b)
@ -1006,7 +987,7 @@ func (m *SetOwnerGroupNickNameReq) Reset() { *m = SetOwnerGroupNickNameR
func (m *SetOwnerGroupNickNameReq) String() string { return proto.CompactTextString(m) }
func (*SetOwnerGroupNickNameReq) ProtoMessage() {}
func (*SetOwnerGroupNickNameReq) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{14}
return fileDescriptor_group_95297d6a59bab850, []int{14}
}
func (m *SetOwnerGroupNickNameReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetOwnerGroupNickNameReq.Unmarshal(m, b)
@ -1064,8 +1045,7 @@ func (m *SetOwnerGroupNickNameReq) GetOpUserID() string {
type QuitGroupReq struct {
GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"`
OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"`
FromUserID string `protobuf:"bytes,3,opt,name=FromUserID" json:"FromUserID,omitempty"`
OpUserID string `protobuf:"bytes,4,opt,name=OpUserID" json:"OpUserID,omitempty"`
OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -1075,7 +1055,7 @@ func (m *QuitGroupReq) Reset() { *m = QuitGroupReq{} }
func (m *QuitGroupReq) String() string { return proto.CompactTextString(m) }
func (*QuitGroupReq) ProtoMessage() {}
func (*QuitGroupReq) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{15}
return fileDescriptor_group_95297d6a59bab850, []int{15}
}
func (m *QuitGroupReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_QuitGroupReq.Unmarshal(m, b)
@ -1109,13 +1089,6 @@ func (m *QuitGroupReq) GetOperationID() string {
return ""
}
func (m *QuitGroupReq) GetFromUserID() string {
if m != nil {
return m.FromUserID
}
return ""
}
func (m *QuitGroupReq) GetOpUserID() string {
if m != nil {
return m.OpUserID
@ -1138,7 +1111,7 @@ func (m *GetGroupMemberListReq) Reset() { *m = GetGroupMemberListReq{} }
func (m *GetGroupMemberListReq) String() string { return proto.CompactTextString(m) }
func (*GetGroupMemberListReq) ProtoMessage() {}
func (*GetGroupMemberListReq) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{16}
return fileDescriptor_group_95297d6a59bab850, []int{16}
}
func (m *GetGroupMemberListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupMemberListReq.Unmarshal(m, b)
@ -1207,7 +1180,7 @@ func (m *GetGroupMemberListResp) Reset() { *m = GetGroupMemberListResp{}
func (m *GetGroupMemberListResp) String() string { return proto.CompactTextString(m) }
func (*GetGroupMemberListResp) ProtoMessage() {}
func (*GetGroupMemberListResp) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{17}
return fileDescriptor_group_95297d6a59bab850, []int{17}
}
func (m *GetGroupMemberListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupMemberListResp.Unmarshal(m, b)
@ -1269,7 +1242,7 @@ func (m *GetGroupMembersInfoReq) Reset() { *m = GetGroupMembersInfoReq{}
func (m *GetGroupMembersInfoReq) String() string { return proto.CompactTextString(m) }
func (*GetGroupMembersInfoReq) ProtoMessage() {}
func (*GetGroupMembersInfoReq) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{18}
return fileDescriptor_group_95297d6a59bab850, []int{18}
}
func (m *GetGroupMembersInfoReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupMembersInfoReq.Unmarshal(m, b)
@ -1330,7 +1303,7 @@ func (m *GetGroupMembersInfoResp) Reset() { *m = GetGroupMembersInfoResp
func (m *GetGroupMembersInfoResp) String() string { return proto.CompactTextString(m) }
func (*GetGroupMembersInfoResp) ProtoMessage() {}
func (*GetGroupMembersInfoResp) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{19}
return fileDescriptor_group_95297d6a59bab850, []int{19}
}
func (m *GetGroupMembersInfoResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupMembersInfoResp.Unmarshal(m, b)
@ -1386,7 +1359,7 @@ func (m *KickGroupMemberReq) Reset() { *m = KickGroupMemberReq{} }
func (m *KickGroupMemberReq) String() string { return proto.CompactTextString(m) }
func (*KickGroupMemberReq) ProtoMessage() {}
func (*KickGroupMemberReq) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{20}
return fileDescriptor_group_95297d6a59bab850, []int{20}
}
func (m *KickGroupMemberReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_KickGroupMemberReq.Unmarshal(m, b)
@ -1453,7 +1426,7 @@ func (m *Id2Result) Reset() { *m = Id2Result{} }
func (m *Id2Result) String() string { return proto.CompactTextString(m) }
func (*Id2Result) ProtoMessage() {}
func (*Id2Result) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{21}
return fileDescriptor_group_95297d6a59bab850, []int{21}
}
func (m *Id2Result) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Id2Result.Unmarshal(m, b)
@ -1500,7 +1473,7 @@ func (m *KickGroupMemberResp) Reset() { *m = KickGroupMemberResp{} }
func (m *KickGroupMemberResp) String() string { return proto.CompactTextString(m) }
func (*KickGroupMemberResp) ProtoMessage() {}
func (*KickGroupMemberResp) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{22}
return fileDescriptor_group_95297d6a59bab850, []int{22}
}
func (m *KickGroupMemberResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_KickGroupMemberResp.Unmarshal(m, b)
@ -1554,7 +1527,7 @@ func (m *GetJoinedGroupListReq) Reset() { *m = GetJoinedGroupListReq{} }
func (m *GetJoinedGroupListReq) String() string { return proto.CompactTextString(m) }
func (*GetJoinedGroupListReq) ProtoMessage() {}
func (*GetJoinedGroupListReq) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{23}
return fileDescriptor_group_95297d6a59bab850, []int{23}
}
func (m *GetJoinedGroupListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetJoinedGroupListReq.Unmarshal(m, b)
@ -1608,7 +1581,7 @@ func (m *GetJoinedGroupListResp) Reset() { *m = GetJoinedGroupListResp{}
func (m *GetJoinedGroupListResp) String() string { return proto.CompactTextString(m) }
func (*GetJoinedGroupListResp) ProtoMessage() {}
func (*GetJoinedGroupListResp) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{24}
return fileDescriptor_group_95297d6a59bab850, []int{24}
}
func (m *GetJoinedGroupListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetJoinedGroupListResp.Unmarshal(m, b)
@ -1664,7 +1637,7 @@ func (m *InviteUserToGroupReq) Reset() { *m = InviteUserToGroupReq{} }
func (m *InviteUserToGroupReq) String() string { return proto.CompactTextString(m) }
func (*InviteUserToGroupReq) ProtoMessage() {}
func (*InviteUserToGroupReq) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{25}
return fileDescriptor_group_95297d6a59bab850, []int{25}
}
func (m *InviteUserToGroupReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_InviteUserToGroupReq.Unmarshal(m, b)
@ -1732,7 +1705,7 @@ func (m *InviteUserToGroupResp) Reset() { *m = InviteUserToGroupResp{} }
func (m *InviteUserToGroupResp) String() string { return proto.CompactTextString(m) }
func (*InviteUserToGroupResp) ProtoMessage() {}
func (*InviteUserToGroupResp) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{26}
return fileDescriptor_group_95297d6a59bab850, []int{26}
}
func (m *InviteUserToGroupResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_InviteUserToGroupResp.Unmarshal(m, b)
@ -1786,7 +1759,7 @@ func (m *GetGroupAllMemberReq) Reset() { *m = GetGroupAllMemberReq{} }
func (m *GetGroupAllMemberReq) String() string { return proto.CompactTextString(m) }
func (*GetGroupAllMemberReq) ProtoMessage() {}
func (*GetGroupAllMemberReq) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{27}
return fileDescriptor_group_95297d6a59bab850, []int{27}
}
func (m *GetGroupAllMemberReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupAllMemberReq.Unmarshal(m, b)
@ -1840,7 +1813,7 @@ func (m *GetGroupAllMemberResp) Reset() { *m = GetGroupAllMemberResp{} }
func (m *GetGroupAllMemberResp) String() string { return proto.CompactTextString(m) }
func (*GetGroupAllMemberResp) ProtoMessage() {}
func (*GetGroupAllMemberResp) Descriptor() ([]byte, []int) {
return fileDescriptor_group_2ff972788727c811, []int{28}
return fileDescriptor_group_95297d6a59bab850, []int{28}
}
func (m *GetGroupAllMemberResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupAllMemberResp.Unmarshal(m, b)
@ -2416,101 +2389,100 @@ var _Group_serviceDesc = grpc.ServiceDesc{
Metadata: "group/group.proto",
}
func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_2ff972788727c811) }
var fileDescriptor_group_2ff972788727c811 = []byte{
// 1480 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcd, 0x6f, 0xdc, 0x44,
0x14, 0x97, 0xf7, 0x23, 0xcd, 0xbe, 0x7c, 0x6c, 0x32, 0x6d, 0x52, 0xe3, 0x86, 0x2a, 0xb5, 0x50,
0x15, 0x55, 0x28, 0x91, 0x52, 0x84, 0x84, 0x5a, 0xa1, 0xa6, 0xf9, 0x68, 0x17, 0x48, 0xa2, 0x3a,
0xdb, 0x0b, 0x97, 0xe0, 0xae, 0xa7, 0x2b, 0xb3, 0x5e, 0xdb, 0xeb, 0xf1, 0x92, 0x96, 0x0b, 0x20,
0x24, 0x38, 0x20, 0x44, 0xaf, 0x1c, 0x39, 0xc0, 0x11, 0x71, 0xe0, 0xce, 0x81, 0x7f, 0x0c, 0xcd,
0x87, 0xbd, 0xe3, 0xf1, 0xc7, 0xae, 0x12, 0x89, 0x5e, 0x56, 0x3b, 0xef, 0xbd, 0x99, 0xf7, 0x31,
0xef, 0xfd, 0xde, 0x1b, 0xc3, 0x6a, 0x3f, 0x0a, 0xc6, 0xe1, 0x0e, 0xfb, 0xdd, 0x0e, 0xa3, 0x20,
0x0e, 0x50, 0x93, 0x2d, 0x8c, 0x3b, 0xa7, 0x21, 0xf6, 0xcf, 0x3b, 0xc7, 0x3b, 0xe1, 0xa0, 0xbf,
0xc3, 0x38, 0x3b, 0xc4, 0x19, 0x9c, 0x5f, 0x90, 0x9d, 0x0b, 0xc2, 0x25, 0xcd, 0x8f, 0x01, 0xf6,
0x83, 0xe1, 0x30, 0xf0, 0x2d, 0x4c, 0x42, 0xa4, 0xc3, 0xb5, 0xc3, 0x28, 0xda, 0x0f, 0x1c, 0xac,
0x6b, 0x9b, 0xda, 0x56, 0xd3, 0x4a, 0x96, 0x68, 0x1d, 0xe6, 0x0e, 0xa3, 0xe8, 0x98, 0xf4, 0xf5,
0xda, 0xa6, 0xb6, 0xd5, 0xb2, 0xc4, 0xca, 0x7c, 0x04, 0xe8, 0x09, 0xd5, 0xb5, 0xe7, 0x38, 0xc7,
0x78, 0xf8, 0x02, 0x47, 0x1d, 0xff, 0x65, 0x40, 0xa5, 0x9f, 0x13, 0x1c, 0x75, 0x0e, 0xd8, 0x31,
0x2d, 0x4b, 0xac, 0x10, 0x82, 0x86, 0x15, 0x78, 0x98, 0x9d, 0xd1, 0xb4, 0xd8, 0x7f, 0xf3, 0xdf,
0x1a, 0x2c, 0xef, 0x47, 0xd8, 0x8e, 0x31, 0x3b, 0xc8, 0xc2, 0x23, 0xb4, 0x07, 0xcb, 0x1d, 0xdf,
0x8d, 0xf9, 0x81, 0x9f, 0xb9, 0x24, 0xd6, 0xb5, 0xcd, 0xfa, 0xd6, 0xc2, 0xee, 0x3b, 0xdb, 0xdc,
0xc9, 0xbc, 0x46, 0x4b, 0xd9, 0x80, 0x36, 0xa0, 0xc5, 0xa4, 0x4e, 0xec, 0x21, 0x16, 0x26, 0x4f,
0x08, 0xc8, 0x84, 0xc5, 0x8e, 0x1f, 0x47, 0x81, 0x33, 0xee, 0xc5, 0x6e, 0xe0, 0xeb, 0x75, 0x26,
0x90, 0xa1, 0x51, 0x99, 0x93, 0x20, 0x76, 0x5f, 0xba, 0x3d, 0x9b, 0xc9, 0x34, 0xb8, 0x8c, 0x4c,
0xa3, 0xf1, 0x3a, 0xb2, 0x7b, 0xf8, 0x79, 0xe4, 0xe9, 0x4d, 0xc6, 0x4e, 0x96, 0x68, 0x05, 0xea,
0x87, 0xaf, 0x62, 0x7d, 0x8e, 0x51, 0xe9, 0x5f, 0xb4, 0x09, 0x0b, 0xa7, 0x21, 0x8e, 0xd8, 0xc6,
0xce, 0x81, 0x7e, 0x8d, 0x71, 0x64, 0x12, 0x32, 0x60, 0xfe, 0x34, 0x14, 0x71, 0x9b, 0x67, 0xec,
0x74, 0x8d, 0x6e, 0x03, 0x1c, 0x45, 0xc1, 0x50, 0x70, 0x5b, 0x8c, 0x2b, 0x51, 0xcc, 0xd7, 0xd0,
0xce, 0x04, 0xf1, 0x32, 0x97, 0x89, 0x3e, 0x10, 0x41, 0xa3, 0x11, 0x65, 0x31, 0x59, 0xd8, 0x5d,
0xdf, 0x0e, 0x68, 0x0e, 0xb9, 0xc3, 0x73, 0xe2, 0x0c, 0xb6, 0x53, 0xae, 0x35, 0x11, 0x34, 0x23,
0x58, 0x79, 0x82, 0x63, 0xb6, 0x26, 0x8c, 0x87, 0x47, 0xd4, 0x59, 0x2e, 0x70, 0x90, 0x5e, 0x5f,
0xcb, 0x92, 0x49, 0x6a, 0x38, 0x6a, 0xd5, 0xe1, 0xa8, 0x67, 0xc3, 0x61, 0x7e, 0xaf, 0xc1, 0xaa,
0xa2, 0xf4, 0x52, 0x1e, 0x3f, 0x84, 0xa5, 0xd4, 0x11, 0x66, 0x69, 0x9d, 0x25, 0x5a, 0x99, 0xd7,
0x59, 0x61, 0xf3, 0x77, 0x0d, 0xda, 0x67, 0xc2, 0x8a, 0xc4, 0xf3, 0x4c, 0x0c, 0xb5, 0x19, 0x63,
0x98, 0xf1, 0xb5, 0x56, 0x79, 0xf5, 0x75, 0xf5, 0xea, 0xd5, 0x48, 0x36, 0x72, 0x91, 0x34, 0xbf,
0x06, 0x23, 0x09, 0xd6, 0x5e, 0x18, 0x7a, 0x22, 0x7b, 0xa9, 0x0b, 0xd4, 0x62, 0x59, 0xb7, 0xa6,
0xe8, 0x9e, 0x7e, 0x4b, 0x53, 0xac, 0x33, 0x7f, 0x6d, 0xc0, 0x9d, 0x12, 0xe5, 0xe7, 0x07, 0x76,
0x6c, 0x9f, 0x53, 0x39, 0xb4, 0x0c, 0xb5, 0x54, 0x7b, 0xad, 0x73, 0x40, 0x6f, 0x52, 0x24, 0x8b,
0xd0, 0x99, 0x2c, 0xa7, 0x46, 0xc3, 0x80, 0xf9, 0x6e, 0x20, 0xb8, 0x3c, 0x14, 0xe9, 0x9a, 0xc2,
0xcf, 0x91, 0x67, 0xf7, 0x59, 0xad, 0x36, 0x2d, 0xf6, 0x9f, 0x9e, 0x67, 0xe1, 0xd1, 0x18, 0x93,
0x98, 0x66, 0x07, 0xaf, 0x57, 0x89, 0x42, 0xf9, 0x4f, 0x6d, 0xdf, 0xf1, 0xb0, 0x43, 0xf9, 0xbc,
0x6a, 0x25, 0x0a, 0xb5, 0x74, 0xcf, 0x71, 0xba, 0xee, 0x10, 0xb3, 0x9a, 0xad, 0x5b, 0xc9, 0x12,
0xdd, 0x83, 0x95, 0xc4, 0xae, 0x13, 0xb7, 0x37, 0xf0, 0x29, 0x12, 0xf1, 0xc2, 0xcd, 0xd1, 0xd1,
0x5d, 0x58, 0xe6, 0x56, 0xa6, 0x92, 0xc0, 0x24, 0x15, 0x2a, 0xda, 0x82, 0x76, 0xb2, 0x37, 0x01,
0x9e, 0x05, 0x26, 0xa8, 0x92, 0xd1, 0x7b, 0xb0, 0xc4, 0xf7, 0x26, 0x72, 0x8b, 0x4c, 0x2e, 0x4b,
0xa4, 0xf7, 0x2b, 0x7c, 0xa1, 0x54, 0x7d, 0x89, 0xdf, 0xaf, 0x44, 0xa2, 0x31, 0xeb, 0xbe, 0x0e,
0xb1, 0xbe, 0xcc, 0x63, 0x46, 0xff, 0x53, 0x68, 0xe4, 0x22, 0x67, 0xb1, 0x1d, 0x8f, 0x89, 0xde,
0x66, 0xbc, 0x0c, 0x6d, 0x22, 0x63, 0x61, 0x32, 0xf6, 0x62, 0x7d, 0x45, 0x96, 0xe1, 0x34, 0x73,
0x04, 0xb7, 0x4a, 0x52, 0x83, 0x66, 0x06, 0xba, 0x01, 0xcd, 0xfd, 0x60, 0xec, 0xc7, 0xa2, 0x98,
0xf9, 0x02, 0x3d, 0x84, 0x06, 0xb3, 0xb5, 0xc6, 0x2a, 0x75, 0x2b, 0x69, 0x09, 0xd3, 0x52, 0xcc,
0x62, 0xbb, 0xcc, 0x1f, 0xb5, 0x52, 0x9d, 0x97, 0x84, 0x90, 0x0f, 0xa1, 0x41, 0x95, 0x08, 0xbc,
0x34, 0xab, 0xed, 0xa1, 0x92, 0x16, 0x93, 0x37, 0xff, 0xd1, 0x60, 0xad, 0x1b, 0xd9, 0x3e, 0x79,
0x89, 0x23, 0x26, 0x7a, 0x7a, 0xe1, 0xe3, 0x88, 0x16, 0xa4, 0x94, 0xfc, 0x5a, 0x36, 0xf9, 0xef,
0xc2, 0xf2, 0xa9, 0xe7, 0x30, 0xc1, 0x0c, 0x58, 0x28, 0x54, 0x2a, 0x77, 0x82, 0x2f, 0x64, 0x39,
0x5e, 0x28, 0x0a, 0x75, 0x3a, 0x74, 0x64, 0xc0, 0xa1, 0xa9, 0x80, 0xf0, 0x1f, 0x1a, 0x2c, 0x7e,
0x12, 0xb8, 0x7e, 0xda, 0xb7, 0xcb, 0x0d, 0xe7, 0x55, 0x76, 0x8c, 0x09, 0xb1, 0xfb, 0x49, 0x3f,
0x96, 0x28, 0x57, 0xc7, 0xb8, 0x4a, 0x43, 0x7f, 0xa9, 0xc1, 0x2d, 0xf5, 0x36, 0xe8, 0x6d, 0x07,
0x3e, 0xc1, 0xa2, 0x5b, 0xc9, 0xa7, 0x6b, 0xd5, 0xa7, 0xab, 0xf8, 0x2c, 0x79, 0x5d, 0xaf, 0xc2,
0xaa, 0x46, 0x25, 0x56, 0x5d, 0x53, 0xb0, 0x4a, 0xc2, 0x15, 0xc8, 0xe2, 0x4a, 0x16, 0x91, 0x16,
0x73, 0x88, 0xa4, 0x56, 0x5e, 0xbb, 0xa0, 0xf2, 0xfe, 0xd4, 0x40, 0x3f, 0xc3, 0x31, 0xcb, 0x05,
0x3e, 0x16, 0xb9, 0xbd, 0x01, 0x1d, 0x8d, 0xaa, 0xaf, 0xd1, 0x80, 0xf9, 0x14, 0xa0, 0x44, 0x18,
0x52, 0x68, 0x52, 0x82, 0x58, 0x9f, 0xd6, 0x2a, 0x0a, 0xc3, 0x51, 0x7a, 0x85, 0x3f, 0x68, 0xb0,
0xf8, 0x6c, 0xec, 0xc6, 0x33, 0xe4, 0xda, 0x95, 0x7b, 0x56, 0xc6, 0x90, 0x86, 0x62, 0xc8, 0x6f,
0x1a, 0xac, 0x25, 0xc5, 0x3d, 0x99, 0x37, 0xa7, 0x86, 0xad, 0x34, 0x7b, 0xa6, 0x87, 0x6d, 0x1d,
0xe6, 0x8e, 0x5c, 0x2f, 0xc6, 0x11, 0xb3, 0xa5, 0x69, 0x89, 0x15, 0xd5, 0x77, 0x82, 0x5f, 0xc5,
0x67, 0x78, 0x24, 0x1a, 0x5a, 0xb2, 0xa4, 0x85, 0xb9, 0x5e, 0x64, 0xe3, 0xa5, 0xf0, 0xed, 0x11,
0xc0, 0x70, 0x32, 0x88, 0xf3, 0xf9, 0x68, 0x33, 0x3f, 0xd1, 0x70, 0x3d, 0x47, 0x63, 0xcf, 0x63,
0xb3, 0x8d, 0xb4, 0x87, 0xea, 0xf4, 0x85, 0xa1, 0xdc, 0x83, 0x64, 0x69, 0xbe, 0xc9, 0x19, 0x9a,
0x4e, 0x90, 0x95, 0x58, 0x22, 0x19, 0x54, 0x63, 0xa3, 0xa5, 0xac, 0xae, 0x62, 0x6e, 0x9c, 0x61,
0x56, 0xfa, 0x59, 0x83, 0x9b, 0x85, 0x26, 0xbd, 0x9d, 0xe0, 0x99, 0x7f, 0x69, 0x80, 0x3e, 0x75,
0x7b, 0x03, 0x49, 0xae, 0x3a, 0x3c, 0xf7, 0x60, 0x85, 0xca, 0xf3, 0xf6, 0x2d, 0xe6, 0x6f, 0x1e,
0xa4, 0x1c, 0x9d, 0x9a, 0x6d, 0x61, 0x9b, 0xa4, 0x2f, 0x20, 0xb1, 0x52, 0xc3, 0xd4, 0xac, 0x06,
0xc4, 0x39, 0xa5, 0x44, 0x1e, 0x40, 0xab, 0xe3, 0xec, 0x72, 0xa4, 0x29, 0x7d, 0x0a, 0x32, 0xd5,
0x0c, 0x9f, 0xf8, 0x63, 0x50, 0xac, 0xcc, 0x6f, 0xe0, 0x7a, 0xce, 0xdd, 0x4b, 0xf6, 0xe5, 0xa5,
0xd4, 0x0a, 0x29, 0xfa, 0x2b, 0xa2, 0x41, 0xa7, 0x3c, 0x2b, 0x2b, 0x66, 0x8e, 0x59, 0x7d, 0xd3,
0xbe, 0x86, 0x1d, 0x66, 0x45, 0x52, 0xdf, 0x59, 0xd4, 0xd0, 0x8a, 0x7a, 0x54, 0x90, 0xc7, 0x9d,
0x60, 0xc6, 0x17, 0xcd, 0xb7, 0xbc, 0x14, 0x72, 0x7a, 0xaf, 0xf4, 0x90, 0x9b, 0xe1, 0x49, 0x33,
0x11, 0x34, 0xff, 0xd6, 0xe0, 0x46, 0xc7, 0xff, 0xca, 0x8d, 0x31, 0xb5, 0xa9, 0x1b, 0xa4, 0x58,
0x3b, 0x1d, 0x51, 0xcb, 0x7b, 0xe0, 0x24, 0xc5, 0x1a, 0x99, 0x14, 0x7b, 0x1f, 0x56, 0xb9, 0x2e,
0x39, 0x4f, 0x9b, 0x2c, 0x4f, 0xf3, 0x8c, 0xca, 0x74, 0xfb, 0x4e, 0x83, 0xb5, 0x02, 0xb3, 0xff,
0xd7, 0xa4, 0xf1, 0xe1, 0x46, 0x3a, 0xf1, 0x79, 0xde, 0x2c, 0x65, 0x7a, 0xa5, 0x9e, 0x60, 0xfe,
0x24, 0x75, 0x21, 0x49, 0xe1, 0xdb, 0xc1, 0xa8, 0xdd, 0x37, 0xf3, 0xc0, 0xbf, 0x38, 0xa1, 0x87,
0xb0, 0xd0, 0x9b, 0x7c, 0x86, 0x40, 0x6b, 0x22, 0x6e, 0xd9, 0xef, 0x3b, 0xc6, 0x7a, 0x11, 0x99,
0x84, 0xe8, 0x3e, 0xb4, 0xbe, 0x4c, 0xe6, 0x49, 0x74, 0x5d, 0x08, 0xc9, 0x13, 0xa6, 0xb1, 0x9a,
0xec, 0x9c, 0x7c, 0xb3, 0xba, 0x0f, 0xad, 0x51, 0x32, 0x18, 0xa4, 0x9b, 0xe4, 0x51, 0xa1, 0x68,
0xd3, 0x63, 0x58, 0xea, 0xcb, 0x9f, 0x0f, 0xd0, 0x4d, 0x65, 0x6e, 0x4f, 0xfa, 0x90, 0xa1, 0x17,
0x33, 0x48, 0x88, 0x3e, 0x82, 0x45, 0x22, 0x3d, 0xfe, 0x51, 0xe2, 0x95, 0xf2, 0x45, 0xa0, 0x48,
0xfd, 0x17, 0x70, 0xb3, 0x5f, 0xfc, 0x40, 0x40, 0x77, 0xaa, 0x1f, 0x10, 0xf4, 0x40, 0x73, 0x9a,
0x08, 0x09, 0xd1, 0x21, 0xa0, 0x38, 0xf7, 0xb8, 0x40, 0x1b, 0x62, 0x67, 0xe1, 0xbb, 0xa3, 0xc8,
0xd0, 0x67, 0xa0, 0xf7, 0x4b, 0x06, 0x67, 0x64, 0x66, 0xbe, 0xc6, 0x15, 0x4e, 0xd6, 0xc5, 0x47,
0xa2, 0x7e, 0x6e, 0x36, 0x49, 0x2d, 0x2b, 0x1c, 0xad, 0x8c, 0x77, 0x2b, 0xb8, 0x24, 0x44, 0x5d,
0xb8, 0xde, 0xcf, 0xb7, 0x6c, 0x54, 0xbc, 0x2b, 0xbd, 0xd9, 0xdb, 0x55, 0x6c, 0x12, 0xa2, 0xa7,
0xd0, 0x1e, 0x64, 0x3b, 0x11, 0x4a, 0x3e, 0x40, 0xe6, 0x1b, 0xb2, 0x61, 0x94, 0xb1, 0x52, 0x97,
0x15, 0x68, 0x97, 0x5d, 0xce, 0x77, 0x1b, 0xd9, 0xe5, 0xa2, 0x9e, 0x70, 0x02, 0xab, 0xae, 0x8a,
0x79, 0xe8, 0x56, 0x02, 0x53, 0x05, 0x20, 0x6e, 0x6c, 0x94, 0x33, 0xf9, 0x79, 0x7d, 0x15, 0x4f,
0xd2, 0xf3, 0x8a, 0xa0, 0xcd, 0xd8, 0x28, 0x67, 0x92, 0xf0, 0x71, 0xfb, 0xf3, 0xa5, 0x6d, 0xfe,
0x49, 0xfa, 0x01, 0xfb, 0x7d, 0x31, 0xc7, 0xbe, 0x37, 0xdf, 0xff, 0x2f, 0x00, 0x00, 0xff, 0xff,
0x77, 0xc5, 0xd1, 0xfe, 0xae, 0x16, 0x00, 0x00,
func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_95297d6a59bab850) }
var fileDescriptor_group_95297d6a59bab850 = []byte{
// 1464 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcd, 0x6f, 0x1b, 0x45,
0x14, 0xd7, 0xfa, 0x23, 0x8d, 0x5f, 0xbe, 0x9c, 0x69, 0x93, 0x2e, 0xdb, 0x50, 0xb9, 0x2b, 0x54,
0x45, 0x15, 0x4a, 0xa4, 0x14, 0x21, 0xa1, 0x46, 0xa8, 0x69, 0x3e, 0x5a, 0x03, 0x71, 0xd4, 0x8d,
0x7b, 0xe1, 0x12, 0xb6, 0xde, 0x89, 0xb5, 0x78, 0xbd, 0xbb, 0xde, 0x59, 0x93, 0x96, 0x0b, 0x20,
0x04, 0x1c, 0x10, 0xa2, 0x57, 0x8e, 0x5c, 0x38, 0x22, 0x0e, 0xdc, 0x39, 0xf0, 0x8f, 0xa1, 0xf9,
0xd8, 0xf5, 0xec, 0xa7, 0x2d, 0x47, 0xa2, 0x17, 0xcb, 0xf3, 0xde, 0x9b, 0x79, 0x1f, 0xf3, 0xde,
0xef, 0xbd, 0x59, 0x58, 0xef, 0x07, 0xde, 0xd8, 0xdf, 0x65, 0xbf, 0x3b, 0x7e, 0xe0, 0x85, 0x1e,
0xaa, 0xb3, 0x85, 0x76, 0xef, 0xcc, 0xc7, 0xee, 0x45, 0xfb, 0x74, 0xd7, 0x1f, 0xf4, 0x77, 0x19,
0x67, 0x97, 0x58, 0x83, 0x8b, 0x2b, 0xb2, 0x7b, 0x45, 0xb8, 0xa4, 0xfe, 0x31, 0xc0, 0xa1, 0x37,
0x1c, 0x7a, 0xae, 0x81, 0x89, 0x8f, 0x54, 0xb8, 0x71, 0x1c, 0x04, 0x87, 0x9e, 0x85, 0x55, 0xa5,
0xa5, 0x6c, 0xd7, 0x8d, 0x68, 0x89, 0x36, 0x61, 0xe1, 0x38, 0x08, 0x4e, 0x49, 0x5f, 0xad, 0xb4,
0x94, 0xed, 0x86, 0x21, 0x56, 0xfa, 0x63, 0x40, 0x4f, 0xa9, 0xae, 0x03, 0xcb, 0x3a, 0xc5, 0xc3,
0x97, 0x38, 0x68, 0xbb, 0x97, 0x1e, 0x95, 0x7e, 0x41, 0x70, 0xd0, 0x3e, 0x62, 0xc7, 0x34, 0x0c,
0xb1, 0x42, 0x08, 0x6a, 0x86, 0xe7, 0x60, 0x76, 0x46, 0xdd, 0x60, 0xff, 0xf5, 0x7f, 0x2b, 0xb0,
0x7a, 0x18, 0x60, 0x33, 0xc4, 0xec, 0x20, 0x03, 0x8f, 0xd0, 0x01, 0xac, 0xb6, 0x5d, 0x3b, 0xe4,
0x07, 0x7e, 0x66, 0x93, 0x50, 0x55, 0x5a, 0xd5, 0xed, 0xa5, 0xbd, 0x77, 0x76, 0xb8, 0x93, 0x59,
0x8d, 0x46, 0x6a, 0x03, 0xda, 0x82, 0x06, 0x93, 0xea, 0x98, 0x43, 0x2c, 0x4c, 0x9e, 0x10, 0x90,
0x0e, 0xcb, 0x6d, 0x37, 0x0c, 0x3c, 0x6b, 0xdc, 0x0b, 0x6d, 0xcf, 0x55, 0xab, 0x4c, 0x20, 0x41,
0xa3, 0x32, 0x1d, 0x2f, 0xb4, 0x2f, 0xed, 0x9e, 0xc9, 0x64, 0x6a, 0x5c, 0x46, 0xa6, 0xd1, 0x78,
0x9d, 0x98, 0x3d, 0xfc, 0x22, 0x70, 0xd4, 0x3a, 0x63, 0x47, 0x4b, 0xd4, 0x84, 0xea, 0xf1, 0xab,
0x50, 0x5d, 0x60, 0x54, 0xfa, 0x17, 0xb5, 0x60, 0xe9, 0xcc, 0xc7, 0x01, 0xdb, 0xd8, 0x3e, 0x52,
0x6f, 0x30, 0x8e, 0x4c, 0x42, 0x1a, 0x2c, 0x9e, 0xf9, 0x22, 0x6e, 0x8b, 0x8c, 0x1d, 0xaf, 0xd1,
0x5d, 0x80, 0x93, 0xc0, 0x1b, 0x0a, 0x6e, 0x83, 0x71, 0x25, 0x8a, 0xfe, 0x1a, 0xd6, 0x12, 0x41,
0x9c, 0xe7, 0x32, 0xd1, 0x07, 0x22, 0x68, 0x34, 0xa2, 0x2c, 0x26, 0x4b, 0x7b, 0x9b, 0x3b, 0x1e,
0xcd, 0x21, 0x7b, 0x78, 0x41, 0xac, 0xc1, 0x4e, 0xcc, 0x35, 0x26, 0x82, 0x7a, 0x00, 0xcd, 0xa7,
0x38, 0x64, 0x6b, 0xc2, 0x78, 0x78, 0x44, 0x9d, 0xe5, 0x02, 0x47, 0xf1, 0xf5, 0x35, 0x0c, 0x99,
0x94, 0x0e, 0x47, 0xa5, 0x3c, 0x1c, 0xd5, 0x64, 0x38, 0xf4, 0xef, 0x15, 0x58, 0x4f, 0x29, 0x9d,
0xcb, 0xe3, 0x7d, 0x58, 0x89, 0x1d, 0x61, 0x96, 0x56, 0x59, 0xa2, 0x15, 0x79, 0x9d, 0x14, 0xd6,
0x7f, 0x50, 0x60, 0xed, 0x5c, 0x58, 0x11, 0x79, 0x9e, 0x88, 0xa1, 0x32, 0x63, 0x0c, 0x13, 0xbe,
0x56, 0x52, 0x57, 0x9f, 0x8a, 0x54, 0x35, 0x13, 0x29, 0xfd, 0x6b, 0xd0, 0xa2, 0x60, 0x1c, 0xf8,
0xbe, 0x23, 0xb2, 0x93, 0x9a, 0x48, 0x2d, 0x92, 0xcf, 0x56, 0xca, 0xcf, 0xce, 0xb9, 0x85, 0x64,
0xe2, 0x55, 0x33, 0x89, 0xf7, 0x5b, 0x0d, 0xee, 0x15, 0x28, 0xbf, 0x38, 0x32, 0x43, 0xf3, 0x82,
0xca, 0xa1, 0x55, 0xa8, 0xc4, 0xda, 0x2b, 0xed, 0x23, 0x7a, 0x53, 0x22, 0x19, 0x84, 0xce, 0x68,
0x39, 0x4d, 0x1f, 0xf5, 0xa6, 0xeb, 0x09, 0x2e, 0x2f, 0xc9, 0x78, 0x4d, 0xe1, 0xe5, 0xc4, 0x31,
0xfb, 0xac, 0x16, 0xeb, 0x06, 0xfb, 0x4f, 0xcf, 0x33, 0xf0, 0x68, 0x8c, 0x49, 0x48, 0x6f, 0x9f,
0xd7, 0xa3, 0x44, 0xa1, 0xfc, 0x67, 0xa6, 0x6b, 0x39, 0xd8, 0xa2, 0x7c, 0x5e, 0x95, 0x12, 0x85,
0x5a, 0x7a, 0x60, 0x59, 0x5d, 0x7b, 0x88, 0x59, 0x4d, 0x56, 0x8d, 0x68, 0x89, 0x1e, 0x40, 0x33,
0xb2, 0xab, 0x63, 0xf7, 0x06, 0x2e, 0x45, 0x1a, 0x5e, 0x98, 0x19, 0x3a, 0xba, 0x0f, 0xab, 0xdc,
0xca, 0x58, 0x12, 0x98, 0x64, 0x8a, 0x8a, 0xb6, 0x61, 0x2d, 0xda, 0x1b, 0x01, 0xcb, 0x12, 0x13,
0x4c, 0x93, 0xd1, 0x7b, 0xb0, 0xc2, 0xf7, 0x46, 0x72, 0xcb, 0x4c, 0x2e, 0x49, 0xa4, 0xf7, 0x2b,
0x7c, 0xa1, 0x54, 0x75, 0x85, 0xdf, 0xaf, 0x44, 0xa2, 0x31, 0xeb, 0xbe, 0xf6, 0xb1, 0xba, 0xca,
0x63, 0x46, 0xff, 0x53, 0xe8, 0xe3, 0x22, 0xe7, 0xa1, 0x19, 0x8e, 0x89, 0xba, 0xc6, 0x78, 0x09,
0xda, 0x44, 0xc6, 0xc0, 0x64, 0xec, 0x84, 0x6a, 0x53, 0x96, 0xe1, 0x34, 0x7d, 0x04, 0x77, 0x0a,
0x52, 0x83, 0x66, 0x06, 0xba, 0x05, 0xf5, 0x43, 0x6f, 0xec, 0x86, 0xa2, 0x58, 0xf9, 0x02, 0xed,
0x43, 0x8d, 0xd9, 0x5a, 0x61, 0x95, 0xb8, 0x1d, 0x41, 0xfe, 0xb4, 0x14, 0x33, 0xd8, 0x2e, 0xfd,
0x27, 0xa5, 0x50, 0xe7, 0x9c, 0x10, 0xf1, 0x21, 0xd4, 0xa8, 0x12, 0x81, 0x87, 0x7a, 0xb9, 0x3d,
0x54, 0xd2, 0x60, 0xf2, 0xfa, 0x3f, 0x0a, 0x6c, 0x74, 0x03, 0xd3, 0x25, 0x97, 0x38, 0x60, 0xa2,
0x67, 0x57, 0x2e, 0x0e, 0x68, 0x41, 0x4a, 0xc9, 0xaf, 0x24, 0x93, 0xff, 0x3e, 0xac, 0x9e, 0x39,
0x16, 0x13, 0x4c, 0x80, 0x41, 0x8a, 0x4a, 0xe5, 0x3a, 0xf8, 0x4a, 0x96, 0xe3, 0x85, 0x92, 0xa2,
0xa6, 0xcb, 0xbb, 0x56, 0x0e, 0xb2, 0xf5, 0x14, 0xc8, 0xfe, 0xa8, 0xc0, 0xf2, 0x27, 0x9e, 0xed,
0xc6, 0x7d, 0xb9, 0xd8, 0x70, 0x5e, 0x65, 0xa7, 0x98, 0x10, 0xb3, 0x1f, 0xf5, 0x5b, 0x89, 0x52,
0x86, 0xe5, 0xd3, 0x8d, 0xd4, 0x7f, 0xad, 0xc0, 0x9d, 0x74, 0xb4, 0xe9, 0x6d, 0x7a, 0x2e, 0xc1,
0xa2, 0xdb, 0xc8, 0x27, 0x28, 0xe5, 0x6e, 0xa6, 0xf1, 0x55, 0xf2, 0xaa, 0x5a, 0x86, 0x45, 0xb5,
0x52, 0x2c, 0xaa, 0xa7, 0xb0, 0x48, 0xc2, 0x8d, 0x85, 0x24, 0x6e, 0x4c, 0x43, 0x9c, 0x74, 0x65,
0x2d, 0xe6, 0x54, 0xd6, 0x9f, 0x0a, 0xa8, 0xe7, 0x38, 0x64, 0x77, 0xcd, 0xc7, 0x1a, 0xbb, 0x37,
0xa0, 0xa3, 0x4d, 0xf9, 0x35, 0x69, 0xb0, 0x18, 0x03, 0x90, 0x08, 0x43, 0x0c, 0x3d, 0x53, 0xdb,
0xcc, 0x2c, 0xe1, 0x28, 0xcc, 0xa5, 0x4b, 0x58, 0x7e, 0x3e, 0xb6, 0xc3, 0x19, 0x52, 0xe9, 0x7a,
0x83, 0xc1, 0xef, 0x0a, 0x6c, 0x44, 0xb5, 0x39, 0x19, 0x07, 0xa7, 0x46, 0x65, 0xfe, 0xe6, 0x4b,
0x71, 0xe3, 0xc4, 0x76, 0x42, 0x1c, 0xb0, 0x88, 0xd4, 0x0d, 0xb1, 0xa2, 0xfa, 0x3a, 0xf8, 0x55,
0x78, 0x8e, 0x47, 0xa2, 0x1f, 0x45, 0x4b, 0xfd, 0x0f, 0x05, 0x36, 0xf3, 0x6c, 0x9c, 0x0b, 0x9e,
0x1e, 0x03, 0x0c, 0x27, 0x73, 0x32, 0x1f, 0x5f, 0x5a, 0xd9, 0x81, 0x83, 0xeb, 0x39, 0x19, 0x3b,
0x0e, 0x1b, 0x3d, 0xa4, 0x3d, 0x54, 0xa7, 0x2b, 0x0c, 0xe5, 0x1e, 0x44, 0x4b, 0xfd, 0x4d, 0xc6,
0xd0, 0x78, 0xc0, 0x2b, 0x85, 0x02, 0xc9, 0xa0, 0x0a, 0x9b, 0xfc, 0x64, 0x75, 0xd7, 0x83, 0x82,
0x5f, 0x14, 0xb8, 0x9d, 0x6b, 0xd2, 0xdb, 0x09, 0x9e, 0xfe, 0x97, 0x02, 0xe8, 0x53, 0xbb, 0x37,
0x90, 0xe4, 0xca, 0xc3, 0xf3, 0x00, 0x9a, 0x54, 0x9e, 0x77, 0x5f, 0x31, 0x1e, 0xf3, 0x20, 0x65,
0xe8, 0xd4, 0x6c, 0x03, 0x9b, 0x24, 0x7e, 0xa0, 0x88, 0x55, 0x3a, 0x4c, 0xf5, 0xf2, 0x12, 0x59,
0x48, 0x95, 0xc8, 0x23, 0x68, 0xb4, 0xad, 0x3d, 0x0e, 0x24, 0x85, 0x2f, 0x35, 0xa6, 0x9a, 0xc1,
0x0f, 0x7f, 0xab, 0x89, 0x95, 0xfe, 0x0d, 0xdc, 0xcc, 0xb8, 0x3b, 0x67, 0x5b, 0x5d, 0x89, 0xad,
0x90, 0xa2, 0xdf, 0x14, 0xfd, 0x35, 0xe6, 0x19, 0x49, 0x31, 0x7d, 0xcc, 0xea, 0x9b, 0xb6, 0x25,
0x6c, 0x31, 0x2b, 0xa2, 0xfa, 0x4e, 0xa2, 0x93, 0x92, 0x41, 0xa7, 0x16, 0x2c, 0x79, 0x59, 0x5c,
0xf1, 0x66, 0xc4, 0x95, 0x6f, 0x79, 0x29, 0x64, 0xf4, 0x5e, 0xeb, 0x9d, 0x35, 0xc3, 0x8b, 0x63,
0x22, 0xa8, 0xff, 0xad, 0xc0, 0xad, 0xb6, 0xfb, 0x95, 0x1d, 0x62, 0x6a, 0x53, 0xd7, 0x8b, 0xb1,
0x74, 0x3a, 0x62, 0x16, 0xb7, 0xb8, 0x49, 0x8a, 0xd5, 0x12, 0x29, 0xf6, 0x3e, 0xac, 0x73, 0x5d,
0x72, 0x9e, 0xd6, 0x59, 0x9e, 0x66, 0x19, 0xa5, 0xe9, 0xf6, 0x9d, 0x02, 0x1b, 0x39, 0x66, 0xff,
0xaf, 0x49, 0xe3, 0xc2, 0xad, 0x78, 0x60, 0x73, 0x9c, 0x59, 0xca, 0xf4, 0x7a, 0x0f, 0xb2, 0x9f,
0xa5, 0x2e, 0x24, 0x29, 0x7c, 0x3b, 0x18, 0xb5, 0xf7, 0x66, 0x11, 0xf8, 0x07, 0x21, 0xb4, 0x0f,
0x4b, 0xbd, 0xc9, 0x57, 0x02, 0xb4, 0x21, 0xe2, 0x96, 0xfc, 0xfc, 0xa2, 0x6d, 0xe6, 0x91, 0x89,
0x8f, 0x1e, 0x42, 0xe3, 0xcb, 0x68, 0x1c, 0x44, 0x37, 0x85, 0x90, 0x3c, 0x20, 0x6a, 0xeb, 0xd1,
0xce, 0xc9, 0x27, 0xa5, 0x87, 0xd0, 0x18, 0x45, 0x8d, 0x3f, 0xde, 0x24, 0x8f, 0x02, 0x79, 0x9b,
0x9e, 0xc0, 0x4a, 0x5f, 0x7e, 0xdd, 0xa3, 0xdb, 0xa9, 0xb1, 0x3b, 0xea, 0x43, 0x9a, 0x9a, 0xcf,
0x20, 0x3e, 0xfa, 0x08, 0x96, 0x89, 0xf4, 0x36, 0x47, 0x91, 0x57, 0xa9, 0x07, 0x7b, 0x9e, 0xfa,
0x2f, 0xe0, 0x76, 0x3f, 0x7f, 0xbe, 0x47, 0xf7, 0xca, 0xe7, 0x7f, 0x7a, 0xa0, 0x3e, 0x4d, 0x84,
0xf8, 0xe8, 0x18, 0x50, 0x98, 0x79, 0x1b, 0xa0, 0x2d, 0xb1, 0x33, 0xf7, 0xd9, 0x90, 0x67, 0xe8,
0x73, 0x50, 0xfb, 0x05, 0x73, 0x31, 0xd2, 0x13, 0x1f, 0xcb, 0x72, 0x07, 0xe7, 0xfc, 0x23, 0x51,
0x3f, 0x33, 0x9b, 0xc4, 0x96, 0xe5, 0x8e, 0x56, 0xda, 0xbb, 0x25, 0x5c, 0xe2, 0xa3, 0x2e, 0xdc,
0xec, 0x67, 0x5b, 0x36, 0xca, 0xdf, 0x15, 0xdf, 0xec, 0xdd, 0x32, 0x36, 0xf1, 0xd1, 0x33, 0x58,
0x1b, 0x24, 0x3b, 0x11, 0x8a, 0xbe, 0x0f, 0x66, 0x1b, 0xb2, 0xa6, 0x15, 0xb1, 0x62, 0x97, 0x53,
0xd0, 0x2e, 0xbb, 0x9c, 0xed, 0x36, 0xb2, 0xcb, 0x79, 0x3d, 0xa1, 0x03, 0xeb, 0x76, 0x1a, 0xf3,
0xd0, 0x9d, 0x08, 0xa6, 0x72, 0x40, 0x5c, 0xdb, 0x2a, 0x66, 0xf2, 0xf3, 0xfa, 0x69, 0x3c, 0x89,
0xcf, 0xcb, 0x83, 0x36, 0x6d, 0xab, 0x98, 0x49, 0xfc, 0x27, 0x6b, 0x9f, 0xaf, 0xec, 0xf0, 0x2f,
0xc6, 0x8f, 0xd8, 0xef, 0xcb, 0x05, 0xf6, 0x39, 0xf8, 0xe1, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff,
0x22, 0xaf, 0xfb, 0xc7, 0x4d, 0x16, 0x00, 0x00,
}

File diff suppressed because it is too large Load Diff

@ -164,7 +164,6 @@ message MemberEnterTips{
uint64 OperationTime = 3;
}
//Actively leave the group
message MemberLeaveTips{
GroupInfo Group = 1;
@ -175,20 +174,19 @@ message MemberLeaveTips{
message MemberInvitedTips{
GroupInfo Group = 1;
GroupMemberFullInfo OpUser = 2;
GroupMemberFullInfo InvitedUser = 3;
repeated GroupMemberFullInfo InvitedUserList = 3;
uint64 OperationTime = 4;
}
message MemberKickedTips{
GroupInfo Group = 1;
GroupMemberFullInfo OpUser = 2;
GroupMemberFullInfo KickedUser = 3;
repeated GroupMemberFullInfo KickedUserList = 3;
uint64 OperationTime = 4;
}
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 FinalInfo = 3; //
uint64 MuteTime = 4;
@ -203,12 +201,12 @@ message GroupCreatedTips{
}
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;
GroupMemberFullInfo OpUser = 3;
}
message ReceiveJoinApplicationTips{
message JoinGroupApplicationTips{
GroupInfo Group = 1;
PublicUserInfo Applicant = 2;
string Reason = 3;
@ -235,56 +233,52 @@ message FriendApplication{
string AddWording = 3;
}
//user1 add user2
message FromToUserID{
string FromUserID = 1;
string ToUserID = 2;
}
//FromUserID apply to add ToUserID
message FriendApplicationAddedTips{
PublicUserInfo OpUser = 1; //user1
FriendApplication Application = 2;
PublicUserInfo OpedUser = 3; //user2
uint64 OperationTime = 4;
FromToUserID FromToUserID = 1;
}
// user2 accept or reject
//FromUserID accept or reject ToUserID
message FriendApplicationProcessedTips{
PublicUserInfo OpUser = 1; //user2
PublicUserInfo OpedUser = 2; //user1
int32 result = 3; //1: accept; -1: reject
uint64 OperationTime = 4;
FromToUserID FromToUserID = 1;
}
// FromUserID Added a friend ToUserID
message FriendAddedTips{
FriendInfo Friend = 1;
uint64 OperationTime = 2;
PublicUserInfo OpUser = 3; //who do this
}
// FromUserID deleted a friend ToUserID
message FriendDeletedTips{
FriendInfo Friend = 1;
uint64 OperationTime = 2;
FromToUserID FromToUserID = 1;
}
message BlackInfo{
PublicUserInfo OwnerUser = 1;
uint64 CreateTime = 3;
PublicUserInfo BlackUser = 4;
}
//message BlackInfo{
// PublicUserInfo OwnerUser = 1;
// uint64 CreateTime = 3;
// PublicUserInfo BlackUser = 4;
//}
message BlackAddedTips{
BlackInfo Black = 1;
uint64 OperationTime = 2;
FromToUserID FromToUserID = 1;
}
message BlackDeletedTips{
BlackInfo Black = 1;
uint64 OperationTime = 2;
FromToUserID FromToUserID = 1;
}
message FriendInfoChangedTips{
FriendInfo Friend = 1;
PublicUserInfo OpUser = 2;
uint64 OperationTime = 3;
FromToUserID FromToUserID = 1;
}
//////////////////////user/////////////////////
message SelfInfoUpdatedTips{
UserInfo SelfUserInfo = 1;
PublicUserInfo OpUser = 2;
uint64 OperationTime = 3;
string UserID = 1;
}

Loading…
Cancel
Save