Merge remote-tracking branch 'origin/tuoyun' into tuoyun

This commit is contained in:
Gordon 2021-12-29 17:31:30 +08:00
commit efa61dcb39
9 changed files with 224 additions and 148 deletions

View File

@ -24,8 +24,8 @@ func main() {
// user routing group, which handles user registration and login services // user routing group, which handles user registration and login services
userRouterGroup := r.Group("/user") userRouterGroup := r.Group("/user")
{ {
userRouterGroup.POST("/update_user_info", user.UpdateUserInfo) userRouterGroup.POST("/update_user_info", user.UpdateUserInfo) //1
userRouterGroup.POST("/get_user_info", user.GetUserInfo) userRouterGroup.POST("/get_user_info", user.GetUserInfo) //1
} }
//friend routing group //friend routing group
friendRouterGroup := r.Group("/friend") friendRouterGroup := r.Group("/friend")
@ -35,14 +35,14 @@ func main() {
friendRouterGroup.POST("/get_friend_apply_list", friend.GetFriendApplyList) //1 friendRouterGroup.POST("/get_friend_apply_list", friend.GetFriendApplyList) //1
friendRouterGroup.POST("/get_self_apply_list", friend.GetSelfApplyList) //1 friendRouterGroup.POST("/get_self_apply_list", friend.GetSelfApplyList) //1
friendRouterGroup.POST("/get_friend_list", friend.GetFriendList) //1 friendRouterGroup.POST("/get_friend_list", friend.GetFriendList) //1
friendRouterGroup.POST("/add_blacklist", friend.AddBlacklist) friendRouterGroup.POST("/add_blacklist", friend.AddBlacklist) //1
friendRouterGroup.POST("/get_blacklist", friend.GetBlacklist) friendRouterGroup.POST("/get_blacklist", friend.GetBlacklist) //1
friendRouterGroup.POST("/remove_blacklist", friend.RemoveBlacklist) friendRouterGroup.POST("/remove_blacklist", friend.RemoveBlacklist) //1
friendRouterGroup.POST("/delete_friend", friend.DeleteFriend) friendRouterGroup.POST("/delete_friend", friend.DeleteFriend)
friendRouterGroup.POST("/add_friend_response", friend.AddFriendResponse) //1 friendRouterGroup.POST("/add_friend_response", friend.AddFriendResponse) //1
friendRouterGroup.POST("/set_friend_remark", friend.SetFriendRemark) //1 friendRouterGroup.POST("/set_friend_remark", friend.SetFriendRemark) //1
friendRouterGroup.POST("/is_friend", friend.IsFriend) //1 friendRouterGroup.POST("/is_friend", friend.IsFriend) //1
friendRouterGroup.POST("/import_friend", friend.ImportFriend) friendRouterGroup.POST("/import_friend", friend.ImportFriend) //1
} }
//group related routing group //group related routing group
groupRouterGroup := r.Group("/group") groupRouterGroup := r.Group("/group")
@ -65,8 +65,8 @@ func main() {
//certificate //certificate
authRouterGroup := r.Group("/auth") authRouterGroup := r.Group("/auth")
{ {
authRouterGroup.POST("/user_register", apiAuth.UserRegister) authRouterGroup.POST("/user_register", apiAuth.UserRegister) //1
authRouterGroup.POST("/user_token", apiAuth.UserToken) authRouterGroup.POST("/user_token", apiAuth.UserToken) //1
} }
//Third service //Third service
thirdGroup := r.Group("/third") thirdGroup := r.Group("/third")

View File

@ -69,11 +69,18 @@ func ImportFriend(c *gin.Context) {
RpcResp, err := client.ImportFriend(context.Background(), req) RpcResp, err := client.ImportFriend(context.Background(), req)
if err != nil { if err != nil {
log.NewError(req.OperationID, "ImportFriend failed ", err.Error(), req.String()) log.NewError(req.OperationID, "ImportFriend failed ", err.Error(), req.String())
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "cImportFriend failed " + err.Error()}) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "ImportFriend failed "})
return return
} }
resp := api.ImportFriendResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}}
resp := api.ImportFriendResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, Data: RpcResp.FailedFriendUserIDList} if resp.ErrCode == 0 {
for _, v := range RpcResp.UserIDResultList {
resp.UserIDResultList = append(resp.UserIDResultList, api.UserIDResult{UserID: v.UserID, Result: v.Result})
}
}
if len(resp.UserIDResultList) == 0 {
resp.UserIDResultList = []api.UserIDResult{}
}
log.NewInfo(req.OperationID, "ImportFriend api return ", resp) log.NewInfo(req.OperationID, "ImportFriend api return ", resp)
c.JSON(http.StatusOK, resp) c.JSON(http.StatusOK, resp)
} }

View File

@ -227,7 +227,10 @@ func CreateGroup(c *gin.Context) {
return return
} }
req := &rpc.CreateGroupReq{} req := &rpc.CreateGroupReq{}
utils.CopyStructFields(req, params) utils.CopyStructFields(req, &params)
for _, v := range params.MemberList {
req.InitMemberList = append(req.InitMemberList, &rpc.GroupAddMemberInfo{UserID: v.UserID, RoleLevel: v.RoleLevel})
}
var ok bool var ok bool
ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"))
if !ok { if !ok {
@ -246,13 +249,12 @@ func CreateGroup(c *gin.Context) {
return return
} }
resp := api.CreateGroupResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}}
if RpcResp.ErrCode == 0 { if RpcResp.ErrCode == 0 {
resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg, "data": gin.H{"groupInfo": RpcResp.GroupInfo}} utils.CopyStructFields(&resp.GroupInfo, &RpcResp.GroupInfo)
c.JSON(http.StatusOK, resp)
} else {
c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg})
} }
log.NewInfo(req.OperationID, "InviteUserToGroup api return ", RpcResp) log.NewInfo(req.OperationID, "InviteUserToGroup api return ", RpcResp)
c.JSON(http.StatusOK, resp)
} }
//my application 我发出去的 //my application 我发出去的

View File

@ -156,59 +156,65 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq
return &pbFriend.AddFriendResp{CommonResp: &pbFriend.CommonResp{}}, nil return &pbFriend.AddFriendResp{CommonResp: &pbFriend.CommonResp{}}, nil
} }
//todo
func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFriendReq) (*pbFriend.ImportFriendResp, error) { func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFriendReq) (*pbFriend.ImportFriendResp, error) {
log.NewInfo(req.OperationID, "ImportFriend failed ", req.String()) log.NewInfo(req.OperationID, "ImportFriend args ", req.String())
var resp pbFriend.ImportFriendResp resp := pbFriend.ImportFriendResp{CommonResp: &pbFriend.CommonResp{}}
var c pbFriend.CommonResp var c pbFriend.CommonResp
if !utils.IsContain(req.OpUserID, config.Config.Manager.AppManagerUid) { if !utils.IsContain(req.OpUserID, config.Config.Manager.AppManagerUid) {
log.NewError(req.OperationID, "not authorized", req.OpUserID, config.Config.Manager.AppManagerUid) log.NewError(req.OperationID, "not authorized", req.OpUserID, config.Config.Manager.AppManagerUid)
c.ErrCode = constant.ErrAccess.ErrCode c.ErrCode = constant.ErrAccess.ErrCode
c.ErrMsg = constant.ErrAccess.ErrMsg c.ErrMsg = constant.ErrAccess.ErrMsg
return &pbFriend.ImportFriendResp{CommonResp: &c, FailedFriendUserIDList: req.FriendUserIDList}, nil for _, v := range req.FriendUserIDList {
resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1})
}
resp.CommonResp = &c
return &resp, nil
} }
if _, err := imdb.GetUserByUserID(req.FromUserID); err != nil { if _, err := imdb.GetUserByUserID(req.FromUserID); err != nil {
log.NewError(req.OperationID, "GetUserByUserID failed ", err.Error(), req.FromUserID) log.NewError(req.OperationID, "GetUserByUserID failed ", err.Error(), req.FromUserID)
c.ErrCode = constant.ErrDB.ErrCode c.ErrCode = constant.ErrDB.ErrCode
c.ErrMsg = "this user not exists,cant not add friend" c.ErrMsg = "this user not exists,cant not add friend"
return &pbFriend.ImportFriendResp{CommonResp: &c, FailedFriendUserIDList: req.FriendUserIDList}, nil for _, v := range req.FriendUserIDList {
resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1})
}
resp.CommonResp = &c
return &resp, nil
} }
for _, v := range req.FriendUserIDList { for _, v := range req.FriendUserIDList {
log.NewDebug(req.OperationID, "FriendUserIDList ", v)
if _, fErr := imdb.GetUserByUserID(v); fErr != nil { if _, fErr := imdb.GetUserByUserID(v); fErr != nil {
c.ErrMsg = "some uid establish failed" log.NewError(req.OperationID, "GetUserByUserID failed ", fErr.Error(), v)
c.ErrCode = 408 resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1})
resp.FailedFriendUserIDList = append(resp.FailedFriendUserIDList, v)
} else { } else {
if _, err := imdb.GetFriendRelationshipFromFriend(req.FromUserID, v); err != nil { if _, err := imdb.GetFriendRelationshipFromFriend(req.FromUserID, v); err != nil {
//Establish two single friendship //Establish two single friendship
toInsertFollow := imdb.Friend{OwnerUserID: req.FromUserID, FriendUserID: v} toInsertFollow := imdb.Friend{OwnerUserID: req.FromUserID, FriendUserID: v}
err1 := imdb.InsertToFriend(&toInsertFollow) err1 := imdb.InsertToFriend(&toInsertFollow)
if err1 != nil { if err1 != nil {
resp.FailedFriendUserIDList = append(resp.FailedFriendUserIDList, v) log.NewError(req.OperationID, "InsertToFriend failed ", err1.Error(), toInsertFollow)
log.NewError(req.OperationID, "InsertToFriend failed", req.FromUserID, v, err1.Error()) resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1})
c.ErrMsg = "some uid establish failed"
c.ErrCode = 408
continue continue
} }
toInsertFollow = imdb.Friend{OwnerUserID: v, FriendUserID: req.FromUserID} toInsertFollow = imdb.Friend{OwnerUserID: v, FriendUserID: req.FromUserID}
err2 := imdb.InsertToFriend(&toInsertFollow) err2 := imdb.InsertToFriend(&toInsertFollow)
if err2 != nil { if err2 != nil {
resp.FailedFriendUserIDList = append(resp.FailedFriendUserIDList, v) log.NewError(req.OperationID, "InsertToFriend failed ", err2.Error(), toInsertFollow)
log.NewError(req.OperationID, "InsertToFriend failed", v, req.FromUserID, err2.Error()) resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1})
c.ErrMsg = "some uid establish failed"
c.ErrCode = 408
continue continue
} }
for _, v := range req.FriendUserIDList { resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: 0})
log.NewDebug(req.OperationID, "UserIDResultList ", resp.UserIDResultList)
chat.FriendAddedNotification(req.OperationID, req.OpUserID, req.FromUserID, v) chat.FriendAddedNotification(req.OperationID, req.OpUserID, req.FromUserID, v)
} else {
log.NewWarn(req.OperationID, "GetFriendRelationshipFromFriend ok", req.FromUserID, v)
resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: 0})
} }
} }
} }
} resp.CommonResp.ErrCode = 0
resp.CommonResp = &c log.NewInfo(req.OperationID, "ImportFriend rpc ok ", resp.String())
log.NewInfo(req.OperationID, "ImportFriend rpc ok ", resp)
return &resp, nil return &resp, nil
} }

View File

@ -20,9 +20,13 @@ type ImportFriendReq struct {
OperationID string `json:"operationID" binding:"required"` OperationID string `json:"operationID" binding:"required"`
FromUserID string `json:"fromUserID" binding:"required"` FromUserID string `json:"fromUserID" binding:"required"`
} }
type UserIDResult struct {
UserID string `json:"userID""`
Result int32 `json:"result"`
}
type ImportFriendResp struct { type ImportFriendResp struct {
CommResp CommResp
Data []string `json:"data"` UserIDResultList []UserIDResult `json:"data"`
} }
type AddFriendReq struct { type AddFriendReq struct {

View File

@ -1,7 +1,6 @@
package base_info package base_info
import ( import (
pb "Open_IM/pkg/proto/group"
open_im_sdk "Open_IM/pkg/proto/sdk_ws" open_im_sdk "Open_IM/pkg/proto/sdk_ws"
) )
@ -77,7 +76,7 @@ type GetGroupAllMemberResp struct {
} }
type CreateGroupReq struct { type CreateGroupReq struct {
MemberList []*pb.GroupAddMemberInfo `json:"memberList"` MemberList []*GroupAddMemberInfo `json:"memberList" binding:"required"`
GroupName string `json:"groupName"` GroupName string `json:"groupName"`
Introduction string `json:"introduction"` Introduction string `json:"introduction"`
Notification string `json:"notification"` Notification string `json:"notification"`
@ -88,7 +87,7 @@ type CreateGroupReq struct {
} }
type CreateGroupResp struct { type CreateGroupResp struct {
CommResp CommResp
Data open_im_sdk.GroupInfo `json:"data"` GroupInfo open_im_sdk.GroupInfo `json:"data"`
} }
type GetGroupApplicationListReq struct { type GetGroupApplicationListReq struct {

View File

@ -16,6 +16,11 @@ type UserInfo struct {
Ex string `json:"ex" binding:"omitempty,max=1024"` Ex string `json:"ex" binding:"omitempty,max=1024"`
} }
type GroupAddMemberInfo struct {
UserID string `json:"userID" binding:"required"`
RoleLevel int32 `json:"roleLevel" binding:"required"`
}
func SetErrCodeMsg(c *gin.Context, status int) *CommResp { func SetErrCodeMsg(c *gin.Context, status int) *CommResp {
resp := CommResp{ErrCode: int32(status), ErrMsg: http.StatusText(status)} resp := CommResp{ErrCode: int32(status), ErrMsg: http.StatusText(status)}
c.JSON(status, resp) c.JSON(status, resp)

View File

@ -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_friend_69e6f38cd215d5ef, []int{0} return fileDescriptor_friend_74665a4d507faa8c, []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)
@ -84,7 +84,7 @@ func (m *CommID) Reset() { *m = CommID{} }
func (m *CommID) String() string { return proto.CompactTextString(m) } func (m *CommID) String() string { return proto.CompactTextString(m) }
func (*CommID) ProtoMessage() {} func (*CommID) ProtoMessage() {}
func (*CommID) Descriptor() ([]byte, []int) { func (*CommID) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{1} return fileDescriptor_friend_74665a4d507faa8c, []int{1}
} }
func (m *CommID) XXX_Unmarshal(b []byte) error { func (m *CommID) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CommID.Unmarshal(m, b) return xxx_messageInfo_CommID.Unmarshal(m, b)
@ -143,7 +143,7 @@ func (m *GetFriendsInfoReq) Reset() { *m = GetFriendsInfoReq{} }
func (m *GetFriendsInfoReq) String() string { return proto.CompactTextString(m) } func (m *GetFriendsInfoReq) String() string { return proto.CompactTextString(m) }
func (*GetFriendsInfoReq) ProtoMessage() {} func (*GetFriendsInfoReq) ProtoMessage() {}
func (*GetFriendsInfoReq) Descriptor() ([]byte, []int) { func (*GetFriendsInfoReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{2} return fileDescriptor_friend_74665a4d507faa8c, []int{2}
} }
func (m *GetFriendsInfoReq) XXX_Unmarshal(b []byte) error { func (m *GetFriendsInfoReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetFriendsInfoReq.Unmarshal(m, b) return xxx_messageInfo_GetFriendsInfoReq.Unmarshal(m, b)
@ -183,7 +183,7 @@ func (m *GetFriendInfoResp) Reset() { *m = GetFriendInfoResp{} }
func (m *GetFriendInfoResp) String() string { return proto.CompactTextString(m) } func (m *GetFriendInfoResp) String() string { return proto.CompactTextString(m) }
func (*GetFriendInfoResp) ProtoMessage() {} func (*GetFriendInfoResp) ProtoMessage() {}
func (*GetFriendInfoResp) Descriptor() ([]byte, []int) { func (*GetFriendInfoResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{3} return fileDescriptor_friend_74665a4d507faa8c, []int{3}
} }
func (m *GetFriendInfoResp) XXX_Unmarshal(b []byte) error { func (m *GetFriendInfoResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetFriendInfoResp.Unmarshal(m, b) return xxx_messageInfo_GetFriendInfoResp.Unmarshal(m, b)
@ -236,7 +236,7 @@ func (m *AddFriendReq) Reset() { *m = AddFriendReq{} }
func (m *AddFriendReq) String() string { return proto.CompactTextString(m) } func (m *AddFriendReq) String() string { return proto.CompactTextString(m) }
func (*AddFriendReq) ProtoMessage() {} func (*AddFriendReq) ProtoMessage() {}
func (*AddFriendReq) Descriptor() ([]byte, []int) { func (*AddFriendReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{4} return fileDescriptor_friend_74665a4d507faa8c, []int{4}
} }
func (m *AddFriendReq) XXX_Unmarshal(b []byte) error { func (m *AddFriendReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddFriendReq.Unmarshal(m, b) return xxx_messageInfo_AddFriendReq.Unmarshal(m, b)
@ -281,7 +281,7 @@ func (m *AddFriendResp) Reset() { *m = AddFriendResp{} }
func (m *AddFriendResp) String() string { return proto.CompactTextString(m) } func (m *AddFriendResp) String() string { return proto.CompactTextString(m) }
func (*AddFriendResp) ProtoMessage() {} func (*AddFriendResp) ProtoMessage() {}
func (*AddFriendResp) Descriptor() ([]byte, []int) { func (*AddFriendResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{5} return fileDescriptor_friend_74665a4d507faa8c, []int{5}
} }
func (m *AddFriendResp) XXX_Unmarshal(b []byte) error { func (m *AddFriendResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddFriendResp.Unmarshal(m, b) return xxx_messageInfo_AddFriendResp.Unmarshal(m, b)
@ -322,7 +322,7 @@ func (m *ImportFriendReq) Reset() { *m = ImportFriendReq{} }
func (m *ImportFriendReq) String() string { return proto.CompactTextString(m) } func (m *ImportFriendReq) String() string { return proto.CompactTextString(m) }
func (*ImportFriendReq) ProtoMessage() {} func (*ImportFriendReq) ProtoMessage() {}
func (*ImportFriendReq) Descriptor() ([]byte, []int) { func (*ImportFriendReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{6} return fileDescriptor_friend_74665a4d507faa8c, []int{6}
} }
func (m *ImportFriendReq) XXX_Unmarshal(b []byte) error { func (m *ImportFriendReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImportFriendReq.Unmarshal(m, b) return xxx_messageInfo_ImportFriendReq.Unmarshal(m, b)
@ -370,9 +370,55 @@ func (m *ImportFriendReq) GetOpUserID() string {
return "" return ""
} }
type UserIDResult struct {
UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"`
Result int32 `protobuf:"varint,2,opt,name=Result" json:"Result,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *UserIDResult) Reset() { *m = UserIDResult{} }
func (m *UserIDResult) String() string { return proto.CompactTextString(m) }
func (*UserIDResult) ProtoMessage() {}
func (*UserIDResult) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_74665a4d507faa8c, []int{7}
}
func (m *UserIDResult) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UserIDResult.Unmarshal(m, b)
}
func (m *UserIDResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_UserIDResult.Marshal(b, m, deterministic)
}
func (dst *UserIDResult) XXX_Merge(src proto.Message) {
xxx_messageInfo_UserIDResult.Merge(dst, src)
}
func (m *UserIDResult) XXX_Size() int {
return xxx_messageInfo_UserIDResult.Size(m)
}
func (m *UserIDResult) XXX_DiscardUnknown() {
xxx_messageInfo_UserIDResult.DiscardUnknown(m)
}
var xxx_messageInfo_UserIDResult proto.InternalMessageInfo
func (m *UserIDResult) GetUserID() string {
if m != nil {
return m.UserID
}
return ""
}
func (m *UserIDResult) GetResult() int32 {
if m != nil {
return m.Result
}
return 0
}
type ImportFriendResp struct { type ImportFriendResp struct {
CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"`
FailedFriendUserIDList []string `protobuf:"bytes,2,rep,name=FailedFriendUserIDList" json:"FailedFriendUserIDList,omitempty"` UserIDResultList []*UserIDResult `protobuf:"bytes,2,rep,name=UserIDResultList" json:"UserIDResultList,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:"-"`
@ -382,7 +428,7 @@ func (m *ImportFriendResp) Reset() { *m = ImportFriendResp{} }
func (m *ImportFriendResp) String() string { return proto.CompactTextString(m) } func (m *ImportFriendResp) String() string { return proto.CompactTextString(m) }
func (*ImportFriendResp) ProtoMessage() {} func (*ImportFriendResp) ProtoMessage() {}
func (*ImportFriendResp) Descriptor() ([]byte, []int) { func (*ImportFriendResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{7} return fileDescriptor_friend_74665a4d507faa8c, []int{8}
} }
func (m *ImportFriendResp) XXX_Unmarshal(b []byte) error { func (m *ImportFriendResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImportFriendResp.Unmarshal(m, b) return xxx_messageInfo_ImportFriendResp.Unmarshal(m, b)
@ -409,9 +455,9 @@ func (m *ImportFriendResp) GetCommonResp() *CommonResp {
return nil return nil
} }
func (m *ImportFriendResp) GetFailedFriendUserIDList() []string { func (m *ImportFriendResp) GetUserIDResultList() []*UserIDResult {
if m != nil { if m != nil {
return m.FailedFriendUserIDList return m.UserIDResultList
} }
return nil return nil
} }
@ -427,7 +473,7 @@ func (m *GetFriendApplyListReq) Reset() { *m = GetFriendApplyListReq{} }
func (m *GetFriendApplyListReq) String() string { return proto.CompactTextString(m) } func (m *GetFriendApplyListReq) String() string { return proto.CompactTextString(m) }
func (*GetFriendApplyListReq) ProtoMessage() {} func (*GetFriendApplyListReq) ProtoMessage() {}
func (*GetFriendApplyListReq) Descriptor() ([]byte, []int) { func (*GetFriendApplyListReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{8} return fileDescriptor_friend_74665a4d507faa8c, []int{9}
} }
func (m *GetFriendApplyListReq) XXX_Unmarshal(b []byte) error { func (m *GetFriendApplyListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetFriendApplyListReq.Unmarshal(m, b) return xxx_messageInfo_GetFriendApplyListReq.Unmarshal(m, b)
@ -467,7 +513,7 @@ func (m *GetFriendApplyListResp) Reset() { *m = GetFriendApplyListResp{}
func (m *GetFriendApplyListResp) String() string { return proto.CompactTextString(m) } func (m *GetFriendApplyListResp) String() string { return proto.CompactTextString(m) }
func (*GetFriendApplyListResp) ProtoMessage() {} func (*GetFriendApplyListResp) ProtoMessage() {}
func (*GetFriendApplyListResp) Descriptor() ([]byte, []int) { func (*GetFriendApplyListResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{9} return fileDescriptor_friend_74665a4d507faa8c, []int{10}
} }
func (m *GetFriendApplyListResp) XXX_Unmarshal(b []byte) error { func (m *GetFriendApplyListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetFriendApplyListResp.Unmarshal(m, b) return xxx_messageInfo_GetFriendApplyListResp.Unmarshal(m, b)
@ -519,7 +565,7 @@ func (m *GetFriendListReq) Reset() { *m = GetFriendListReq{} }
func (m *GetFriendListReq) String() string { return proto.CompactTextString(m) } func (m *GetFriendListReq) String() string { return proto.CompactTextString(m) }
func (*GetFriendListReq) ProtoMessage() {} func (*GetFriendListReq) ProtoMessage() {}
func (*GetFriendListReq) Descriptor() ([]byte, []int) { func (*GetFriendListReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{10} return fileDescriptor_friend_74665a4d507faa8c, []int{11}
} }
func (m *GetFriendListReq) XXX_Unmarshal(b []byte) error { func (m *GetFriendListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetFriendListReq.Unmarshal(m, b) return xxx_messageInfo_GetFriendListReq.Unmarshal(m, b)
@ -559,7 +605,7 @@ func (m *GetFriendListResp) Reset() { *m = GetFriendListResp{} }
func (m *GetFriendListResp) String() string { return proto.CompactTextString(m) } func (m *GetFriendListResp) String() string { return proto.CompactTextString(m) }
func (*GetFriendListResp) ProtoMessage() {} func (*GetFriendListResp) ProtoMessage() {}
func (*GetFriendListResp) Descriptor() ([]byte, []int) { func (*GetFriendListResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{11} return fileDescriptor_friend_74665a4d507faa8c, []int{12}
} }
func (m *GetFriendListResp) XXX_Unmarshal(b []byte) error { func (m *GetFriendListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetFriendListResp.Unmarshal(m, b) return xxx_messageInfo_GetFriendListResp.Unmarshal(m, b)
@ -611,7 +657,7 @@ func (m *AddBlacklistReq) Reset() { *m = AddBlacklistReq{} }
func (m *AddBlacklistReq) String() string { return proto.CompactTextString(m) } func (m *AddBlacklistReq) String() string { return proto.CompactTextString(m) }
func (*AddBlacklistReq) ProtoMessage() {} func (*AddBlacklistReq) ProtoMessage() {}
func (*AddBlacklistReq) Descriptor() ([]byte, []int) { func (*AddBlacklistReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{12} return fileDescriptor_friend_74665a4d507faa8c, []int{13}
} }
func (m *AddBlacklistReq) XXX_Unmarshal(b []byte) error { func (m *AddBlacklistReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddBlacklistReq.Unmarshal(m, b) return xxx_messageInfo_AddBlacklistReq.Unmarshal(m, b)
@ -649,7 +695,7 @@ func (m *AddBlacklistResp) Reset() { *m = AddBlacklistResp{} }
func (m *AddBlacklistResp) String() string { return proto.CompactTextString(m) } func (m *AddBlacklistResp) String() string { return proto.CompactTextString(m) }
func (*AddBlacklistResp) ProtoMessage() {} func (*AddBlacklistResp) ProtoMessage() {}
func (*AddBlacklistResp) Descriptor() ([]byte, []int) { func (*AddBlacklistResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{13} return fileDescriptor_friend_74665a4d507faa8c, []int{14}
} }
func (m *AddBlacklistResp) XXX_Unmarshal(b []byte) error { func (m *AddBlacklistResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddBlacklistResp.Unmarshal(m, b) return xxx_messageInfo_AddBlacklistResp.Unmarshal(m, b)
@ -687,7 +733,7 @@ func (m *RemoveBlacklistReq) Reset() { *m = RemoveBlacklistReq{} }
func (m *RemoveBlacklistReq) String() string { return proto.CompactTextString(m) } func (m *RemoveBlacklistReq) String() string { return proto.CompactTextString(m) }
func (*RemoveBlacklistReq) ProtoMessage() {} func (*RemoveBlacklistReq) ProtoMessage() {}
func (*RemoveBlacklistReq) Descriptor() ([]byte, []int) { func (*RemoveBlacklistReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{14} return fileDescriptor_friend_74665a4d507faa8c, []int{15}
} }
func (m *RemoveBlacklistReq) XXX_Unmarshal(b []byte) error { func (m *RemoveBlacklistReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RemoveBlacklistReq.Unmarshal(m, b) return xxx_messageInfo_RemoveBlacklistReq.Unmarshal(m, b)
@ -725,7 +771,7 @@ func (m *RemoveBlacklistResp) Reset() { *m = RemoveBlacklistResp{} }
func (m *RemoveBlacklistResp) String() string { return proto.CompactTextString(m) } func (m *RemoveBlacklistResp) String() string { return proto.CompactTextString(m) }
func (*RemoveBlacklistResp) ProtoMessage() {} func (*RemoveBlacklistResp) ProtoMessage() {}
func (*RemoveBlacklistResp) Descriptor() ([]byte, []int) { func (*RemoveBlacklistResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{15} return fileDescriptor_friend_74665a4d507faa8c, []int{16}
} }
func (m *RemoveBlacklistResp) XXX_Unmarshal(b []byte) error { func (m *RemoveBlacklistResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RemoveBlacklistResp.Unmarshal(m, b) return xxx_messageInfo_RemoveBlacklistResp.Unmarshal(m, b)
@ -763,7 +809,7 @@ func (m *GetBlacklistReq) Reset() { *m = GetBlacklistReq{} }
func (m *GetBlacklistReq) String() string { return proto.CompactTextString(m) } func (m *GetBlacklistReq) String() string { return proto.CompactTextString(m) }
func (*GetBlacklistReq) ProtoMessage() {} func (*GetBlacklistReq) ProtoMessage() {}
func (*GetBlacklistReq) Descriptor() ([]byte, []int) { func (*GetBlacklistReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{16} return fileDescriptor_friend_74665a4d507faa8c, []int{17}
} }
func (m *GetBlacklistReq) XXX_Unmarshal(b []byte) error { func (m *GetBlacklistReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetBlacklistReq.Unmarshal(m, b) return xxx_messageInfo_GetBlacklistReq.Unmarshal(m, b)
@ -803,7 +849,7 @@ func (m *GetBlacklistResp) Reset() { *m = GetBlacklistResp{} }
func (m *GetBlacklistResp) String() string { return proto.CompactTextString(m) } func (m *GetBlacklistResp) String() string { return proto.CompactTextString(m) }
func (*GetBlacklistResp) ProtoMessage() {} func (*GetBlacklistResp) ProtoMessage() {}
func (*GetBlacklistResp) Descriptor() ([]byte, []int) { func (*GetBlacklistResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{17} return fileDescriptor_friend_74665a4d507faa8c, []int{18}
} }
func (m *GetBlacklistResp) XXX_Unmarshal(b []byte) error { func (m *GetBlacklistResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetBlacklistResp.Unmarshal(m, b) return xxx_messageInfo_GetBlacklistResp.Unmarshal(m, b)
@ -855,7 +901,7 @@ func (m *IsFriendReq) Reset() { *m = IsFriendReq{} }
func (m *IsFriendReq) String() string { return proto.CompactTextString(m) } func (m *IsFriendReq) String() string { return proto.CompactTextString(m) }
func (*IsFriendReq) ProtoMessage() {} func (*IsFriendReq) ProtoMessage() {}
func (*IsFriendReq) Descriptor() ([]byte, []int) { func (*IsFriendReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{18} return fileDescriptor_friend_74665a4d507faa8c, []int{19}
} }
func (m *IsFriendReq) XXX_Unmarshal(b []byte) error { func (m *IsFriendReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_IsFriendReq.Unmarshal(m, b) return xxx_messageInfo_IsFriendReq.Unmarshal(m, b)
@ -895,7 +941,7 @@ func (m *IsFriendResp) Reset() { *m = IsFriendResp{} }
func (m *IsFriendResp) String() string { return proto.CompactTextString(m) } func (m *IsFriendResp) String() string { return proto.CompactTextString(m) }
func (*IsFriendResp) ProtoMessage() {} func (*IsFriendResp) ProtoMessage() {}
func (*IsFriendResp) Descriptor() ([]byte, []int) { func (*IsFriendResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{19} return fileDescriptor_friend_74665a4d507faa8c, []int{20}
} }
func (m *IsFriendResp) XXX_Unmarshal(b []byte) error { func (m *IsFriendResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_IsFriendResp.Unmarshal(m, b) return xxx_messageInfo_IsFriendResp.Unmarshal(m, b)
@ -947,7 +993,7 @@ func (m *IsInBlackListReq) Reset() { *m = IsInBlackListReq{} }
func (m *IsInBlackListReq) String() string { return proto.CompactTextString(m) } func (m *IsInBlackListReq) String() string { return proto.CompactTextString(m) }
func (*IsInBlackListReq) ProtoMessage() {} func (*IsInBlackListReq) ProtoMessage() {}
func (*IsInBlackListReq) Descriptor() ([]byte, []int) { func (*IsInBlackListReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{20} return fileDescriptor_friend_74665a4d507faa8c, []int{21}
} }
func (m *IsInBlackListReq) XXX_Unmarshal(b []byte) error { func (m *IsInBlackListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_IsInBlackListReq.Unmarshal(m, b) return xxx_messageInfo_IsInBlackListReq.Unmarshal(m, b)
@ -987,7 +1033,7 @@ func (m *IsInBlackListResp) Reset() { *m = IsInBlackListResp{} }
func (m *IsInBlackListResp) String() string { return proto.CompactTextString(m) } func (m *IsInBlackListResp) String() string { return proto.CompactTextString(m) }
func (*IsInBlackListResp) ProtoMessage() {} func (*IsInBlackListResp) ProtoMessage() {}
func (*IsInBlackListResp) Descriptor() ([]byte, []int) { func (*IsInBlackListResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{21} return fileDescriptor_friend_74665a4d507faa8c, []int{22}
} }
func (m *IsInBlackListResp) XXX_Unmarshal(b []byte) error { func (m *IsInBlackListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_IsInBlackListResp.Unmarshal(m, b) return xxx_messageInfo_IsInBlackListResp.Unmarshal(m, b)
@ -1039,7 +1085,7 @@ func (m *DeleteFriendReq) Reset() { *m = DeleteFriendReq{} }
func (m *DeleteFriendReq) String() string { return proto.CompactTextString(m) } func (m *DeleteFriendReq) String() string { return proto.CompactTextString(m) }
func (*DeleteFriendReq) ProtoMessage() {} func (*DeleteFriendReq) ProtoMessage() {}
func (*DeleteFriendReq) Descriptor() ([]byte, []int) { func (*DeleteFriendReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{22} return fileDescriptor_friend_74665a4d507faa8c, []int{23}
} }
func (m *DeleteFriendReq) XXX_Unmarshal(b []byte) error { func (m *DeleteFriendReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteFriendReq.Unmarshal(m, b) return xxx_messageInfo_DeleteFriendReq.Unmarshal(m, b)
@ -1077,7 +1123,7 @@ func (m *DeleteFriendResp) Reset() { *m = DeleteFriendResp{} }
func (m *DeleteFriendResp) String() string { return proto.CompactTextString(m) } func (m *DeleteFriendResp) String() string { return proto.CompactTextString(m) }
func (*DeleteFriendResp) ProtoMessage() {} func (*DeleteFriendResp) ProtoMessage() {}
func (*DeleteFriendResp) Descriptor() ([]byte, []int) { func (*DeleteFriendResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{23} return fileDescriptor_friend_74665a4d507faa8c, []int{24}
} }
func (m *DeleteFriendResp) XXX_Unmarshal(b []byte) error { func (m *DeleteFriendResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteFriendResp.Unmarshal(m, b) return xxx_messageInfo_DeleteFriendResp.Unmarshal(m, b)
@ -1118,7 +1164,7 @@ func (m *AddFriendResponseReq) Reset() { *m = AddFriendResponseReq{} }
func (m *AddFriendResponseReq) String() string { return proto.CompactTextString(m) } func (m *AddFriendResponseReq) String() string { return proto.CompactTextString(m) }
func (*AddFriendResponseReq) ProtoMessage() {} func (*AddFriendResponseReq) ProtoMessage() {}
func (*AddFriendResponseReq) Descriptor() ([]byte, []int) { func (*AddFriendResponseReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{24} return fileDescriptor_friend_74665a4d507faa8c, []int{25}
} }
func (m *AddFriendResponseReq) XXX_Unmarshal(b []byte) error { func (m *AddFriendResponseReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddFriendResponseReq.Unmarshal(m, b) return xxx_messageInfo_AddFriendResponseReq.Unmarshal(m, b)
@ -1170,7 +1216,7 @@ func (m *AddFriendResponseResp) Reset() { *m = AddFriendResponseResp{} }
func (m *AddFriendResponseResp) String() string { return proto.CompactTextString(m) } func (m *AddFriendResponseResp) String() string { return proto.CompactTextString(m) }
func (*AddFriendResponseResp) ProtoMessage() {} func (*AddFriendResponseResp) ProtoMessage() {}
func (*AddFriendResponseResp) Descriptor() ([]byte, []int) { func (*AddFriendResponseResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{25} return fileDescriptor_friend_74665a4d507faa8c, []int{26}
} }
func (m *AddFriendResponseResp) XXX_Unmarshal(b []byte) error { func (m *AddFriendResponseResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddFriendResponseResp.Unmarshal(m, b) return xxx_messageInfo_AddFriendResponseResp.Unmarshal(m, b)
@ -1209,7 +1255,7 @@ func (m *SetFriendRemarkReq) Reset() { *m = SetFriendRemarkReq{} }
func (m *SetFriendRemarkReq) String() string { return proto.CompactTextString(m) } func (m *SetFriendRemarkReq) String() string { return proto.CompactTextString(m) }
func (*SetFriendRemarkReq) ProtoMessage() {} func (*SetFriendRemarkReq) ProtoMessage() {}
func (*SetFriendRemarkReq) Descriptor() ([]byte, []int) { func (*SetFriendRemarkReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{26} return fileDescriptor_friend_74665a4d507faa8c, []int{27}
} }
func (m *SetFriendRemarkReq) XXX_Unmarshal(b []byte) error { func (m *SetFriendRemarkReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetFriendRemarkReq.Unmarshal(m, b) return xxx_messageInfo_SetFriendRemarkReq.Unmarshal(m, b)
@ -1254,7 +1300,7 @@ func (m *SetFriendRemarkResp) Reset() { *m = SetFriendRemarkResp{} }
func (m *SetFriendRemarkResp) String() string { return proto.CompactTextString(m) } func (m *SetFriendRemarkResp) String() string { return proto.CompactTextString(m) }
func (*SetFriendRemarkResp) ProtoMessage() {} func (*SetFriendRemarkResp) ProtoMessage() {}
func (*SetFriendRemarkResp) Descriptor() ([]byte, []int) { func (*SetFriendRemarkResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{27} return fileDescriptor_friend_74665a4d507faa8c, []int{28}
} }
func (m *SetFriendRemarkResp) XXX_Unmarshal(b []byte) error { func (m *SetFriendRemarkResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetFriendRemarkResp.Unmarshal(m, b) return xxx_messageInfo_SetFriendRemarkResp.Unmarshal(m, b)
@ -1292,7 +1338,7 @@ func (m *GetSelfApplyListReq) Reset() { *m = GetSelfApplyListReq{} }
func (m *GetSelfApplyListReq) String() string { return proto.CompactTextString(m) } func (m *GetSelfApplyListReq) String() string { return proto.CompactTextString(m) }
func (*GetSelfApplyListReq) ProtoMessage() {} func (*GetSelfApplyListReq) ProtoMessage() {}
func (*GetSelfApplyListReq) Descriptor() ([]byte, []int) { func (*GetSelfApplyListReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{28} return fileDescriptor_friend_74665a4d507faa8c, []int{29}
} }
func (m *GetSelfApplyListReq) XXX_Unmarshal(b []byte) error { func (m *GetSelfApplyListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSelfApplyListReq.Unmarshal(m, b) return xxx_messageInfo_GetSelfApplyListReq.Unmarshal(m, b)
@ -1332,7 +1378,7 @@ func (m *GetSelfApplyListResp) Reset() { *m = GetSelfApplyListResp{} }
func (m *GetSelfApplyListResp) String() string { return proto.CompactTextString(m) } func (m *GetSelfApplyListResp) String() string { return proto.CompactTextString(m) }
func (*GetSelfApplyListResp) ProtoMessage() {} func (*GetSelfApplyListResp) ProtoMessage() {}
func (*GetSelfApplyListResp) Descriptor() ([]byte, []int) { func (*GetSelfApplyListResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{29} return fileDescriptor_friend_74665a4d507faa8c, []int{30}
} }
func (m *GetSelfApplyListResp) XXX_Unmarshal(b []byte) error { func (m *GetSelfApplyListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSelfApplyListResp.Unmarshal(m, b) return xxx_messageInfo_GetSelfApplyListResp.Unmarshal(m, b)
@ -1381,6 +1427,7 @@ func init() {
proto.RegisterType((*AddFriendReq)(nil), "friend.AddFriendReq") proto.RegisterType((*AddFriendReq)(nil), "friend.AddFriendReq")
proto.RegisterType((*AddFriendResp)(nil), "friend.AddFriendResp") proto.RegisterType((*AddFriendResp)(nil), "friend.AddFriendResp")
proto.RegisterType((*ImportFriendReq)(nil), "friend.ImportFriendReq") proto.RegisterType((*ImportFriendReq)(nil), "friend.ImportFriendReq")
proto.RegisterType((*UserIDResult)(nil), "friend.UserIDResult")
proto.RegisterType((*ImportFriendResp)(nil), "friend.ImportFriendResp") proto.RegisterType((*ImportFriendResp)(nil), "friend.ImportFriendResp")
proto.RegisterType((*GetFriendApplyListReq)(nil), "friend.GetFriendApplyListReq") proto.RegisterType((*GetFriendApplyListReq)(nil), "friend.GetFriendApplyListReq")
proto.RegisterType((*GetFriendApplyListResp)(nil), "friend.GetFriendApplyListResp") proto.RegisterType((*GetFriendApplyListResp)(nil), "friend.GetFriendApplyListResp")
@ -1876,66 +1923,68 @@ var _Friend_serviceDesc = grpc.ServiceDesc{
Metadata: "friend/friend.proto", Metadata: "friend/friend.proto",
} }
func init() { proto.RegisterFile("friend/friend.proto", fileDescriptor_friend_69e6f38cd215d5ef) } func init() { proto.RegisterFile("friend/friend.proto", fileDescriptor_friend_74665a4d507faa8c) }
var fileDescriptor_friend_69e6f38cd215d5ef = []byte{ var fileDescriptor_friend_74665a4d507faa8c = []byte{
// 916 bytes of a gzipped FileDescriptorProto // 945 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xcd, 0x4f, 0xeb, 0x46, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xcf, 0x8f, 0xdb, 0x44,
0x10, 0x97, 0x09, 0x84, 0x64, 0x12, 0x48, 0xb2, 0x09, 0x90, 0x9a, 0x0f, 0xa5, 0x3e, 0x54, 0x51, 0x14, 0x96, 0x9b, 0xdd, 0x34, 0x79, 0x49, 0x9b, 0x64, 0x92, 0x6d, 0x83, 0x77, 0x5b, 0x05, 0x1f,
0x0f, 0x89, 0x94, 0x8a, 0xaa, 0x94, 0xb6, 0x28, 0x10, 0x42, 0xdd, 0x96, 0x82, 0x0c, 0xbd, 0x54, 0x50, 0xc4, 0x21, 0x91, 0x82, 0x2a, 0xb1, 0x14, 0x5a, 0xd2, 0xcd, 0x66, 0x31, 0xb0, 0x6c, 0x35,
0x95, 0x90, 0xc1, 0x9b, 0xd4, 0x8a, 0x63, 0x2f, 0x5e, 0x53, 0xd4, 0x4b, 0x0f, 0x3d, 0xf4, 0x5a, 0x5b, 0x2e, 0x08, 0x69, 0xe5, 0xd6, 0x93, 0x60, 0xc5, 0xb1, 0xa7, 0x1e, 0x2f, 0x15, 0x57, 0x0e,
0xa9, 0xea, 0xed, 0x1d, 0xde, 0xbf, 0xfa, 0x64, 0xaf, 0x1d, 0xaf, 0x3f, 0x82, 0x9e, 0xcd, 0x93, 0x88, 0x1b, 0x12, 0xe2, 0xc6, 0x81, 0x7f, 0x15, 0x79, 0xc6, 0x8e, 0x67, 0x6c, 0x6f, 0x85, 0x5d,
0xde, 0x09, 0x66, 0x66, 0x7f, 0xe3, 0xf9, 0xda, 0xf9, 0x6d, 0xa0, 0x39, 0xb1, 0x75, 0x6c, 0x6a, 0xa4, 0x9e, 0x92, 0x37, 0xef, 0x87, 0xdf, 0xfb, 0xde, 0x9b, 0xf7, 0xd9, 0xd0, 0x5f, 0x05, 0x0e,
0x7d, 0xf6, 0xa7, 0x47, 0x6c, 0xcb, 0xb1, 0x50, 0x91, 0x49, 0xe2, 0xa7, 0x57, 0x04, 0x9b, 0x77, 0xf1, 0xec, 0xa9, 0xf8, 0x99, 0xd0, 0xc0, 0x0f, 0x7d, 0x54, 0x17, 0x92, 0xfe, 0xe1, 0x05, 0x25,
0xf2, 0x65, 0x9f, 0xcc, 0xa6, 0x7d, 0xcf, 0xd4, 0xa7, 0xda, 0xec, 0xee, 0x99, 0xf6, 0x9f, 0x29, 0xde, 0x95, 0x79, 0x3e, 0xa5, 0x9b, 0xf5, 0x94, 0xab, 0xa6, 0xcc, 0xde, 0x5c, 0xbd, 0x61, 0xd3,
0x3b, 0x2a, 0x7d, 0x07, 0x70, 0x66, 0xcd, 0xe7, 0x96, 0xa9, 0x60, 0x4a, 0x50, 0x1b, 0xd6, 0xb1, 0x37, 0x4c, 0x98, 0x1a, 0x4f, 0x00, 0x4e, 0xfc, 0xed, 0xd6, 0xf7, 0x30, 0x61, 0x14, 0x0d, 0xe1,
0x6d, 0x9f, 0x59, 0x1a, 0x6e, 0x0b, 0x1d, 0xa1, 0xbb, 0xa6, 0x04, 0x22, 0xda, 0x86, 0x22, 0xb6, 0x36, 0x09, 0x82, 0x13, 0xdf, 0x26, 0x43, 0x6d, 0xa4, 0x8d, 0xf7, 0x71, 0x22, 0xa2, 0x7b, 0x50,
0xed, 0x4b, 0x3a, 0x6d, 0xaf, 0x74, 0x84, 0x6e, 0x59, 0xf1, 0x25, 0xe9, 0x6f, 0x01, 0x8a, 0xae, 0x27, 0x41, 0x70, 0xce, 0xd6, 0xc3, 0x5b, 0x23, 0x6d, 0xdc, 0xc4, 0xb1, 0x64, 0xfc, 0xaa, 0x41,
0x03, 0x79, 0x84, 0x44, 0x28, 0x5d, 0x91, 0x5f, 0x28, 0xb6, 0xe5, 0x91, 0x87, 0x2e, 0x2b, 0x0b, 0x3d, 0x0a, 0x60, 0x2e, 0x90, 0x0e, 0x8d, 0x0b, 0xfa, 0x3d, 0x23, 0x81, 0xb9, 0xe0, 0xde, 0x4d,
0x19, 0x75, 0xa0, 0x72, 0x45, 0xb0, 0xad, 0x3a, 0xba, 0x65, 0xca, 0x23, 0xdf, 0x07, 0xaf, 0x72, 0xbc, 0x93, 0xd1, 0x08, 0x5a, 0x17, 0x94, 0x04, 0x56, 0xe8, 0xf8, 0x9e, 0xb9, 0x88, 0x63, 0xc8,
0xd1, 0xb7, 0x96, 0x8f, 0x5e, 0x65, 0xe8, 0x40, 0x46, 0x07, 0x00, 0x63, 0xdb, 0x9a, 0xfb, 0xd6, 0x47, 0x91, 0xf7, 0x0b, 0x3f, 0xf6, 0xde, 0x13, 0xde, 0x89, 0x8c, 0x1e, 0x02, 0x2c, 0x03, 0x7f,
0x35, 0xcf, 0xca, 0x69, 0xa4, 0x63, 0x68, 0x5c, 0x60, 0x67, 0xec, 0x25, 0x4d, 0x65, 0x73, 0x62, 0x1b, 0x6b, 0xf7, 0xb9, 0x56, 0x3a, 0x31, 0x1e, 0x43, 0xef, 0x8c, 0x84, 0x4b, 0x5e, 0x34, 0x33,
0x29, 0xf8, 0x11, 0x7d, 0x16, 0x04, 0xe6, 0x05, 0x53, 0x19, 0x6c, 0xf6, 0xfc, 0x1a, 0x31, 0xad, 0xbd, 0x95, 0x8f, 0xc9, 0x6b, 0xf4, 0x51, 0x92, 0x18, 0x4f, 0xa6, 0x35, 0xbb, 0x3b, 0x89, 0x31,
0xe2, 0x5b, 0xa5, 0x7f, 0x04, 0x0e, 0xcd, 0xc0, 0xac, 0x12, 0xe7, 0xd1, 0x4a, 0x9c, 0x87, 0x95, 0x12, 0xa7, 0x38, 0xd6, 0x1a, 0xbf, 0x69, 0x92, 0xb7, 0x70, 0x16, 0x48, 0x9c, 0xaa, 0x48, 0x9c,
0x38, 0x8f, 0x54, 0x82, 0x49, 0xe8, 0x04, 0x36, 0x43, 0x1f, 0x3f, 0xe9, 0xd4, 0x69, 0x17, 0x3a, 0xa6, 0x48, 0x9c, 0x2a, 0x48, 0x08, 0x09, 0x3d, 0x85, 0xbb, 0x69, 0x8c, 0x6f, 0x1d, 0x16, 0x0e,
0x85, 0x6e, 0x65, 0xb0, 0xd3, 0xb3, 0xdc, 0x2e, 0xe8, 0xf3, 0x3b, 0xaa, 0xcd, 0x7a, 0xdc, 0x67, 0x6b, 0xa3, 0xda, 0xb8, 0x35, 0xbb, 0x3f, 0xf1, 0xa3, 0x2e, 0x38, 0xdb, 0x2b, 0x66, 0x6f, 0x26,
0x62, 0xc7, 0xa5, 0x9f, 0xa1, 0x3a, 0xd4, 0x34, 0xa6, 0xcc, 0x90, 0x80, 0x1b, 0x90, 0x82, 0x1f, 0xd2, 0x63, 0x32, 0xe6, 0xc6, 0x77, 0xd0, 0x9e, 0xdb, 0xb6, 0x38, 0x2c, 0x51, 0x40, 0x94, 0x10,
0xb9, 0x80, 0x98, 0x24, 0x9d, 0xc1, 0x06, 0xe7, 0x8f, 0x12, 0x34, 0xe0, 0x7b, 0xed, 0x3b, 0x45, 0x26, 0xaf, 0xa5, 0x84, 0x84, 0x64, 0x9c, 0xc0, 0x1d, 0x29, 0x1e, 0xa3, 0x68, 0x26, 0xf7, 0x3a,
0xbc, 0x53, 0x66, 0x51, 0xb8, 0x53, 0xd2, 0x1b, 0x01, 0x6a, 0xf2, 0x9c, 0x58, 0xb6, 0x13, 0x06, 0x0e, 0x8a, 0xe4, 0xa0, 0x42, 0x83, 0x25, 0x2b, 0xe3, 0x6f, 0x0d, 0x3a, 0xe6, 0x96, 0xfa, 0x41,
0xf6, 0x39, 0xd4, 0x99, 0xc0, 0xca, 0xef, 0xe5, 0x2a, 0x74, 0x0a, 0xdd, 0xb2, 0x92, 0xd0, 0xbf, 0x98, 0x26, 0xf6, 0x31, 0x74, 0x85, 0x20, 0xe0, 0xe7, 0xb5, 0x6a, 0xa3, 0xda, 0xb8, 0x89, 0x73,
0x47, 0xe3, 0xa3, 0xcd, 0x2d, 0xc4, 0x9b, 0x1b, 0x19, 0xab, 0xd5, 0xe8, 0x58, 0x49, 0x7f, 0x41, 0xe7, 0xff, 0xa1, 0xf1, 0x6a, 0x73, 0x6b, 0xd9, 0xe6, 0x2a, 0x63, 0xb5, 0xa7, 0x8e, 0x95, 0xf1,
0x3d, 0x1a, 0x5c, 0xbe, 0x2c, 0xd1, 0x97, 0xb0, 0x3d, 0x56, 0x75, 0x03, 0x6b, 0x89, 0xbc, 0x56, 0x04, 0xda, 0xe2, 0x1f, 0x26, 0xec, 0xda, 0x0d, 0x23, 0x28, 0x94, 0x01, 0x8c, 0x25, 0x01, 0x51,
0xbc, 0xbc, 0x96, 0x58, 0xa5, 0x13, 0xd8, 0x5a, 0x8c, 0xce, 0x90, 0x10, 0xe3, 0x4f, 0x57, 0x9b, 0x64, 0xc1, 0x13, 0xd8, 0xc7, 0xb1, 0x64, 0xfc, 0xae, 0x41, 0x57, 0xad, 0xae, 0x1a, 0x4c, 0xe8,
0x65, 0xf8, 0xfe, 0x17, 0x60, 0x3b, 0xcd, 0x43, 0xae, 0x09, 0xfc, 0x1e, 0x1a, 0x8b, 0x26, 0x3d, 0x4b, 0xe8, 0xca, 0x89, 0x70, 0x48, 0x6e, 0xf1, 0xf6, 0x0f, 0x12, 0x4f, 0x59, 0x8f, 0x73, 0xd6,
0x61, 0xea, 0x70, 0x43, 0x28, 0xa6, 0x0c, 0xa1, 0x7f, 0x4a, 0x49, 0x82, 0xa4, 0xaf, 0xa1, 0xbe, 0xc6, 0x53, 0x38, 0xd8, 0x4d, 0xe1, 0x9c, 0x52, 0xf7, 0x97, 0xe8, 0xb4, 0xcc, 0x1c, 0xff, 0xa5,
0x88, 0x2a, 0x6b, 0x4a, 0x91, 0xfb, 0xf4, 0x8a, 0x6c, 0x5e, 0x7d, 0x9f, 0x8e, 0xa0, 0x36, 0xd4, 0xc1, 0xbd, 0xa2, 0x08, 0x95, 0x86, 0xf9, 0x2b, 0xe8, 0xed, 0xfa, 0x7d, 0x4d, 0x58, 0x28, 0xcd,
0xb4, 0x53, 0x43, 0x7d, 0x98, 0x19, 0x19, 0x73, 0x18, 0x43, 0x3d, 0x0a, 0xcd, 0x79, 0x7b, 0xbe, 0xb3, 0x5e, 0x30, 0xcf, 0xb1, 0x15, 0xce, 0x3b, 0x19, 0x9f, 0x41, 0x77, 0x97, 0x55, 0xd9, 0x92,
0x01, 0xa4, 0xe0, 0xb9, 0xf5, 0x07, 0xce, 0x15, 0x85, 0x0c, 0xcd, 0x04, 0x3a, 0x67, 0x20, 0x47, 0x94, 0xab, 0xf9, 0x0e, 0xd5, 0xbc, 0xf3, 0xd5, 0x3c, 0x86, 0xce, 0xdc, 0xb6, 0x9f, 0xb9, 0xd6,
0x50, 0xbb, 0xc0, 0x4e, 0xae, 0x28, 0xfe, 0x15, 0xbc, 0x61, 0x88, 0xc6, 0x90, 0xbd, 0x9d, 0x32, 0xab, 0x8d, 0x5b, 0xb2, 0x86, 0x25, 0x74, 0x55, 0xd7, 0x8a, 0x17, 0xf1, 0x73, 0x40, 0x98, 0x6c,
0x34, 0x3c, 0x17, 0xde, 0xed, 0x89, 0x76, 0x74, 0x37, 0xd2, 0xd1, 0xeb, 0xa7, 0x7b, 0x43, 0x7f, 0xfd, 0x9f, 0x49, 0xa5, 0x2c, 0x4c, 0xe8, 0xe7, 0xbc, 0x2b, 0x26, 0x72, 0x0c, 0x9d, 0x33, 0x12,
0x08, 0x8e, 0x29, 0x49, 0x94, 0x74, 0x08, 0x15, 0x99, 0x66, 0xde, 0x93, 0xd2, 0x6f, 0x50, 0x0d, 0x56, 0xca, 0xe2, 0x0f, 0x8d, 0x0f, 0x83, 0x9a, 0x43, 0xf9, 0x76, 0x9a, 0xd0, 0xe3, 0x21, 0xf8,
0x61, 0xb9, 0x72, 0x10, 0xa1, 0xe4, 0x22, 0x2d, 0x93, 0x62, 0x6f, 0x51, 0x95, 0x94, 0x85, 0xec, 0x1d, 0x52, 0x3b, 0x7a, 0xa8, 0x74, 0xf4, 0xf9, 0xf5, 0x4b, 0xd7, 0x79, 0x95, 0x98, 0xe1, 0xbc,
0x5e, 0x19, 0x99, 0xca, 0xa6, 0x17, 0x6d, 0xd6, 0x2b, 0xa3, 0x42, 0x23, 0x86, 0xfd, 0xe0, 0xe1, 0x97, 0xf1, 0x08, 0x5a, 0x26, 0x2b, 0xbd, 0x72, 0x8d, 0x1f, 0xa1, 0x9d, 0xba, 0x55, 0xaa, 0x41,
0x1d, 0x41, 0x6d, 0x84, 0x0d, 0xec, 0xe0, 0xec, 0x75, 0x1b, 0x43, 0x3d, 0x0a, 0xcd, 0x39, 0x83, 0x87, 0x46, 0xe4, 0xe9, 0x7b, 0x8c, 0xf0, 0x9d, 0xd7, 0xc0, 0x3b, 0x39, 0xba, 0x32, 0x26, 0x33,
0x04, 0x5a, 0x11, 0x3e, 0x72, 0xe3, 0xca, 0xc2, 0x73, 0x08, 0x56, 0x27, 0x86, 0xca, 0x92, 0x5e, 0x3d, 0x9e, 0x6d, 0xd9, 0x2b, 0x63, 0x41, 0x2f, 0xe3, 0xfb, 0xbf, 0xa7, 0x77, 0x0c, 0x9d, 0x05,
0x53, 0xbc, 0xff, 0xd1, 0x1e, 0x94, 0x7f, 0x57, 0x4d, 0xcd, 0xc0, 0x6e, 0x35, 0x18, 0x77, 0x84, 0x71, 0x49, 0x48, 0xca, 0xe3, 0xb6, 0x84, 0xae, 0xea, 0x5a, 0x71, 0x06, 0x29, 0x0c, 0x14, 0x6a,
0x0a, 0xe9, 0x47, 0xd8, 0x4a, 0xf9, 0x62, 0xce, 0xf0, 0x6f, 0x01, 0xdd, 0xe0, 0x05, 0xd1, 0xcc, 0x8b, 0xf2, 0x2a, 0x43, 0x99, 0x08, 0xf6, 0x56, 0xae, 0xb5, 0x8e, 0xd9, 0x80, 0xff, 0x47, 0x47,
0x55, 0x7b, 0x96, 0x99, 0xa4, 0x5d, 0x50, 0x48, 0xd2, 0xae, 0xe4, 0xde, 0xf1, 0x84, 0xd7, 0x9c, 0xd0, 0xfc, 0xc9, 0xf2, 0x6c, 0x97, 0x44, 0x68, 0x08, 0x1a, 0x4a, 0x0f, 0x8c, 0x6f, 0xe0, 0xa0,
0x01, 0x7e, 0x0b, 0xcd, 0x0b, 0xec, 0xdc, 0x60, 0x63, 0x92, 0x8b, 0x8a, 0xfe, 0x13, 0xa0, 0x95, 0xe0, 0x89, 0x15, 0xd3, 0x7f, 0x01, 0xe8, 0x92, 0xec, 0x28, 0x67, 0x6b, 0x05, 0x9b, 0xd2, 0x7c,
0xc4, 0x7f, 0x5c, 0x22, 0x1a, 0xbc, 0x5d, 0x07, 0xff, 0x31, 0x8b, 0xbe, 0x82, 0xb2, 0x1a, 0x34, 0x1f, 0x39, 0xa5, 0x7c, 0x1f, 0x49, 0xd1, 0x1d, 0xcf, 0x45, 0xad, 0x98, 0xe0, 0x17, 0xd0, 0x3f,
0x13, 0xb5, 0x82, 0x24, 0xf8, 0x17, 0x93, 0xb8, 0x95, 0xa2, 0xa5, 0x04, 0xdd, 0x00, 0x9a, 0x26, 0x23, 0xe1, 0x25, 0x71, 0x57, 0x95, 0xa8, 0xe8, 0x4f, 0x0d, 0x06, 0x79, 0xff, 0xf7, 0x4b, 0x44,
0x38, 0x16, 0xed, 0x07, 0x87, 0x53, 0x19, 0x5c, 0x3c, 0x78, 0xc9, 0x4c, 0x09, 0xba, 0x84, 0xfa, 0xb3, 0x7f, 0x6e, 0x43, 0xfc, 0x5e, 0x8c, 0x3e, 0x85, 0xa6, 0x95, 0x34, 0x13, 0xed, 0x08, 0x5a,
0x34, 0x56, 0x2d, 0xb4, 0xcb, 0x61, 0xe2, 0x7d, 0x10, 0xf7, 0x96, 0x1b, 0x29, 0x41, 0x23, 0xd8, 0x7e, 0xf9, 0xd2, 0x0f, 0x0a, 0x4e, 0x19, 0x45, 0x97, 0x80, 0xd6, 0x39, 0x8e, 0x45, 0x0f, 0x12,
0x98, 0xf2, 0xa4, 0x89, 0xda, 0x89, 0xef, 0x07, 0x8e, 0x3e, 0x59, 0x62, 0xa1, 0x04, 0x0d, 0xa1, 0xe3, 0x42, 0x06, 0xd7, 0x1f, 0xbe, 0x4d, 0xcd, 0x28, 0x3a, 0x87, 0xee, 0x3a, 0x83, 0x16, 0x3a,
0xaa, 0x72, 0xbc, 0x85, 0x76, 0xb8, 0x82, 0xf0, 0xcb, 0x5f, 0x6c, 0xa7, 0x1b, 0x28, 0x41, 0x3f, 0x94, 0x7c, 0xb2, 0x7d, 0xd0, 0x8f, 0x6e, 0x56, 0x32, 0x8a, 0x16, 0x70, 0x67, 0x2d, 0x93, 0x26,
0x40, 0xcd, 0x8e, 0x92, 0x0e, 0x12, 0x83, 0xc3, 0x49, 0x2e, 0x13, 0x77, 0x97, 0xda, 0x28, 0x41, 0x1a, 0xe6, 0x9e, 0x9f, 0x04, 0xfa, 0xe0, 0x06, 0x0d, 0xa3, 0x68, 0x0e, 0x6d, 0x4b, 0xe2, 0x2d,
0x87, 0x50, 0xd2, 0xfd, 0x8d, 0x8b, 0x9a, 0xc1, 0x41, 0x6e, 0x75, 0x8b, 0xad, 0xa4, 0x92, 0xd5, 0x74, 0x5f, 0x02, 0x44, 0x5e, 0xfe, 0xfa, 0xb0, 0x58, 0xc1, 0x28, 0xfa, 0x1a, 0x3a, 0x81, 0x4a,
0x42, 0xe7, 0xd7, 0x61, 0x58, 0x8b, 0xf8, 0x86, 0x0d, 0x6b, 0x91, 0xdc, 0x9f, 0x43, 0xa8, 0x4e, 0x3a, 0x48, 0x4f, 0x8c, 0xf3, 0x5c, 0xa6, 0x1f, 0xde, 0xa8, 0x63, 0x14, 0x3d, 0x82, 0x86, 0x13,
0x39, 0xda, 0x0a, 0x6b, 0x11, 0x23, 0x42, 0xb1, 0x9d, 0x6e, 0x60, 0x2e, 0x34, 0x6e, 0xf3, 0x85, 0x6f, 0x5c, 0xd4, 0x4f, 0x0c, 0xa5, 0xd5, 0xad, 0x0f, 0xf2, 0x87, 0x02, 0x0b, 0x47, 0x5e, 0x87,
0x2e, 0x62, 0xab, 0x34, 0x74, 0x91, 0x58, 0x94, 0xd7, 0xd0, 0x50, 0xe3, 0x2b, 0x08, 0xed, 0xa5, 0x29, 0x16, 0xd9, 0x0d, 0x9b, 0x62, 0x91, 0xdf, 0x9f, 0x73, 0x68, 0xaf, 0x25, 0xda, 0x4a, 0xb1,
0xce, 0xa9, 0xbf, 0x0f, 0xc5, 0xfd, 0x17, 0xac, 0xac, 0x41, 0x34, 0xba, 0x31, 0xc2, 0x06, 0x25, 0xc8, 0x10, 0xa1, 0x3e, 0x2c, 0x56, 0x88, 0x10, 0xb6, 0xb4, 0xf9, 0xd2, 0x10, 0x99, 0x55, 0x9a,
0x17, 0x54, 0xd8, 0xa0, 0xb4, 0x35, 0x33, 0x84, 0xaa, 0xce, 0xbd, 0x9f, 0xc3, 0x04, 0x63, 0x4f, 0x86, 0xc8, 0x2d, 0xca, 0xe7, 0xd0, 0xb3, 0xb2, 0x2b, 0x08, 0x1d, 0x15, 0xce, 0x69, 0xbc, 0x0f,
0xfe, 0x30, 0xc1, 0xf8, 0x73, 0xfb, 0xb4, 0xf1, 0x6b, 0xad, 0xe7, 0xff, 0xfa, 0x3c, 0x66, 0x7f, 0xf5, 0x07, 0x6f, 0xd1, 0x8a, 0x06, 0x31, 0x75, 0x63, 0xa4, 0x0d, 0xca, 0x2f, 0xa8, 0xb4, 0x41,
0xee, 0x8b, 0xde, 0x4f, 0xcb, 0x2f, 0xde, 0x05, 0x00, 0x00, 0xff, 0xff, 0x85, 0x71, 0x6d, 0x1b, 0x45, 0x6b, 0x66, 0x0e, 0x6d, 0x47, 0x7a, 0x93, 0x4e, 0x0b, 0xcc, 0x7c, 0x3d, 0xa4, 0x05, 0x66,
0x9c, 0x0e, 0x00, 0x00, 0x5f, 0xbc, 0x9f, 0xf5, 0x7e, 0xe8, 0x4c, 0xe2, 0x0f, 0xd9, 0xc7, 0xe2, 0xe7, 0x65, 0x9d, 0x7f,
0xa5, 0x7e, 0xf2, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xdf, 0x16, 0xf8, 0xb5, 0xe7, 0x0e, 0x00,
0x00,
} }

View File

@ -42,9 +42,13 @@ message ImportFriendReq{
string FromUserID = 3; string FromUserID = 3;
string OpUserID = 4; string OpUserID = 4;
} }
message UserIDResult{
string UserID = 1;
int32 Result = 2;
}
message ImportFriendResp{ message ImportFriendResp{
CommonResp CommonResp = 1; CommonResp CommonResp = 1;
repeated string FailedFriendUserIDList = 2; repeated UserIDResult UserIDResultList = 2;
} }