notification

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

@ -1,7 +1,7 @@
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
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
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
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
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
} }
} }
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
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
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
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 (
"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 {
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
} }
//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
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
// 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
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
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
} }
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
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
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
//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
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
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
} }
} }
//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
} }
} }
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
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
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
} }
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
} }
} }
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
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)
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)
// 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
} }
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

@ -10,6 +10,7 @@ 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"
pbChat "Open_IM/pkg/proto/chat" pbChat "Open_IM/pkg/proto/chat"
pbFriend "Open_IM/pkg/proto/friend"
pbGroup "Open_IM/pkg/proto/group" pbGroup "Open_IM/pkg/proto/group"
open_im_sdk "Open_IM/pkg/proto/sdk_ws" open_im_sdk "Open_IM/pkg/proto/sdk_ws"
sdk_ws "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; // repeated GroupMemberFullInfo MemberList = 3;
// uint64 OperationTime = 4; // uint64 OperationTime = 4;
//} creator->group //} 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 func setOpUserInfo(operationID, opUserID, groupID string, groupMemberInfo *open_im_sdk.GroupMemberFullInfo) {
groupCreated.Group = &open_im_sdk.GroupInfo{} if token_verify.IsMangerUserID(opUserID) {
u, err := imdb.FindUserByUID(opUserID)
if token_verify.IsMangerUserID(req.OpUserID) { if err != nil {
u, err := imdb.FindUserByUID(req.OpUserID) log.NewError(operationID, "FindUserByUID failed ", err.Error(), opUserID)
if err != nil || u == nil {
return return
} }
utils.CopyStructFields(groupCreated.Creator, u) utils.CopyStructFields(groupMemberInfo, u)
groupCreated.Creator.AppMangerLevel = 1 groupMemberInfo.AppMangerLevel = 1
} else { } else {
u, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(groupID, req.OpUserID) u, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(groupID, opUserID)
if err != nil || u == nil { if err != nil {
log.NewError(operationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), groupID, opUserID)
return 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) 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 return
} }
utils.CopyStructFields(groupCreated.Group, group) utils.CopyStructFields(groupMemberInfo, group)
groupCreated.Creator = &open_im_sdk.GroupMemberFullInfo{} }
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 var groupMemberInfo open_im_sdk.GroupMemberFullInfo
member, err := imdb.GetMemberInfoById(groupID, v.UserID) setGroupMemberInfo(operationID, groupID, v, &groupMemberInfo)
if err != nil { GroupCreatedTips.MemberList = append(GroupCreatedTips.MemberList, &groupMemberInfo)
utils.CopyStructFields(&groupMemberInfo, member)
}
groupCreated.MemberList = append(groupCreated.MemberList, &groupMemberInfo)
} }
var tips open_im_sdk.TipsComm var tips open_im_sdk.TipsComm
tips.Detail, _ = json.Marshal(groupCreated) tips.Detail, _ = json.Marshal(GroupCreatedTips)
tips.DefaultTips = config.Config.Notification.GroupCreated.DefaultTips.Tips tips.DefaultTips = config.Config.Notification.GroupCreated.DefaultTips.Tips
n.Content, _ = json.Marshal(tips) n.Content, _ = json.Marshal(tips)
Notification(&n, false) Notification(&n, false)
@ -362,27 +394,44 @@ func GroupCreatedNotification(req *pbGroup.CreateGroupReq, groupID string) {
// GroupInfo Group = 1; // GroupInfo Group = 1;
// PublicUserInfo Applicant = 2; // PublicUserInfo Applicant = 2;
// string Reason = 3; // string Reason = 3;
//} //} apply->all managers GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"`
func ReceiveJoinApplicationNotification(operationID, RecvID string, applicant *immysql.User, group *immysql.Group) { // 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 var n NotificationMsg
n.SendID = applicant.UserID n.SendID = req.OpUserID
n.RecvID = RecvID n.ContentType = constant.JoinApplicationNotification
n.ContentType = constant.ApplyJoinGroupTip
n.SessionType = constant.SingleChatType n.SessionType = constant.SingleChatType
n.MsgFrom = constant.SysMsgType n.MsgFrom = constant.SysMsgType
n.OperationID = operationID n.OperationID = req.OperationID
var joniGroup open_im_sdk.ReceiveJoinApplicationTips JoinGroupApplicationTips := open_im_sdk.JoinGroupApplicationTips{Group: &open_im_sdk.GroupInfo{}, Applicant: &open_im_sdk.PublicUserInfo{}}
joniGroup.Group = &open_im_sdk.GroupInfo{} setGroupInfo(req.OperationID, req.GroupID, JoinGroupApplicationTips.Group, "")
utils.CopyStructFields(joniGroup.Group, group)
joniGroup.Applicant = &open_im_sdk.PublicUserInfo{} apply, err := imdb.FindUserByUID(req.OpUserID)
utils.CopyStructFields(joniGroup.Applicant, applicant) 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 var tips open_im_sdk.TipsComm
tips.Detail, _ = json.Marshal(joniGroup) tips.Detail, _ = json.Marshal(JoinGroupApplicationTips)
tips.DefaultTips = config.Config.Notification.ApplyJoinGroup.DefaultTips.Tips tips.DefaultTips = "JoinGroupApplicationTips"
n.Content, _ = json.Marshal(tips) n.Content, _ = json.Marshal(tips)
Notification(&n, false) for _, v := range managerList {
n.RecvID = v.UserID
Notification(&n, true)
}
} }
//message ApplicationProcessedTips{ //message ApplicationProcessedTips{
@ -391,8 +440,28 @@ func ReceiveJoinApplicationNotification(operationID, RecvID string, applicant *i
// int32 Result = 3; // int32 Result = 3;
// string Reason = 4; // 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{ //message MemberInvitedTips{
@ -401,8 +470,29 @@ func ApplicationProcessedNotification(operationID, RecvID string, group immysql.
// GroupMemberFullInfo InvitedUser = 3; // GroupMemberFullInfo InvitedUser = 3;
// uint64 OperationTime = 4; // 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{ //message MemberKickedTips{
@ -411,12 +501,35 @@ func MemberInvitedNotification(operationID string, group immysql.Group, opUser i
// GroupMemberFullInfo KickedUser = 3; // GroupMemberFullInfo KickedUser = 3;
// uint64 OperationTime = 4; // 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) { 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)
func MemberKickedNotification(operationID string, group immysql.Group, opUser immysql.GroupMember, KickedUser immysql.GroupMember) { 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{ //message GroupInfoChangedTips{
@ -424,8 +537,26 @@ func MemberKickedNotification(operationID string, group immysql.Group, opUser im
// GroupInfo Group = 2; // GroupInfo Group = 2;
// GroupMemberFullInfo OpUser = 3; // 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; // GroupMemberFullInfo LeaverUser = 2;
// uint64 OperationTime = 3; // 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{ //message MemberEnterTips{
@ -467,7 +620,25 @@ func MemberLeaveNotification(operationID, groupID, leaverUserID string) {
// GroupMemberFullInfo EntrantUser = 2; // GroupMemberFullInfo EntrantUser = 2;
// uint64 OperationTime = 3; // 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; // uint64 MuteTime = 4;
// GroupInfo Group = 5; // 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{ //message FriendApplicationAddedTips{
// PublicUserInfo OpUser = 1; //user1 // PublicUserInfo OpUser = 1; //user1
// FriendApplication Application = 2; // FriendApplication Application = 2;
// PublicUserInfo OpedUser = 3; //user2 // 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{ func FriendApplicationAddedNotification(req *pbFriend.AddFriendReq) {
// PublicUserInfo OpUser = 1; //user2 var n NotificationMsg
// PublicUserInfo OpedUser = 2; //user1 n.SendID = req.CommID.FromUserID
// int32 result = 3; //1: accept; -1: reject n.RecvID = req.CommID.ToUserID
//} n.ContentType = constant.FriendApplicationAddedNotification
func FriendApplicationProcessedNotification(operationID string, opUser *immysql.User, OpedUser *immysql.User, result int32) { 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{ func FriendApplicationProcessedNotification(req *pbFriend.AddFriendResponseReq) {
// FriendInfo Friend = 1; var n NotificationMsg
//} n.SendID = req.CommID.FromUserID
//message FriendInfo{ n.RecvID = req.CommID.ToUserID
// UserInfo OwnerUser = 1; n.ContentType = constant.FriendApplicationProcessedNotification
// string Remark = 2; n.SessionType = constant.SingleChatType
// uint64 CreateTime = 3; n.MsgFrom = constant.SysMsgType
// UserInfo FriendUser = 4; 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{ //message FriendDeletedTips{
// FriendInfo Friend = 1; // 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{ //message FriendInfoChangedTips{
@ -526,8 +793,24 @@ func FriendDeletedNotification(operationID string, opUser *immysql.User, friendU
// PublicUserInfo OpUser = 2; // PublicUserInfo OpUser = 2;
// uint64 OperationTime = 3; // 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{ //message BlackAddedTips{
@ -539,15 +822,47 @@ func FriendInfoChangedNotification(operationID string, opUser *immysql.User, fri
// uint64 CreateTime = 3; // uint64 CreateTime = 3;
// PublicUserInfo BlackUser = 4; // 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{ //message BlackDeletedTips{
// BlackInfo Black = 1; // 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{ //message SelfInfoUpdatedTips{
@ -555,6 +870,26 @@ func BlackDeletedNotification(operationID string, opUser *immysql.User, blackUse
// PublicUserInfo OpUser = 2; // PublicUserInfo OpUser = 2;
// uint64 OperationTime = 3; // 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()) 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
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
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
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 (
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() {
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
} }
//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

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

File diff suppressed because it is too large Load Diff

@ -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{
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{
} }
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{
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;
} }

Loading…
Cancel
Save