mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-04-26 03:26:57 +08:00
Merge branch 'errcode' of github.com:OpenIMSDK/Open-IM-Server into errcode
Conflicts: pkg/common/db/relation/friend_model_k.go
This commit is contained in:
commit
c2fbcd1f22
@ -2,6 +2,7 @@ package convert
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"Open_IM/pkg/common/db/relation"
|
"Open_IM/pkg/common/db/relation"
|
||||||
|
"Open_IM/pkg/common/db/table"
|
||||||
sdk "Open_IM/pkg/proto/sdk_ws"
|
sdk "Open_IM/pkg/proto/sdk_ws"
|
||||||
utils "github.com/OpenIMSDK/open_utils"
|
utils "github.com/OpenIMSDK/open_utils"
|
||||||
"time"
|
"time"
|
||||||
@ -19,10 +20,10 @@ func getNumberOfGroupMember(groupID string) (int32, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type DBFriend struct {
|
type DBFriend struct {
|
||||||
*relation.Friend
|
*table.FriendModel
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewDBFriend(friend *relation.Friend) *DBFriend {
|
func NewDBFriend(friend *controller.Friend) *DBFriend {
|
||||||
return &DBFriend{Friend: friend}
|
return &DBFriend{Friend: friend}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,8 +45,8 @@ func NewFriendServer(port int) *friendServer {
|
|||||||
}
|
}
|
||||||
//mysql init
|
//mysql init
|
||||||
var mysql relation.Mysql
|
var mysql relation.Mysql
|
||||||
var model relation.Friend
|
var model relation.FriendGorm
|
||||||
err := mysql.InitConn().AutoMigrateModel(&model)
|
err := mysql.InitConn().AutoMigrateModel(&relation.FriendModel{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic("db init err:" + err.Error())
|
panic("db init err:" + err.Error())
|
||||||
}
|
}
|
||||||
@ -171,7 +171,7 @@ func (s *friendServer) RespondFriendApply(ctx context.Context, req *pbFriend.Res
|
|||||||
if err := check.Access(ctx, req.ToUserID); err != nil {
|
if err := check.Access(ctx, req.ToUserID); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
friendRequest := relation.FriendRequest{FromUserID: req.FromUserID, ToUserID: req.ToUserID, HandleMsg: req.HandleMsg, HandleResult: req.HandleResult}
|
friendRequest := controller.FriendRequest{FromUserID: req.FromUserID, ToUserID: req.ToUserID, HandleMsg: req.HandleMsg, HandleResult: req.HandleResult}
|
||||||
if req.HandleResult == constant.FriendResponseAgree {
|
if req.HandleResult == constant.FriendResponseAgree {
|
||||||
err := s.AgreeFriendRequest(ctx, &friendRequest)
|
err := s.AgreeFriendRequest(ctx, &friendRequest)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
package group
|
package group
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"Open_IM/pkg/common/constant"
|
"Open_IM/pkg/common/tracelog"
|
||||||
relation "Open_IM/pkg/common/db/mysql"
|
|
||||||
pbGroup "Open_IM/pkg/proto/group"
|
|
||||||
sdk_ws "Open_IM/pkg/proto/sdk_ws"
|
sdk_ws "Open_IM/pkg/proto/sdk_ws"
|
||||||
"Open_IM/pkg/utils"
|
"Open_IM/pkg/utils"
|
||||||
"context"
|
"context"
|
||||||
@ -12,32 +10,32 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
func getDBGroupRequest(ctx context.Context, req *pbGroup.GroupApplicationResponseReq) (dbGroupRequest *relation.GroupRequest) {
|
//func getDBGroupRequest(ctx context.Context, req *pbGroup.GroupApplicationResponseReq) (dbGroupRequest *relation.GroupRequest) {
|
||||||
dbGroupRequest = &relation.GroupRequest{}
|
// dbGroupRequest = &relation.GroupRequest{}
|
||||||
utils.CopyStructFields(&dbGroupRequest, req)
|
// utils.CopyStructFields(&dbGroupRequest, req)
|
||||||
dbGroupRequest.UserID = req.FromUserID
|
// dbGroupRequest.UserID = req.FromUserID
|
||||||
dbGroupRequest.HandleUserID = utils.OpUserID(ctx)
|
// dbGroupRequest.HandleUserID = utils.OpUserID(ctx)
|
||||||
dbGroupRequest.HandledTime = time.Now()
|
// dbGroupRequest.HandledTime = time.Now()
|
||||||
return dbGroupRequest
|
// return dbGroupRequest
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
func getDBGroupMember(ctx context.Context, groupID, userID string) (dbGroupMember *relation.GroupMember, err error) {
|
//func getDBGroupMember(ctx context.Context, groupID, userID string) (dbGroupMember *relation.GroupMember, err error) {
|
||||||
dbGroupMember = &relation.GroupMember{}
|
// dbGroupMember = &relation.GroupMember{}
|
||||||
|
//
|
||||||
member := relation.GroupMember{}
|
// member := relation.GroupMember{}
|
||||||
member.GroupID = groupID
|
// member.GroupID = groupID
|
||||||
member.UserID = userID
|
// member.UserID = userID
|
||||||
member.RoleLevel = constant.GroupOrdinaryUsers
|
// member.RoleLevel = constant.GroupOrdinaryUsers
|
||||||
member.OperatorUserID = utils.OpUserID(ctx)
|
// member.OperatorUserID = utils.OpUserID(ctx)
|
||||||
|
//
|
||||||
member.FaceURL = user.FaceURL
|
// member.FaceURL = user.FaceURL
|
||||||
member.Nickname = user.Nickname
|
// member.Nickname = user.Nickname
|
||||||
member.JoinSource = request.JoinSource
|
// member.JoinSource = request.JoinSource
|
||||||
member.InviterUserID = request.InviterUserID
|
// member.InviterUserID = request.InviterUserID
|
||||||
member.MuteEndTime = time.Unix(int64(time.Now().Second()), 0)
|
// member.MuteEndTime = time.Unix(int64(time.Now().Second()), 0)
|
||||||
|
//
|
||||||
return dbGroupMember, nil
|
// return dbGroupMember, nil
|
||||||
}
|
//}
|
||||||
|
|
||||||
func getUsersInfo(ctx context.Context, userIDs []string) ([]*sdk_ws.UserInfo, error) {
|
func getUsersInfo(ctx context.Context, userIDs []string) ([]*sdk_ws.UserInfo, error) {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
@ -59,7 +57,7 @@ func genGroupID(ctx context.Context, groupID string) string {
|
|||||||
if groupID != "" {
|
if groupID != "" {
|
||||||
return groupID
|
return groupID
|
||||||
}
|
}
|
||||||
groupID = utils.Md5(utils.OperationID(ctx) + strconv.FormatInt(time.Now().UnixNano(), 10))
|
groupID = utils.Md5(tracelog.GetOperationID(ctx) + strconv.FormatInt(time.Now().UnixNano(), 10))
|
||||||
bi := big.NewInt(0)
|
bi := big.NewInt(0)
|
||||||
bi.SetString(groupID[0:8], 16)
|
bi.SetString(groupID[0:8], 16)
|
||||||
groupID = bi.String()
|
groupID = bi.String()
|
||||||
|
@ -8,14 +8,15 @@ import (
|
|||||||
"Open_IM/pkg/common/db/cache"
|
"Open_IM/pkg/common/db/cache"
|
||||||
"Open_IM/pkg/common/db/controller"
|
"Open_IM/pkg/common/db/controller"
|
||||||
"Open_IM/pkg/common/db/relation"
|
"Open_IM/pkg/common/db/relation"
|
||||||
|
"Open_IM/pkg/common/db/table"
|
||||||
"Open_IM/pkg/common/db/unrelation"
|
"Open_IM/pkg/common/db/unrelation"
|
||||||
"Open_IM/pkg/common/log"
|
"Open_IM/pkg/common/log"
|
||||||
"Open_IM/pkg/common/middleware"
|
"Open_IM/pkg/common/middleware"
|
||||||
promePkg "Open_IM/pkg/common/prometheus"
|
promePkg "Open_IM/pkg/common/prometheus"
|
||||||
"Open_IM/pkg/common/token_verify"
|
"Open_IM/pkg/common/token_verify"
|
||||||
"Open_IM/pkg/common/tracelog"
|
"Open_IM/pkg/common/tracelog"
|
||||||
|
"fmt"
|
||||||
|
|
||||||
cp "Open_IM/internal/utils"
|
|
||||||
"Open_IM/pkg/getcdv3"
|
"Open_IM/pkg/getcdv3"
|
||||||
pbConversation "Open_IM/pkg/proto/conversation"
|
pbConversation "Open_IM/pkg/proto/conversation"
|
||||||
pbGroup "Open_IM/pkg/proto/group"
|
pbGroup "Open_IM/pkg/proto/group"
|
||||||
@ -54,7 +55,7 @@ func NewGroupServer(port int) *groupServer {
|
|||||||
//mysql init
|
//mysql init
|
||||||
var mysql relation.Mysql
|
var mysql relation.Mysql
|
||||||
var mongo unrelation.Mongo
|
var mongo unrelation.Mongo
|
||||||
var groupModel relation.Group
|
var groupModel table.GroupModel
|
||||||
var redis cache.RedisClient
|
var redis cache.RedisClient
|
||||||
err := mysql.InitConn().AutoMigrateModel(&groupModel)
|
err := mysql.InitConn().AutoMigrateModel(&groupModel)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -144,7 +145,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR
|
|||||||
return nil, constant.ErrArgs.Wrap("no group owner")
|
return nil, constant.ErrArgs.Wrap("no group owner")
|
||||||
}
|
}
|
||||||
var userIDs []string
|
var userIDs []string
|
||||||
for _, userID := range req.InitMemberList {
|
for _, userID := range req.InitMembers {
|
||||||
userIDs = append(userIDs, userID)
|
userIDs = append(userIDs, userID)
|
||||||
}
|
}
|
||||||
for _, userID := range req.AdminUserIDs {
|
for _, userID := range req.AdminUserIDs {
|
||||||
@ -170,7 +171,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR
|
|||||||
if err := callbackBeforeCreateGroup(ctx, req); err != nil {
|
if err := callbackBeforeCreateGroup(ctx, req); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
var group relation.Group
|
var group relation.GroupGorm
|
||||||
var groupMembers []*relation.GroupMember
|
var groupMembers []*relation.GroupMember
|
||||||
utils.CopyStructFields(&group, req.GroupInfo)
|
utils.CopyStructFields(&group, req.GroupInfo)
|
||||||
group.GroupID = genGroupID(ctx, req.GroupInfo.GroupID)
|
group.GroupID = genGroupID(ctx, req.GroupInfo.GroupID)
|
||||||
@ -179,12 +180,11 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
opUserID := utils.OpUserID(ctx)
|
|
||||||
joinGroup := func(userID string, roleLevel int32) error {
|
joinGroup := func(userID string, roleLevel int32) error {
|
||||||
user := userMap[userID]
|
user := userMap[userID]
|
||||||
groupMember := &relation.GroupMember{GroupID: group.GroupID, RoleLevel: roleLevel, OperatorUserID: opUserID, JoinSource: constant.JoinByInvitation, InviterUserID: opUserID}
|
groupMember := &relation.GroupMember{GroupID: group.GroupID, RoleLevel: roleLevel, OperatorUserID: tracelog.GetOpUserID(ctx), JoinSource: constant.JoinByInvitation, InviterUserID: tracelog.GetOpUserID(ctx)}
|
||||||
utils.CopyStructFields(&groupMember, user)
|
utils.CopyStructFields(&groupMember, user)
|
||||||
if err := CallbackBeforeMemberJoinGroup(ctx, utils.OperationID(ctx), groupMember, group.Ex); err != nil {
|
if err := CallbackBeforeMemberJoinGroup(ctx, tracelog.GetOperationID(ctx), groupMember, group.Ex); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
groupMembers = append(groupMembers, groupMember)
|
groupMembers = append(groupMembers, groupMember)
|
||||||
@ -198,13 +198,13 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for _, userID := range req.InitMemberList {
|
for _, userID := range req.InitMembers {
|
||||||
if err := joinGroup(userID, constant.GroupOrdinaryUsers); err != nil {
|
if err := joinGroup(userID, constant.GroupOrdinaryUsers); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if err := s.GroupInterface.CreateGroup(ctx, []*relation.Group{&group}, groupMembers); err != nil {
|
if err := s.GroupInterface.CreateGroup(ctx, []*relation.GroupGorm{&group}, groupMembers); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
utils.CopyStructFields(resp.GroupInfo, group)
|
utils.CopyStructFields(resp.GroupInfo, group)
|
||||||
@ -212,11 +212,11 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR
|
|||||||
if req.GroupInfo.GroupType == constant.SuperGroup {
|
if req.GroupInfo.GroupType == constant.SuperGroup {
|
||||||
go func() {
|
go func() {
|
||||||
for _, userID := range userIDs {
|
for _, userID := range userIDs {
|
||||||
chat.SuperGroupNotification(utils.OperationID(ctx), userID, userID)
|
chat.SuperGroupNotification(tracelog.GetOperationID(ctx), userID, userID)
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
} else {
|
} else {
|
||||||
chat.GroupCreatedNotification(utils.OperationID(ctx), utils.OpUserID(ctx), group.GroupID, userIDs)
|
chat.GroupCreatedNotification(tracelog.GetOperationID(ctx), tracelog.GetOpUserID(ctx), group.GroupID, userIDs)
|
||||||
}
|
}
|
||||||
return resp, nil
|
return resp, nil
|
||||||
}
|
}
|
||||||
@ -255,18 +255,18 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo
|
|||||||
groupNode.OwnerUserID = groupOwnerUserID[group.GroupID]
|
groupNode.OwnerUserID = groupOwnerUserID[group.GroupID]
|
||||||
groupNode.CreateTime = group.CreateTime.UnixMilli()
|
groupNode.CreateTime = group.CreateTime.UnixMilli()
|
||||||
groupNode.NotificationUpdateTime = group.NotificationUpdateTime.UnixMilli()
|
groupNode.NotificationUpdateTime = group.NotificationUpdateTime.UnixMilli()
|
||||||
resp.GroupList = append(resp.GroupList, &groupNode)
|
resp.Groups = append(resp.Groups, &groupNode)
|
||||||
}
|
}
|
||||||
resp.Total = int32(len(resp.GroupList))
|
resp.Total = int32(len(resp.Groups))
|
||||||
return resp, nil
|
return resp, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
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) {
|
||||||
resp := &pbGroup.InviteUserToGroupResp{}
|
resp := &pbGroup.InviteUserToGroupResp{}
|
||||||
if len(req.InvitedUserIDList) == 0 {
|
if len(req.InvitedUserIDs) == 0 {
|
||||||
return nil, constant.ErrArgs.Wrap("user empty")
|
return nil, constant.ErrArgs.Wrap("user empty")
|
||||||
}
|
}
|
||||||
if utils.IsDuplicateID(req.InvitedUserIDList) {
|
if utils.IsDuplicateID(req.InvitedUserIDs) {
|
||||||
return nil, constant.ErrArgs.Wrap("userID duplicate")
|
return nil, constant.ErrArgs.Wrap("userID duplicate")
|
||||||
}
|
}
|
||||||
group, err := s.GroupInterface.TakeGroupByID(ctx, req.GroupID)
|
group, err := s.GroupInterface.TakeGroupByID(ctx, req.GroupID)
|
||||||
@ -284,30 +284,30 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite
|
|||||||
for i, member := range members {
|
for i, member := range members {
|
||||||
memberMap[member.GroupID] = members[i]
|
memberMap[member.GroupID] = members[i]
|
||||||
}
|
}
|
||||||
for _, userID := range req.InvitedUserIDList {
|
for _, userID := range req.InvitedUserIDs {
|
||||||
if _, ok := memberMap[userID]; ok {
|
if _, ok := memberMap[userID]; ok {
|
||||||
return nil, constant.ErrArgs.Wrap("user in group " + userID)
|
return nil, constant.ErrArgs.Wrap("user in group " + userID)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
userMap, err := getUserMap(ctx, req.InvitedUserIDList)
|
userMap, err := getUserMap(ctx, req.InvitedUserIDs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
for _, userID := range req.InvitedUserIDList {
|
for _, userID := range req.InvitedUserIDs {
|
||||||
if _, ok := userMap[userID]; !ok {
|
if _, ok := userMap[userID]; !ok {
|
||||||
return nil, constant.ErrUserIDNotFound.Wrap(userID)
|
return nil, constant.ErrUserIDNotFound.Wrap(userID)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if group.NeedVerification == constant.AllNeedVerification {
|
if group.NeedVerification == constant.AllNeedVerification {
|
||||||
if !token_verify.IsAppManagerUid(ctx) {
|
if !token_verify.IsAppManagerUid(ctx) {
|
||||||
opUserID := utils.OpUserID(ctx)
|
opUserID := tracelog.GetOpUserID(ctx)
|
||||||
member, ok := memberMap[opUserID]
|
member, ok := memberMap[opUserID]
|
||||||
if ok {
|
if !ok {
|
||||||
return nil, constant.ErrNoPermission.Wrap("not in group")
|
return nil, constant.ErrNoPermission.Wrap("not in group")
|
||||||
}
|
}
|
||||||
if !(member.RoleLevel == constant.GroupOwner || member.RoleLevel == constant.GroupAdmin) {
|
if !(member.RoleLevel == constant.GroupOwner || member.RoleLevel == constant.GroupAdmin) {
|
||||||
var requests []*relation.GroupRequest
|
var requests []*relation.GroupRequest
|
||||||
for _, userID := range req.InvitedUserIDList {
|
for _, userID := range req.InvitedUserIDs {
|
||||||
requests = append(requests, &relation.GroupRequest{
|
requests = append(requests, &relation.GroupRequest{
|
||||||
UserID: userID,
|
UserID: userID,
|
||||||
GroupID: req.GroupID,
|
GroupID: req.GroupID,
|
||||||
@ -331,24 +331,25 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if group.GroupType == constant.SuperGroup {
|
if group.GroupType == constant.SuperGroup {
|
||||||
if err := s.GroupInterface.AddUserToSuperGroup(ctx, req.GroupID, req.InvitedUserIDList); err != nil {
|
if err := s.GroupInterface.AddUserToSuperGroup(ctx, req.GroupID, req.InvitedUserIDs); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
for _, userID := range req.InvitedUserIDList {
|
for _, userID := range req.InvitedUserIDs {
|
||||||
chat.SuperGroupNotification(utils.OperationID(ctx), userID, userID)
|
chat.SuperGroupNotification(tracelog.GetOperationID(ctx), userID, userID)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
opUserID := tracelog.GetOpUserID(ctx)
|
||||||
var groupMembers []*relation.GroupMember
|
var groupMembers []*relation.GroupMember
|
||||||
for _, userID := range req.InvitedUserIDList {
|
for _, userID := range req.InvitedUserIDs {
|
||||||
user := userMap[userID]
|
user := userMap[userID]
|
||||||
var member relation.GroupMember
|
var member relation.GroupMember
|
||||||
utils.CopyStructFields(&member, user)
|
utils.CopyStructFields(&member, user)
|
||||||
member.GroupID = req.GroupID
|
member.GroupID = req.GroupID
|
||||||
member.RoleLevel = constant.GroupOrdinaryUsers
|
member.RoleLevel = constant.GroupOrdinaryUsers
|
||||||
member.OperatorUserID = utils.OpUserID(ctx)
|
member.OperatorUserID = opUserID
|
||||||
member.InviterUserID = utils.OpUserID(ctx)
|
member.InviterUserID = opUserID
|
||||||
member.JoinSource = constant.JoinByInvitation
|
member.JoinSource = constant.JoinByInvitation
|
||||||
if err := CallbackBeforeMemberJoinGroup(ctx, utils.OperationID(ctx), &member, group.Ex); err != nil {
|
if err := CallbackBeforeMemberJoinGroup(ctx, tracelog.GetOperationID(ctx), &member, group.Ex); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
groupMembers = append(groupMembers, &member)
|
groupMembers = append(groupMembers, &member)
|
||||||
@ -356,7 +357,7 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite
|
|||||||
if err := s.GroupInterface.CreateGroupMember(ctx, groupMembers); err != nil {
|
if err := s.GroupInterface.CreateGroupMember(ctx, groupMembers); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
chat.MemberInvitedNotification(utils.OperationID(ctx), req.GroupID, utils.OpUserID(ctx), req.Reason, req.InvitedUserIDList)
|
chat.MemberInvitedNotification(tracelog.GetOperationID(ctx), req.GroupID, tracelog.GetOpUserID(ctx), req.Reason, req.InvitedUserIDs)
|
||||||
}
|
}
|
||||||
return resp, nil
|
return resp, nil
|
||||||
}
|
}
|
||||||
@ -379,7 +380,7 @@ func (s *groupServer) GetGroupAllMember(ctx context.Context, req *pbGroup.GetGro
|
|||||||
for _, member := range members {
|
for _, member := range members {
|
||||||
var node open_im_sdk.GroupMemberFullInfo
|
var node open_im_sdk.GroupMemberFullInfo
|
||||||
utils.CopyStructFields(&node, member)
|
utils.CopyStructFields(&node, member)
|
||||||
resp.MemberList = append(resp.MemberList, &node)
|
resp.Members = append(resp.Members, &node)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return resp, nil
|
return resp, nil
|
||||||
@ -387,20 +388,14 @@ func (s *groupServer) GetGroupAllMember(ctx context.Context, req *pbGroup.GetGro
|
|||||||
|
|
||||||
func (s *groupServer) GetGroupMemberList(ctx context.Context, req *pbGroup.GetGroupMemberListReq) (*pbGroup.GetGroupMemberListResp, error) {
|
func (s *groupServer) GetGroupMemberList(ctx context.Context, req *pbGroup.GetGroupMemberListReq) (*pbGroup.GetGroupMemberListResp, error) {
|
||||||
resp := &pbGroup.GetGroupMemberListResp{}
|
resp := &pbGroup.GetGroupMemberListResp{}
|
||||||
memberList, err := s.GroupInterface.GetGroupMemberFilterList(ctx, req.GroupID, req.Filter, req.NextSeq, 30)
|
members, err := s.GroupInterface.GetGroupMemberFilterList(ctx, req.GroupID, req.Filter, req.Pagination.PageNumber, req.Pagination.ShowNumber)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
for _, v := range memberList {
|
for _, member := range members {
|
||||||
var node open_im_sdk.GroupMemberFullInfo
|
var info open_im_sdk.GroupMemberFullInfo
|
||||||
utils.CopyStructFields(&node, &v)
|
utils.CopyStructFields(&info, &member)
|
||||||
resp.MemberList = append(resp.MemberList, &node)
|
resp.Members = append(resp.Members, &info)
|
||||||
}
|
|
||||||
//db operate get db sorted by join time
|
|
||||||
if int32(len(memberList)) < 30 {
|
|
||||||
resp.NextSeq = 0
|
|
||||||
} else {
|
|
||||||
resp.NextSeq = req.NextSeq + int32(len(memberList))
|
|
||||||
}
|
}
|
||||||
return resp, nil
|
return resp, nil
|
||||||
}
|
}
|
||||||
@ -415,132 +410,86 @@ func (s *groupServer) getGroupUserLevel(groupID, userID string) (int, error) {
|
|||||||
if opInfo.RoleLevel == constant.GroupOrdinaryUsers {
|
if opInfo.RoleLevel == constant.GroupOrdinaryUsers {
|
||||||
opFlag = 0
|
opFlag = 0
|
||||||
} else if opInfo.RoleLevel == constant.GroupOwner {
|
} else if opInfo.RoleLevel == constant.GroupOwner {
|
||||||
opFlag = 2 //owner
|
opFlag = 2 // owner
|
||||||
} else {
|
} else {
|
||||||
opFlag = 3 //admin
|
opFlag = 3 // admin
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
opFlag = 1 //app manager
|
opFlag = 1 // app manager
|
||||||
}
|
}
|
||||||
return opFlag, nil
|
return opFlag, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGroupMemberReq) (*pbGroup.KickGroupMemberResp, error) {
|
func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGroupMemberReq) (*pbGroup.KickGroupMemberResp, error) {
|
||||||
resp := &pbGroup.KickGroupMemberResp{}
|
resp := &pbGroup.KickGroupMemberResp{}
|
||||||
|
group, err := s.GroupInterface.TakeGroupByID(ctx, req.GroupID)
|
||||||
groupInfo, err := rocksCache.GetGroupInfoFromCache(ctx, req.GroupID)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
var okUserIDList []string
|
if len(req.KickedUserIDs) == 0 {
|
||||||
if groupInfo.GroupType != constant.SuperGroup {
|
return nil, constant.ErrArgs.Wrap("KickedUserIDs empty")
|
||||||
opFlag := 0
|
|
||||||
if !token_verify.IsManagerUserID(utils.OpUserID(ctx)) {
|
|
||||||
opInfo, err := rocksCache.GetGroupMemberInfoFromCache(ctx, req.GroupID, utils.OpUserID(ctx))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if opInfo.RoleLevel == constant.GroupOrdinaryUsers {
|
|
||||||
return nil, utils.Wrap(constant.ErrNoPermission, "")
|
|
||||||
} else if opInfo.RoleLevel == constant.GroupOwner {
|
|
||||||
opFlag = 2 //owner
|
|
||||||
} else {
|
|
||||||
opFlag = 3 //admin
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
opFlag = 1 //app manager
|
|
||||||
}
|
|
||||||
|
|
||||||
//op is group owner?
|
|
||||||
if len(req.KickedUserIDList) == 0 {
|
|
||||||
//log.NewError(req.OperationID, "failed, kick list 0")
|
|
||||||
//return &pbGroup.KickGroupMemberResp{ErrCode: constant.ErrArgs.ErrCode, ErrMsg: constant.ErrArgs.ErrMsg}, nil
|
|
||||||
return nil, utils.Wrap(constant.ErrArgs, "")
|
|
||||||
}
|
|
||||||
if err := s.DelGroupAndUserCache(ctx, req.GroupID, req.KickedUserIDList); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
//remove
|
|
||||||
for _, v := range req.KickedUserIDList {
|
|
||||||
kickedInfo, err := rocksCache.GetGroupMemberInfoFromCache(ctx, req.GroupID, v)
|
|
||||||
if err != nil {
|
|
||||||
resp.Id2ResultList = append(resp.Id2ResultList, &pbGroup.Id2Result{UserID: v, Result: -1})
|
|
||||||
tracelog.SetCtxInfo(ctx, "GetGroupMemberInfoFromCache", err, "groupID", req.GroupID, "userID", v)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
if kickedInfo.RoleLevel == constant.GroupAdmin && opFlag == 3 {
|
|
||||||
resp.Id2ResultList = append(resp.Id2ResultList, &pbGroup.Id2Result{UserID: v, Result: -1})
|
|
||||||
tracelog.SetCtxInfo(ctx, "", nil, "msg", "is constant.GroupAdmin, can't kicked", "groupID", req.GroupID, "userID", v)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if kickedInfo.RoleLevel == constant.GroupOwner && opFlag != 1 {
|
|
||||||
resp.Id2ResultList = append(resp.Id2ResultList, &pbGroup.Id2Result{UserID: v, Result: -1})
|
|
||||||
tracelog.SetCtxInfo(ctx, "", nil, "msg", "is constant.GroupOwner, can't kicked", "groupID", req.GroupID, "userID", v)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
err = relation.DeleteGroupMemberByGroupIDAndUserID(req.GroupID, v)
|
|
||||||
tracelog.SetCtxInfo(ctx, "RemoveGroupMember", err, "groupID", req.GroupID, "userID", v)
|
|
||||||
if err != nil {
|
|
||||||
log.NewError(utils.OperationID(ctx), "RemoveGroupMember failed ", err.Error(), req.GroupID, v)
|
|
||||||
resp.Id2ResultList = append(resp.Id2ResultList, &pbGroup.Id2Result{UserID: v, Result: -1})
|
|
||||||
} else {
|
|
||||||
resp.Id2ResultList = append(resp.Id2ResultList, &pbGroup.Id2Result{UserID: v, Result: 0})
|
|
||||||
okUserIDList = append(okUserIDList, v)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var reqPb pbUser.SetConversationReq
|
|
||||||
var c pbConversation.Conversation
|
|
||||||
for _, v := range okUserIDList {
|
|
||||||
reqPb.OperationID = utils.OperationID(ctx)
|
|
||||||
c.OwnerUserID = v
|
|
||||||
c.ConversationID = utils.GetConversationIDBySessionType(req.GroupID, constant.GroupChatType)
|
|
||||||
c.ConversationType = constant.GroupChatType
|
|
||||||
c.GroupID = req.GroupID
|
|
||||||
c.IsNotInGroup = true
|
|
||||||
reqPb.Conversation = &c
|
|
||||||
etcdConn, err := getcdv3.GetConn(ctx, config.Config.RpcRegisterName.OpenImUserName)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
client := pbUser.NewUserClient(etcdConn)
|
|
||||||
respPb, err := client.SetConversation(context.Background(), &reqPb)
|
|
||||||
tracelog.SetCtxInfo(ctx, "SetConversation", err, "req", &reqPb, "resp", respPb)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
okUserIDList = req.KickedUserIDList
|
|
||||||
if err := db.DB.RemoverUserFromSuperGroup(req.GroupID, okUserIDList); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
if utils.IsDuplicateStringSlice(req.KickedUserIDs) {
|
||||||
if groupInfo.GroupType != constant.SuperGroup {
|
return nil, constant.ErrArgs.Wrap("KickedUserIDs duplicate")
|
||||||
for _, userID := range okUserIDList {
|
}
|
||||||
if err := rocksCache.DelGroupMemberInfoFromCache(ctx, req.GroupID, userID); err != nil {
|
opUserID := tracelog.GetOpUserID(ctx)
|
||||||
tracelog.SetCtxInfo(ctx, "DelGroupMemberInfoFromCache", err, "groupID", req.GroupID, "userID", userID)
|
if utils.IsContain(opUserID, req.KickedUserIDs) {
|
||||||
}
|
return nil, constant.ErrArgs.Wrap("opUserID in KickedUserIDs")
|
||||||
}
|
}
|
||||||
chat.MemberKickedNotification(req, okUserIDList)
|
if group.GroupType == constant.SuperGroup {
|
||||||
} else {
|
if err := s.GroupInterface.DelSuperGroupMember(ctx, req.GroupID, req.KickedUserIDs); err != nil {
|
||||||
for _, userID := range okUserIDList {
|
return nil, err
|
||||||
if err = rocksCache.DelJoinedSuperGroupIDListFromCache(ctx, userID); err != nil {
|
|
||||||
tracelog.SetCtxInfo(ctx, "DelGroupMemberInfoFromCache", err, "userID", userID)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
go func() {
|
go func() {
|
||||||
for _, v := range req.KickedUserIDList {
|
for _, userID := range req.KickedUserIDs {
|
||||||
chat.SuperGroupNotification(utils.OperationID(ctx), v, v)
|
chat.SuperGroupNotification(tracelog.GetOperationID(ctx), userID, userID)
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
} else {
|
||||||
|
members, err := s.GroupInterface.FindGroupMembersByID(ctx, req.GroupID, append(req.KickedUserIDs, opUserID))
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
memberMap := make(map[string]*relation.GroupMember)
|
||||||
|
for i, member := range members {
|
||||||
|
memberMap[member.UserID] = members[i]
|
||||||
|
}
|
||||||
|
for _, userID := range req.KickedUserIDs {
|
||||||
|
if _, ok := memberMap[userID]; !ok {
|
||||||
|
return nil, constant.ErrUserIDNotFound.Wrap(userID)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !token_verify.IsAppManagerUid(ctx) {
|
||||||
|
member := memberMap[opUserID]
|
||||||
|
if member == nil {
|
||||||
|
return nil, constant.ErrNoPermission.Wrap(fmt.Sprintf("opUserID %s no in group", opUserID))
|
||||||
|
}
|
||||||
|
switch member.RoleLevel {
|
||||||
|
case constant.GroupOwner:
|
||||||
|
case constant.GroupAdmin:
|
||||||
|
for _, member := range members {
|
||||||
|
if member.UserID == opUserID {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if member.RoleLevel == constant.GroupOwner || member.RoleLevel == constant.GroupAdmin {
|
||||||
|
return nil, constant.ErrNoPermission.Wrap("userID:" + member.UserID)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return nil, constant.ErrNoPermission.Wrap("opUserID is OrdinaryUser")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if err := s.GroupInterface.DelGroupMember(ctx, group.GroupID, req.KickedUserIDs); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
chat.MemberKickedNotification(req, req.KickedUserIDs)
|
||||||
}
|
}
|
||||||
return resp, nil
|
return resp, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *groupServer) GetGroupMembersInfo(ctx context.Context, req *pbGroup.GetGroupMembersInfoReq) (*pbGroup.GetGroupMembersInfoResp, error) {
|
func (s *groupServer) GetGroupMembersInfo(ctx context.Context, req *pbGroup.GetGroupMembersInfoReq) (*pbGroup.GetGroupMembersInfoResp, error) {
|
||||||
resp := &pbGroup.GetGroupMembersInfoResp{}
|
resp := &pbGroup.GetGroupMembersInfoResp{}
|
||||||
members, err := s.GroupInterface.GetGroupMemberListByUserID(ctx, req.GroupID, req.MemberList)
|
members, err := s.GroupInterface.GetGroupMemberListByUserID(ctx, req.GroupID, req.Members)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -548,7 +497,7 @@ func (s *groupServer) GetGroupMembersInfo(ctx context.Context, req *pbGroup.GetG
|
|||||||
var memberNode open_im_sdk.GroupMemberFullInfo
|
var memberNode open_im_sdk.GroupMemberFullInfo
|
||||||
utils.CopyStructFields(&memberNode, member)
|
utils.CopyStructFields(&memberNode, member)
|
||||||
memberNode.JoinTime = member.JoinTime.UnixMilli()
|
memberNode.JoinTime = member.JoinTime.UnixMilli()
|
||||||
resp.MemberList = append(resp.MemberList, &memberNode)
|
resp.Members = append(resp.Members, &memberNode)
|
||||||
}
|
}
|
||||||
return resp, nil
|
return resp, nil
|
||||||
}
|
}
|
||||||
@ -578,15 +527,51 @@ func FillPublicUserInfoByUserID(operationID, userID string, userInfo *open_im_sd
|
|||||||
|
|
||||||
func (s *groupServer) GetGroupApplicationList(ctx context.Context, req *pbGroup.GetGroupApplicationListReq) (*pbGroup.GetGroupApplicationListResp, error) {
|
func (s *groupServer) GetGroupApplicationList(ctx context.Context, req *pbGroup.GetGroupApplicationListReq) (*pbGroup.GetGroupApplicationListResp, error) {
|
||||||
resp := &pbGroup.GetGroupApplicationListResp{}
|
resp := &pbGroup.GetGroupApplicationListResp{}
|
||||||
reply, err := relation.GetRecvGroupApplicationList(req.FromUserID)
|
groupRequests, err := s.GroupInterface.GetGroupRecvApplicationList(ctx, req.FromUserID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
if len(groupRequests) == 0 {
|
||||||
|
return resp, nil
|
||||||
|
}
|
||||||
|
var (
|
||||||
|
userIDs []string
|
||||||
|
groupIDs []string
|
||||||
|
)
|
||||||
|
for _, gr := range groupRequests {
|
||||||
|
userIDs = append(userIDs, gr.UserID)
|
||||||
|
groupIDs = append(groupIDs, gr.GroupID)
|
||||||
|
}
|
||||||
|
userMap, err := getUserMap(ctx, userIDs)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
for _, userID := range userIDs {
|
||||||
|
if _, ok := userMap[userID]; !ok {
|
||||||
|
return nil, constant.ErrUserIDNotFound.Wrap(userID)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
groups, err := s.GroupInterface.FindGroupsByID(ctx, groupIDs)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
groupMap := make(map[string]*relation.GroupGorm)
|
||||||
|
for i, group := range groups {
|
||||||
|
groupMap[group.GroupID] = groups[i]
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, gr := range groupRequests {
|
||||||
|
groupRequest := open_im_sdk.GroupRequest{UserInfo: &open_im_sdk.PublicUserInfo{}, GroupInfo: &open_im_sdk.GroupInfo{}}
|
||||||
|
utils.CopyStructFields(&groupRequest, gr)
|
||||||
|
getUserMap()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
var errResult error
|
var errResult error
|
||||||
tracelog.SetCtxInfo(ctx, "GetRecvGroupApplicationList", nil, " FromUserID: ", req.FromUserID, "GroupApplicationList: ", reply)
|
tracelog.SetCtxInfo(ctx, "GetRecvGroupApplicationList", nil, " FromUserID: ", req.FromUserID, "GroupApplicationList: ", groupRequests)
|
||||||
for _, v := range reply {
|
for _, v := range groupRequests {
|
||||||
node := open_im_sdk.GroupRequest{UserInfo: &open_im_sdk.PublicUserInfo{}, GroupInfo: &open_im_sdk.GroupInfo{}}
|
node := open_im_sdk.GroupRequest{UserInfo: &open_im_sdk.PublicUserInfo{}, GroupInfo: &open_im_sdk.GroupInfo{}}
|
||||||
err := FillGroupInfoByGroupID(utils.OperationID(ctx), v.GroupID, node.GroupInfo)
|
err := FillGroupInfoByGroupID(tracelog.GetOperationID(ctx), v.GroupID, node.GroupInfo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !errors.Is(errors.Unwrap(err), constant.ErrDismissedAlready) {
|
if !errors.Is(errors.Unwrap(err), constant.ErrDismissedAlready) {
|
||||||
errResult = err
|
errResult = err
|
||||||
@ -594,7 +579,7 @@ func (s *groupServer) GetGroupApplicationList(ctx context.Context, req *pbGroup.
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
tracelog.SetCtxInfo(ctx, "FillGroupInfoByGroupID ", nil, " groupID: ", v.GroupID, " groupInfo: ", node.GroupInfo)
|
tracelog.SetCtxInfo(ctx, "FillGroupInfoByGroupID ", nil, " groupID: ", v.GroupID, " groupInfo: ", node.GroupInfo)
|
||||||
err = FillPublicUserInfoByUserID(utils.OperationID(ctx), v.UserID, node.UserInfo)
|
err = FillPublicUserInfoByUserID(tracelog.GetOperationID(ctx), v.UserID, node.UserInfo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errResult = err
|
errResult = err
|
||||||
continue
|
continue
|
||||||
@ -639,7 +624,7 @@ func CheckPermission(ctx context.Context, groupID string, userID string) (err er
|
|||||||
func (s *groupServer) GroupApplicationResponse(ctx context.Context, req *pbGroup.GroupApplicationResponseReq) (*pbGroup.GroupApplicationResponseResp, error) {
|
func (s *groupServer) GroupApplicationResponse(ctx context.Context, req *pbGroup.GroupApplicationResponseReq) (*pbGroup.GroupApplicationResponseResp, error) {
|
||||||
resp := &pbGroup.GroupApplicationResponseResp{}
|
resp := &pbGroup.GroupApplicationResponseResp{}
|
||||||
|
|
||||||
if err := CheckPermission(ctx, req.GroupID, utils.OpUserID(ctx)); err != nil {
|
if err := CheckPermission(ctx, req.GroupID, tracelog.GetOpUserID(ctx)); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
groupRequest := getDBGroupRequest(ctx, req)
|
groupRequest := getDBGroupRequest(ctx, req)
|
||||||
@ -655,7 +640,7 @@ func (s *groupServer) GroupApplicationResponse(ctx context.Context, req *pbGroup
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
err = CallbackBeforeMemberJoinGroup(ctx, utils.OperationID(ctx), member, groupInfo.Ex)
|
err = CallbackBeforeMemberJoinGroup(ctx, tracelog.GetOperationID(ctx), member, groupInfo.Ex)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -663,12 +648,12 @@ func (s *groupServer) GroupApplicationResponse(ctx context.Context, req *pbGroup
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
etcdCacheConn, err := fault_tolerant.GetDefaultConn(config.Config.RpcRegisterName.OpenImCacheName, utils.OperationID(ctx))
|
etcdCacheConn, err := fault_tolerant.GetDefaultConn(config.Config.RpcRegisterName.OpenImCacheName, tracelog.GetOperationID(ctx))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
cacheClient := pbCache.NewCacheClient(etcdCacheConn)
|
cacheClient := pbCache.NewCacheClient(etcdCacheConn)
|
||||||
cacheResp, err := cacheClient.DelGroupMemberIDListFromCache(context.Background(), &pbCache.DelGroupMemberIDListFromCacheReq{OperationID: utils.OperationID(ctx), GroupID: req.GroupID})
|
cacheResp, err := cacheClient.DelGroupMemberIDListFromCache(context.Background(), &pbCache.DelGroupMemberIDListFromCacheReq{OperationID: tracelog.GetOperationID(ctx), GroupID: req.GroupID})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -695,7 +680,7 @@ func (s *groupServer) GroupApplicationResponse(ctx context.Context, req *pbGroup
|
|||||||
func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) (*pbGroup.JoinGroupResp, error) {
|
func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) (*pbGroup.JoinGroupResp, error) {
|
||||||
resp := &pbGroup.JoinGroupResp{}
|
resp := &pbGroup.JoinGroupResp{}
|
||||||
|
|
||||||
if _, err := relation.GetUserByUserID(utils.OpUserID(ctx)); err != nil {
|
if _, err := relation.GetUserByUserID(tracelog.GetOpUserID(ctx)); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
groupInfo, err := rocksCache.GetGroupInfoFromCache(ctx, req.GroupID)
|
groupInfo, err := rocksCache.GetGroupInfoFromCache(ctx, req.GroupID)
|
||||||
@ -708,17 +693,17 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq)
|
|||||||
|
|
||||||
if groupInfo.NeedVerification == constant.Directly {
|
if groupInfo.NeedVerification == constant.Directly {
|
||||||
if groupInfo.GroupType != constant.SuperGroup {
|
if groupInfo.GroupType != constant.SuperGroup {
|
||||||
us, err := relation.GetUserByUserID(utils.OpUserID(ctx))
|
us, err := relation.GetUserByUserID(tracelog.GetOpUserID(ctx))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
//to group member
|
//to group member
|
||||||
groupMember := relation.GroupMember{GroupID: req.GroupID, RoleLevel: constant.GroupOrdinaryUsers, OperatorUserID: utils.OpUserID(ctx)}
|
groupMember := relation.GroupMember{GroupID: req.GroupID, RoleLevel: constant.GroupOrdinaryUsers, OperatorUserID: tracelog.GetOpUserID(ctx)}
|
||||||
utils.CopyStructFields(&groupMember, us)
|
utils.CopyStructFields(&groupMember, us)
|
||||||
if err := CallbackBeforeMemberJoinGroup(ctx, utils.OperationID(ctx), &groupMember, groupInfo.Ex); err != nil {
|
if err := CallbackBeforeMemberJoinGroup(ctx, tracelog.GetOperationID(ctx), &groupMember, groupInfo.Ex); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if err := s.DelGroupAndUserCache(ctx, req.GroupID, []string{utils.OpUserID(ctx)}); err != nil {
|
if err := s.DelGroupAndUserCache(ctx, req.GroupID, []string{tracelog.GetOpUserID(ctx)}); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
err = relation.InsertIntoGroupMember(groupMember)
|
err = relation.InsertIntoGroupMember(groupMember)
|
||||||
@ -734,8 +719,8 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq)
|
|||||||
}
|
}
|
||||||
var reqPb pbUser.SetConversationReq
|
var reqPb pbUser.SetConversationReq
|
||||||
var c pbConversation.Conversation
|
var c pbConversation.Conversation
|
||||||
reqPb.OperationID = utils.OperationID(ctx)
|
reqPb.OperationID = tracelog.GetOperationID(ctx)
|
||||||
c.OwnerUserID = utils.OpUserID(ctx)
|
c.OwnerUserID = tracelog.GetOpUserID(ctx)
|
||||||
c.ConversationID = utils.GetConversationIDBySessionType(req.GroupID, sessionType)
|
c.ConversationID = utils.GetConversationIDBySessionType(req.GroupID, sessionType)
|
||||||
c.ConversationType = int32(sessionType)
|
c.ConversationType = int32(sessionType)
|
||||||
c.GroupID = req.GroupID
|
c.GroupID = req.GroupID
|
||||||
@ -749,7 +734,7 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq)
|
|||||||
client := pbUser.NewUserClient(etcdConn)
|
client := pbUser.NewUserClient(etcdConn)
|
||||||
respPb, err := client.SetConversation(context.Background(), &reqPb)
|
respPb, err := client.SetConversation(context.Background(), &reqPb)
|
||||||
tracelog.SetCtxInfo(ctx, "SetConversation", err, "req", reqPb, "resp", respPb)
|
tracelog.SetCtxInfo(ctx, "SetConversation", err, "req", reqPb, "resp", respPb)
|
||||||
chat.MemberEnterDirectlyNotification(req.GroupID, utils.OpUserID(ctx), utils.OperationID(ctx))
|
chat.MemberEnterDirectlyNotification(req.GroupID, tracelog.GetOpUserID(ctx), tracelog.GetOperationID(ctx))
|
||||||
return resp, nil
|
return resp, nil
|
||||||
} else {
|
} else {
|
||||||
constant.SetErrorForResp(constant.ErrGroupTypeNotSupport, resp.CommonResp)
|
constant.SetErrorForResp(constant.ErrGroupTypeNotSupport, resp.CommonResp)
|
||||||
@ -757,7 +742,7 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
var groupRequest relation.GroupRequest
|
var groupRequest relation.GroupRequest
|
||||||
groupRequest.UserID = utils.OpUserID(ctx)
|
groupRequest.UserID = tracelog.GetOpUserID(ctx)
|
||||||
groupRequest.ReqMsg = req.ReqMessage
|
groupRequest.ReqMsg = req.ReqMessage
|
||||||
groupRequest.GroupID = req.GroupID
|
groupRequest.GroupID = req.GroupID
|
||||||
groupRequest.JoinSource = req.JoinSource
|
groupRequest.JoinSource = req.JoinSource
|
||||||
@ -777,31 +762,31 @@ func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq)
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if groupInfo.GroupType != constant.SuperGroup {
|
if groupInfo.GroupType != constant.SuperGroup {
|
||||||
_, err = rocksCache.GetGroupMemberInfoFromCache(ctx, req.GroupID, utils.OpUserID(ctx))
|
_, err = rocksCache.GetGroupMemberInfoFromCache(ctx, req.GroupID, tracelog.GetOpUserID(ctx))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if err := s.DelGroupAndUserCache(ctx, req.GroupID, []string{utils.OpUserID(ctx)}); err != nil {
|
if err := s.DelGroupAndUserCache(ctx, req.GroupID, []string{tracelog.GetOpUserID(ctx)}); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
err = relation.DeleteGroupMemberByGroupIDAndUserID(req.GroupID, utils.OpUserID(ctx))
|
err = relation.DeleteGroupMemberByGroupIDAndUserID(req.GroupID, tracelog.GetOpUserID(ctx))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
okUserIDList := []string{utils.OpUserID(ctx)}
|
okUserIDList := []string{tracelog.GetOpUserID(ctx)}
|
||||||
if err := db.DB.RemoverUserFromSuperGroup(req.GroupID, okUserIDList); err != nil {
|
if err := db.DB.RemoverUserFromSuperGroup(req.GroupID, okUserIDList); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if groupInfo.GroupType != constant.SuperGroup {
|
if groupInfo.GroupType != constant.SuperGroup {
|
||||||
_ = rocksCache.DelGroupMemberInfoFromCache(ctx, req.GroupID, utils.OpUserID(ctx))
|
_ = rocksCache.DelGroupMemberInfoFromCache(ctx, req.GroupID, tracelog.GetOpUserID(ctx))
|
||||||
chat.MemberQuitNotification(req)
|
chat.MemberQuitNotification(req)
|
||||||
} else {
|
} else {
|
||||||
_ = rocksCache.DelJoinedSuperGroupIDListFromCache(ctx, utils.OpUserID(ctx))
|
_ = rocksCache.DelJoinedSuperGroupIDListFromCache(ctx, tracelog.GetOpUserID(ctx))
|
||||||
_ = rocksCache.DelGroupMemberListHashFromCache(ctx, req.GroupID)
|
_ = rocksCache.DelGroupMemberListHashFromCache(ctx, req.GroupID)
|
||||||
chat.SuperGroupNotification(utils.OperationID(ctx), utils.OpUserID(ctx), utils.OpUserID(ctx))
|
chat.SuperGroupNotification(tracelog.GetOperationID(ctx), tracelog.GetOpUserID(ctx), tracelog.GetOpUserID(ctx))
|
||||||
}
|
}
|
||||||
return resp, nil
|
return resp, nil
|
||||||
}
|
}
|
||||||
@ -867,10 +852,10 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//only administrators can set group information
|
//only administrators can set group information
|
||||||
var groupInfo relation.Group
|
var groupInfo relation.GroupGorm
|
||||||
utils.CopyStructFields(&groupInfo, req.GroupInfoForSet)
|
utils.CopyStructFields(&groupInfo, req.GroupInfoForSet)
|
||||||
if req.GroupInfoForSet.Notification != "" {
|
if req.GroupInfoForSet.Notification != "" {
|
||||||
groupInfo.NotificationUserID = utils.OpUserID(ctx)
|
groupInfo.NotificationUserID = tracelog.GetOpUserID(ctx)
|
||||||
groupInfo.NotificationUpdateTime = time.Now()
|
groupInfo.NotificationUpdateTime = time.Now()
|
||||||
}
|
}
|
||||||
if err := rocksCache.DelGroupInfoFromCache(ctx, req.GroupInfoForSet.GroupID); err != nil {
|
if err := rocksCache.DelGroupInfoFromCache(ctx, req.GroupInfoForSet.GroupID); err != nil {
|
||||||
@ -881,11 +866,11 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if changedType != 0 {
|
if changedType != 0 {
|
||||||
chat.GroupInfoSetNotification(utils.OperationID(ctx), utils.OpUserID(ctx), req.GroupInfoForSet.GroupID, groupName, notification, introduction, faceURL, req.GroupInfoForSet.NeedVerification)
|
chat.GroupInfoSetNotification(tracelog.GetOperationID(ctx), tracelog.GetOpUserID(ctx), req.GroupInfoForSet.GroupID, groupName, notification, introduction, faceURL, req.GroupInfoForSet.NeedVerification)
|
||||||
}
|
}
|
||||||
if req.GroupInfoForSet.Notification != "" {
|
if req.GroupInfoForSet.Notification != "" {
|
||||||
//get group member user id
|
//get group member user id
|
||||||
getGroupMemberIDListFromCacheReq := &pbCache.GetGroupMemberIDListFromCacheReq{OperationID: utils.OperationID(ctx), GroupID: req.GroupInfoForSet.GroupID}
|
getGroupMemberIDListFromCacheReq := &pbCache.GetGroupMemberIDListFromCacheReq{OperationID: tracelog.GetOperationID(ctx), GroupID: req.GroupInfoForSet.GroupID}
|
||||||
etcdConn, err := getcdv3.GetConn(ctx, config.Config.RpcRegisterName.OpenImCacheName)
|
etcdConn, err := getcdv3.GetConn(ctx, config.Config.RpcRegisterName.OpenImCacheName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -900,13 +885,13 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf
|
|||||||
}
|
}
|
||||||
var conversationReq pbConversation.ModifyConversationFieldReq
|
var conversationReq pbConversation.ModifyConversationFieldReq
|
||||||
conversation := pbConversation.Conversation{
|
conversation := pbConversation.Conversation{
|
||||||
OwnerUserID: utils.OpUserID(ctx),
|
OwnerUserID: tracelog.GetOpUserID(ctx),
|
||||||
ConversationID: utils.GetConversationIDBySessionType(req.GroupInfoForSet.GroupID, constant.GroupChatType),
|
ConversationID: utils.GetConversationIDBySessionType(req.GroupInfoForSet.GroupID, constant.GroupChatType),
|
||||||
ConversationType: constant.GroupChatType,
|
ConversationType: constant.GroupChatType,
|
||||||
GroupID: req.GroupInfoForSet.GroupID,
|
GroupID: req.GroupInfoForSet.GroupID,
|
||||||
}
|
}
|
||||||
conversationReq.Conversation = &conversation
|
conversationReq.Conversation = &conversation
|
||||||
conversationReq.OperationID = utils.OperationID(ctx)
|
conversationReq.OperationID = tracelog.GetOperationID(ctx)
|
||||||
conversationReq.FieldType = constant.FieldGroupAtType
|
conversationReq.FieldType = constant.FieldGroupAtType
|
||||||
conversation.GroupAtType = constant.GroupNotification
|
conversation.GroupAtType = constant.GroupNotification
|
||||||
conversationReq.UserIDList = cacheResp.UserIDList
|
conversationReq.UserIDList = cacheResp.UserIDList
|
||||||
@ -1019,7 +1004,7 @@ func (s *groupServer) GetGroupMembersCMS(ctx context.Context, req *pbGroup.GetGr
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
log.NewInfo(utils.OperationID(ctx), groupMembersCount)
|
log.NewInfo(tracelog.GetOperationID(ctx), groupMembersCount)
|
||||||
resp.MemberNums = int32(groupMembersCount)
|
resp.MemberNums = int32(groupMembersCount)
|
||||||
for _, groupMember := range groupMembers {
|
for _, groupMember := range groupMembers {
|
||||||
member := open_im_sdk.GroupMemberFullInfo{}
|
member := open_im_sdk.GroupMemberFullInfo{}
|
||||||
@ -1064,7 +1049,7 @@ func (s *groupServer) GetUserReqApplicationList(ctx context.Context, req *pbGrou
|
|||||||
func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGroupReq) (*pbGroup.DismissGroupResp, error) {
|
func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGroupReq) (*pbGroup.DismissGroupResp, error) {
|
||||||
resp := &pbGroup.DismissGroupResp{}
|
resp := &pbGroup.DismissGroupResp{}
|
||||||
|
|
||||||
if !token_verify.IsManagerUserID(utils.OpUserID(ctx)) && !relation.IsGroupOwnerAdmin(req.GroupID, utils.OpUserID(ctx)) {
|
if !token_verify.IsManagerUserID(tracelog.GetOpUserID(ctx)) && !relation.IsGroupOwnerAdmin(req.GroupID, tracelog.GetOpUserID(ctx)) {
|
||||||
return nil, utils.Wrap(constant.ErrIdentity, "")
|
return nil, utils.Wrap(constant.ErrIdentity, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1092,7 +1077,7 @@ func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGrou
|
|||||||
var reqPb pbUser.SetConversationReq
|
var reqPb pbUser.SetConversationReq
|
||||||
var c pbConversation.Conversation
|
var c pbConversation.Conversation
|
||||||
for _, v := range memberList {
|
for _, v := range memberList {
|
||||||
reqPb.OperationID = utils.OperationID(ctx)
|
reqPb.OperationID = tracelog.GetOperationID(ctx)
|
||||||
c.OwnerUserID = v.UserID
|
c.OwnerUserID = v.UserID
|
||||||
c.ConversationID = utils.GetConversationIDBySessionType(req.GroupID, constant.GroupChatType)
|
c.ConversationID = utils.GetConversationIDBySessionType(req.GroupID, constant.GroupChatType)
|
||||||
c.ConversationType = constant.GroupChatType
|
c.ConversationType = constant.GroupChatType
|
||||||
@ -1121,7 +1106,7 @@ func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGrou
|
|||||||
func (s *groupServer) MuteGroupMember(ctx context.Context, req *pbGroup.MuteGroupMemberReq) (*pbGroup.MuteGroupMemberResp, error) {
|
func (s *groupServer) MuteGroupMember(ctx context.Context, req *pbGroup.MuteGroupMemberReq) (*pbGroup.MuteGroupMemberResp, error) {
|
||||||
resp := &pbGroup.MuteGroupMemberResp{}
|
resp := &pbGroup.MuteGroupMemberResp{}
|
||||||
|
|
||||||
opFlag, err := s.getGroupUserLevel(req.GroupID, utils.OpUserID(ctx))
|
opFlag, err := s.getGroupUserLevel(req.GroupID, tracelog.GetOpUserID(ctx))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -1149,14 +1134,14 @@ func (s *groupServer) MuteGroupMember(ctx context.Context, req *pbGroup.MuteGrou
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
chat.GroupMemberMutedNotification(utils.OperationID(ctx), utils.OpUserID(ctx), req.GroupID, req.UserID, req.MutedSeconds)
|
chat.GroupMemberMutedNotification(tracelog.GetOperationID(ctx), tracelog.GetOpUserID(ctx), req.GroupID, req.UserID, req.MutedSeconds)
|
||||||
return resp, nil
|
return resp, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *groupServer) CancelMuteGroupMember(ctx context.Context, req *pbGroup.CancelMuteGroupMemberReq) (*pbGroup.CancelMuteGroupMemberResp, error) {
|
func (s *groupServer) CancelMuteGroupMember(ctx context.Context, req *pbGroup.CancelMuteGroupMemberReq) (*pbGroup.CancelMuteGroupMemberResp, error) {
|
||||||
resp := &pbGroup.CancelMuteGroupMemberResp{}
|
resp := &pbGroup.CancelMuteGroupMemberResp{}
|
||||||
|
|
||||||
opFlag, err := s.getGroupUserLevel(req.GroupID, utils.OpUserID(ctx))
|
opFlag, err := s.getGroupUserLevel(req.GroupID, tracelog.GetOpUserID(ctx))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -1184,14 +1169,14 @@ func (s *groupServer) CancelMuteGroupMember(ctx context.Context, req *pbGroup.Ca
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
chat.GroupMemberCancelMutedNotification(utils.OperationID(ctx), utils.OpUserID(ctx), req.GroupID, req.UserID)
|
chat.GroupMemberCancelMutedNotification(tracelog.GetOperationID(ctx), tracelog.GetOpUserID(ctx), req.GroupID, req.UserID)
|
||||||
return resp, nil
|
return resp, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *groupServer) MuteGroup(ctx context.Context, req *pbGroup.MuteGroupReq) (*pbGroup.MuteGroupResp, error) {
|
func (s *groupServer) MuteGroup(ctx context.Context, req *pbGroup.MuteGroupReq) (*pbGroup.MuteGroupResp, error) {
|
||||||
resp := &pbGroup.MuteGroupResp{}
|
resp := &pbGroup.MuteGroupResp{}
|
||||||
|
|
||||||
opFlag, err := s.getGroupUserLevel(req.GroupID, utils.OpUserID(ctx))
|
opFlag, err := s.getGroupUserLevel(req.GroupID, tracelog.GetOpUserID(ctx))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -1224,14 +1209,14 @@ func (s *groupServer) MuteGroup(ctx context.Context, req *pbGroup.MuteGroupReq)
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
chat.GroupMutedNotification(utils.OperationID(ctx), utils.OpUserID(ctx), req.GroupID)
|
chat.GroupMutedNotification(tracelog.GetOperationID(ctx), tracelog.GetOpUserID(ctx), req.GroupID)
|
||||||
return resp, nil
|
return resp, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *groupServer) CancelMuteGroup(ctx context.Context, req *pbGroup.CancelMuteGroupReq) (*pbGroup.CancelMuteGroupResp, error) {
|
func (s *groupServer) CancelMuteGroup(ctx context.Context, req *pbGroup.CancelMuteGroupReq) (*pbGroup.CancelMuteGroupResp, error) {
|
||||||
resp := &pbGroup.CancelMuteGroupResp{}
|
resp := &pbGroup.CancelMuteGroupResp{}
|
||||||
|
|
||||||
opFlag, err := s.getGroupUserLevel(req.GroupID, utils.OpUserID(ctx))
|
opFlag, err := s.getGroupUserLevel(req.GroupID, tracelog.GetOpUserID(ctx))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -1251,7 +1236,7 @@ func (s *groupServer) CancelMuteGroup(ctx context.Context, req *pbGroup.CancelMu
|
|||||||
// errMsg := req.OperationID + " mutedInfo.RoleLevel == constant.GroupAdmin " + req.GroupID + req.OpUserID + err.Error()
|
// errMsg := req.OperationID + " mutedInfo.RoleLevel == constant.GroupAdmin " + req.GroupID + req.OpUserID + err.Error()
|
||||||
// return &pbGroup.CancelMuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: errMsg}}, nil
|
// return &pbGroup.CancelMuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: errMsg}}, nil
|
||||||
//}
|
//}
|
||||||
log.Debug(utils.OperationID(ctx), "UpdateGroupInfoDefaultZero ", req.GroupID, map[string]interface{}{"status": constant.GroupOk})
|
log.Debug(tracelog.GetOperationID(ctx), "UpdateGroupInfoDefaultZero ", req.GroupID, map[string]interface{}{"status": constant.GroupOk})
|
||||||
if err := rocksCache.DelGroupInfoFromCache(ctx, req.GroupID); err != nil {
|
if err := rocksCache.DelGroupInfoFromCache(ctx, req.GroupID); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -1259,13 +1244,13 @@ func (s *groupServer) CancelMuteGroup(ctx context.Context, req *pbGroup.CancelMu
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
chat.GroupCancelMutedNotification(utils.OperationID(ctx), utils.OpUserID(ctx), req.GroupID)
|
chat.GroupCancelMutedNotification(tracelog.GetOperationID(ctx), tracelog.GetOpUserID(ctx), req.GroupID)
|
||||||
return resp, nil
|
return resp, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *groupServer) SetGroupMemberNickname(ctx context.Context, req *pbGroup.SetGroupMemberNicknameReq) (*pbGroup.SetGroupMemberNicknameResp, error) {
|
func (s *groupServer) SetGroupMemberNickname(ctx context.Context, req *pbGroup.SetGroupMemberNicknameReq) (*pbGroup.SetGroupMemberNicknameResp, error) {
|
||||||
resp := &pbGroup.SetGroupMemberNicknameResp{}
|
resp := &pbGroup.SetGroupMemberNicknameResp{}
|
||||||
if utils.OpUserID(ctx) != req.UserID && !token_verify.IsManagerUserID(utils.OpUserID(ctx)) {
|
if tracelog.GetOpUserID(ctx) != req.UserID && !token_verify.IsManagerUserID(tracelog.GetOpUserID(ctx)) {
|
||||||
return nil, utils.Wrap(constant.ErrIdentity, "")
|
return nil, utils.Wrap(constant.ErrIdentity, "")
|
||||||
}
|
}
|
||||||
cbReq := &pbGroup.SetGroupMemberInfoReq{
|
cbReq := &pbGroup.SetGroupMemberInfoReq{
|
||||||
@ -1297,7 +1282,7 @@ func (s *groupServer) SetGroupMemberNickname(ctx context.Context, req *pbGroup.S
|
|||||||
if err := relation.UpdateGroupMemberInfo(groupMemberInfo); err != nil {
|
if err := relation.UpdateGroupMemberInfo(groupMemberInfo); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
chat.GroupMemberInfoSetNotification(utils.OperationID(ctx), utils.OpUserID(ctx), req.GroupID, req.UserID)
|
chat.GroupMemberInfoSetNotification(tracelog.GetOperationID(ctx), tracelog.GetOpUserID(ctx), req.GroupID, req.UserID)
|
||||||
return resp, nil
|
return resp, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1336,13 +1321,13 @@ func (s *groupServer) SetGroupMemberInfo(ctx context.Context, req *pbGroup.SetGr
|
|||||||
switch req.RoleLevel.Value {
|
switch req.RoleLevel.Value {
|
||||||
case constant.GroupOrdinaryUsers:
|
case constant.GroupOrdinaryUsers:
|
||||||
//msg.GroupMemberRoleLevelChangeNotification(req.OperationID, req.OpUserID, req.GroupID, req.UserID, constant.GroupMemberSetToOrdinaryUserNotification)
|
//msg.GroupMemberRoleLevelChangeNotification(req.OperationID, req.OpUserID, req.GroupID, req.UserID, constant.GroupMemberSetToOrdinaryUserNotification)
|
||||||
chat.GroupMemberInfoSetNotification(utils.OperationID(ctx), utils.OpUserID(ctx), req.GroupID, req.UserID)
|
chat.GroupMemberInfoSetNotification(tracelog.GetOperationID(ctx), tracelog.GetOpUserID(ctx), req.GroupID, req.UserID)
|
||||||
case constant.GroupAdmin, constant.GroupOwner:
|
case constant.GroupAdmin, constant.GroupOwner:
|
||||||
//msg.GroupMemberRoleLevelChangeNotification(req.OperationID, req.OpUserID, req.GroupID, req.UserID, constant.GroupMemberSetToAdminNotification)
|
//msg.GroupMemberRoleLevelChangeNotification(req.OperationID, req.OpUserID, req.GroupID, req.UserID, constant.GroupMemberSetToAdminNotification)
|
||||||
chat.GroupMemberInfoSetNotification(utils.OperationID(ctx), utils.OpUserID(ctx), req.GroupID, req.UserID)
|
chat.GroupMemberInfoSetNotification(tracelog.GetOperationID(ctx), tracelog.GetOpUserID(ctx), req.GroupID, req.UserID)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
chat.GroupMemberInfoSetNotification(utils.OperationID(ctx), utils.OpUserID(ctx), req.GroupID, req.UserID)
|
chat.GroupMemberInfoSetNotification(tracelog.GetOperationID(ctx), tracelog.GetOpUserID(ctx), req.GroupID, req.UserID)
|
||||||
}
|
}
|
||||||
return resp, nil
|
return resp, nil
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,5 @@
|
|||||||
package api_struct
|
package api_struct
|
||||||
|
|
||||||
//UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"`
|
|
||||||
// Nickname string `protobuf:"bytes,2,opt,name=Nickname" json:"Nickname,omitempty"`
|
|
||||||
// FaceUrl string `protobuf:"bytes,3,opt,name=FaceUrl" json:"FaceUrl,omitempty"`
|
|
||||||
// Gender int32 `protobuf:"varint,4,opt,name=Gender" json:"Gender,omitempty"`
|
|
||||||
// PhoneNumber string `protobuf:"bytes,5,opt,name=PhoneNumber" json:"PhoneNumber,omitempty"`
|
|
||||||
// Birth string `protobuf:"bytes,6,opt,name=Birth" json:"Birth,omitempty"`
|
|
||||||
// Email string `protobuf:"bytes,7,opt,name=Email" json:"Email,omitempty"`
|
|
||||||
// Ex string `protobuf:"bytes,8,opt,name=Ex" json:"Ex,omitempty"`
|
|
||||||
|
|
||||||
type UserRegisterReq struct {
|
type UserRegisterReq struct {
|
||||||
Secret string `json:"secret" binding:"required,max=32"`
|
Secret string `json:"secret" binding:"required,max=32"`
|
||||||
Platform int32 `json:"platform" binding:"required,min=1,max=12"`
|
Platform int32 `json:"platform" binding:"required,min=1,max=12"`
|
30
pkg/api_struct/public.go
Normal file
30
pkg/api_struct/public.go
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
package api_struct
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/http"
|
||||||
|
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
)
|
||||||
|
|
||||||
|
type ApiUserInfo struct {
|
||||||
|
UserID string `json:"userID" binding:"required,min=1,max=64" swaggo:"true,用户ID,"`
|
||||||
|
Nickname string `json:"nickname" binding:"omitempty,min=1,max=64" swaggo:"true,my id,19"`
|
||||||
|
FaceURL string `json:"faceURL" binding:"omitempty,max=1024"`
|
||||||
|
Gender int32 `json:"gender" binding:"omitempty,oneof=0 1 2"`
|
||||||
|
PhoneNumber string `json:"phoneNumber" binding:"omitempty,max=32"`
|
||||||
|
Birth int64 `json:"birth" binding:"omitempty"`
|
||||||
|
Email string `json:"email" binding:"omitempty,max=64"`
|
||||||
|
CreateTime int64 `json:"createTime"`
|
||||||
|
Ex string `json:"ex" binding:"omitempty,max=1024"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type GroupAddMemberInfo struct {
|
||||||
|
UserID string `json:"userID" binding:"required"`
|
||||||
|
RoleLevel int32 `json:"roleLevel" binding:"required,oneof= 1 3"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetErrCodeMsg(c *gin.Context, status int) *CommResp {
|
||||||
|
resp := CommResp{ErrCode: int32(status), ErrMsg: http.StatusText(status)}
|
||||||
|
c.JSON(status, resp)
|
||||||
|
return &resp
|
||||||
|
}
|
@ -1,143 +0,0 @@
|
|||||||
package api_struct
|
|
||||||
|
|
||||||
import (
|
|
||||||
"net/http"
|
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
)
|
|
||||||
|
|
||||||
type ApiUserInfo struct {
|
|
||||||
UserID string `json:"userID" binding:"required,min=1,max=64" swaggo:"true,用户ID,"`
|
|
||||||
Nickname string `json:"nickname" binding:"omitempty,min=1,max=64" swaggo:"true,my id,19"`
|
|
||||||
FaceURL string `json:"faceURL" binding:"omitempty,max=1024"`
|
|
||||||
Gender int32 `json:"gender" binding:"omitempty,oneof=0 1 2"`
|
|
||||||
PhoneNumber string `json:"phoneNumber" binding:"omitempty,max=32"`
|
|
||||||
Birth uint32 `json:"birth" binding:"omitempty"`
|
|
||||||
Email string `json:"email" binding:"omitempty,max=64"`
|
|
||||||
CreateTime int64 `json:"createTime"`
|
|
||||||
LoginLimit int32 `json:"loginLimit" binding:"omitempty"`
|
|
||||||
Ex string `json:"ex" binding:"omitempty,max=1024"`
|
|
||||||
BirthStr string `json:"birthStr" binding:"omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
//type Conversation struct {
|
|
||||||
// OwnerUserID string `gorm:"column:owner_user_id;primary_key;type:char(128)" json:"OwnerUserID"`
|
|
||||||
// ConversationID string `gorm:"column:conversation_id;primary_key;type:char(128)" json:"conversationID"`
|
|
||||||
// ConversationType int32 `gorm:"column:conversation_type" json:"conversationType"`
|
|
||||||
// UserID string `gorm:"column:user_id;type:char(64)" json:"userID"`
|
|
||||||
// GroupID string `gorm:"column:group_id;type:char(128)" json:"groupID"`
|
|
||||||
// RecvMsgOpt int32 `gorm:"column:recv_msg_opt" json:"recvMsgOpt"`
|
|
||||||
// UnreadCount int32 `gorm:"column:unread_count" json:"unreadCount"`
|
|
||||||
// DraftTextTime int64 `gorm:"column:draft_text_time" json:"draftTextTime"`
|
|
||||||
// IsPinned bool `gorm:"column:is_pinned" json:"isPinned"`
|
|
||||||
// AttachedInfo string `gorm:"column:attached_info;type:varchar(1024)" json:"attachedInfo"`
|
|
||||||
// Ex string `gorm:"column:ex;type:varchar(1024)" json:"ex"`
|
|
||||||
//}
|
|
||||||
|
|
||||||
type GroupAddMemberInfo struct {
|
|
||||||
UserID string `json:"userID" binding:"required"`
|
|
||||||
RoleLevel int32 `json:"roleLevel" binding:"required,oneof= 1 3"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func SetErrCodeMsg(c *gin.Context, status int) *CommResp {
|
|
||||||
resp := CommResp{ErrCode: int32(status), ErrMsg: http.StatusText(status)}
|
|
||||||
c.JSON(status, resp)
|
|
||||||
return &resp
|
|
||||||
}
|
|
||||||
|
|
||||||
//GroupName string `json:"groupName"`
|
|
||||||
// Introduction string `json:"introduction"`
|
|
||||||
// Notification string `json:"notification"`
|
|
||||||
// FaceUrl string `json:"faceUrl"`
|
|
||||||
// OperationID string `json:"operationID" binding:"required"`
|
|
||||||
// GroupType int32 `json:"groupType"`
|
|
||||||
// Ex string `json:"ex"`
|
|
||||||
|
|
||||||
//type GroupInfo struct {
|
|
||||||
// GroupID string `json:"groupID"`
|
|
||||||
// GroupName string `json:"groupName"`
|
|
||||||
// Notification string `json:"notification"`
|
|
||||||
// Introduction string `json:"introduction"`
|
|
||||||
// FaceUrl string `json:"faceUrl"`
|
|
||||||
// OwnerUserID string `json:"ownerUserID"`
|
|
||||||
// Ex string `json:"ex"`
|
|
||||||
// GroupType int32 `json:"groupType"`
|
|
||||||
//}
|
|
||||||
|
|
||||||
//type GroupMemberFullInfo struct {
|
|
||||||
// GroupID string `json:"groupID"`
|
|
||||||
// UserID string `json:"userID"`
|
|
||||||
// RoleLevel int32 `json:"roleLevel"`
|
|
||||||
// JoinTime uint64 `json:"joinTime"`
|
|
||||||
// Nickname string `json:"nickname"`
|
|
||||||
// FaceUrl string `json:"faceUrl"`
|
|
||||||
// FriendRemark string `json:"friendRemark"`
|
|
||||||
// AppMangerLevel int32 `json:"appMangerLevel"`
|
|
||||||
// JoinSource int32 `json:"joinSource"`
|
|
||||||
// OperatorUserID string `json:"operatorUserID"`
|
|
||||||
// Ex string `json:"ex"`
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//type PublicUserInfo struct {
|
|
||||||
// UserID string `json:"userID"`
|
|
||||||
// Nickname string `json:"nickname"`
|
|
||||||
// FaceUrl string `json:"faceUrl"`
|
|
||||||
// Gender int32 `json:"gender"`
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//type UserInfo struct {
|
|
||||||
// UserID string `json:"userID"`
|
|
||||||
// Nickname string `json:"nickname"`
|
|
||||||
// FaceUrl string `json:"faceUrl"`
|
|
||||||
// Gender int32 `json:"gender"`
|
|
||||||
// Mobile string `json:"mobile"`
|
|
||||||
// Birth string `json:"birth"`
|
|
||||||
// Email string `json:"email"`
|
|
||||||
// Ex string `json:"ex"`
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//type FriendInfo struct {
|
|
||||||
// OwnerUserID string `json:"ownerUserID"`
|
|
||||||
// Remark string `json:"remark"`
|
|
||||||
// CreateTime int64 `json:"createTime"`
|
|
||||||
// FriendUser UserInfo `json:"friendUser"`
|
|
||||||
// AddSource int32 `json:"addSource"`
|
|
||||||
// OperatorUserID string `json:"operatorUserID"`
|
|
||||||
// Ex string `json:"ex"`
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//type BlackInfo struct {
|
|
||||||
// OwnerUserID string `json:"ownerUserID"`
|
|
||||||
// CreateTime int64 `json:"createTime"`
|
|
||||||
// BlackUser PublicUserInfo `json:"friendUser"`
|
|
||||||
// AddSource int32 `json:"addSource"`
|
|
||||||
// OperatorUserID string `json:"operatorUserID"`
|
|
||||||
// Ex string `json:"ex"`
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//type GroupRequest struct {
|
|
||||||
// UserID string `json:"userID"`
|
|
||||||
// GroupID string `json:"groupID"`
|
|
||||||
// HandleResult string `json:"handleResult"`
|
|
||||||
// ReqMsg string `json:"reqMsg"`
|
|
||||||
// HandleMsg string `json:"handleMsg"`
|
|
||||||
// ReqTime int64 `json:"reqTime"`
|
|
||||||
// HandleUserID string `json:"handleUserID"`
|
|
||||||
// HandleTime int64 `json:"handleTime"`
|
|
||||||
// Ex string `json:"ex"`
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//type FriendRequest struct {
|
|
||||||
// FromUserID string `json:"fromUserID"`
|
|
||||||
// ToUserID string `json:"toUserID"`
|
|
||||||
// HandleResult int32 `json:"handleResult"`
|
|
||||||
// ReqMessage string `json:"reqMessage"`
|
|
||||||
// CreateTime int64 `json:"createTime"`
|
|
||||||
// HandlerUserID string `json:"handlerUserID"`
|
|
||||||
// HandleMsg string `json:"handleMsg"`
|
|
||||||
// HandleTime int64 `json:"handleTime"`
|
|
||||||
// Ex string `json:"ex"`
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//
|
|
14
pkg/common/db/cache/group.go
vendored
14
pkg/common/db/cache/group.go
vendored
@ -30,9 +30,9 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type GroupCache struct {
|
type GroupCache struct {
|
||||||
group *relation.Group
|
group *relation.GroupGorm
|
||||||
groupMember *relation.GroupMember
|
groupMember *relation.GroupMemberGorm
|
||||||
groupRequest *relation.GroupRequest
|
groupRequest *relation.GroupRequestGorm
|
||||||
mongoDB *unrelation.SuperGroupMgoDB
|
mongoDB *unrelation.SuperGroupMgoDB
|
||||||
expireTime time.Duration
|
expireTime time.Duration
|
||||||
redisClient *RedisClient
|
redisClient *RedisClient
|
||||||
@ -43,7 +43,7 @@ type GroupCache struct {
|
|||||||
cacheGroupMemberUserIDs map[string]*localcache.GroupMemberIDsHash
|
cacheGroupMemberUserIDs map[string]*localcache.GroupMemberIDsHash
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewGroupCache(rdb redis.UniversalClient, groupDB *relation.Group, groupMemberDB *relation.GroupMember, groupRequestDB *relation.GroupRequest, mongoClient *unrelation.SuperGroupMgoDB, opts rockscache.Options) *GroupCache {
|
func NewGroupCache(rdb redis.UniversalClient, groupDB *relation.GroupGorm, groupMemberDB *relation.GroupMemberGorm, groupRequestDB *relation.GroupRequestGorm, mongoClient *unrelation.SuperGroupMgoDB, opts rockscache.Options) *GroupCache {
|
||||||
return &GroupCache{rcClient: rockscache.NewClient(rdb, opts), expireTime: groupExpireTime,
|
return &GroupCache{rcClient: rockscache.NewClient(rdb, opts), expireTime: groupExpireTime,
|
||||||
group: groupDB, groupMember: groupMemberDB, groupRequest: groupRequestDB, redisClient: NewRedisClient(rdb),
|
group: groupDB, groupMember: groupMemberDB, groupRequest: groupRequestDB, redisClient: NewRedisClient(rdb),
|
||||||
mongoDB: mongoClient, cacheGroupMemberUserIDs: make(map[string]*localcache.GroupMemberIDsHash, 0),
|
mongoDB: mongoClient, cacheGroupMemberUserIDs: make(map[string]*localcache.GroupMemberIDsHash, 0),
|
||||||
@ -82,7 +82,7 @@ func (g *GroupCache) getGroupMemberNumKey(groupID string) string {
|
|||||||
return groupMemberNumKey + groupID
|
return groupMemberNumKey + groupID
|
||||||
}
|
}
|
||||||
|
|
||||||
/// groupInfo
|
// / groupInfo
|
||||||
func (g *GroupCache) GetGroupsInfo(ctx context.Context, groupIDs []string) (groups []*relation.Group, err error) {
|
func (g *GroupCache) GetGroupsInfo(ctx context.Context, groupIDs []string) (groups []*relation.Group, err error) {
|
||||||
for _, groupID := range groupIDs {
|
for _, groupID := range groupIDs {
|
||||||
group, err := g.GetGroupInfo(ctx, groupID)
|
group, err := g.GetGroupInfo(ctx, groupID)
|
||||||
@ -94,7 +94,7 @@ func (g *GroupCache) GetGroupsInfo(ctx context.Context, groupIDs []string) (grou
|
|||||||
return groups, nil
|
return groups, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *GroupCache) GetGroupInfo(ctx context.Context, groupID string) (group *relation.Group, err error) {
|
func (g *GroupCache) GetGroupInfo(ctx context.Context, groupID string) (group *relation.GroupGorm, err error) {
|
||||||
getGroup := func() (string, error) {
|
getGroup := func() (string, error) {
|
||||||
groupInfo, err := g.group.Take(ctx, groupID)
|
groupInfo, err := g.group.Take(ctx, groupID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -106,7 +106,7 @@ func (g *GroupCache) GetGroupInfo(ctx context.Context, groupID string) (group *r
|
|||||||
}
|
}
|
||||||
return string(bytes), nil
|
return string(bytes), nil
|
||||||
}
|
}
|
||||||
group = &relation.Group{}
|
group = &relation.GroupGorm{}
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID, "group", *group)
|
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID, "group", *group)
|
||||||
}()
|
}()
|
||||||
|
9
pkg/common/db/cache/rockscache.go
vendored
9
pkg/common/db/cache/rockscache.go
vendored
@ -2,17 +2,12 @@ package cache
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"Open_IM/pkg/common/constant"
|
"Open_IM/pkg/common/constant"
|
||||||
"Open_IM/pkg/common/db/mongo"
|
|
||||||
"Open_IM/pkg/common/db/mysql"
|
|
||||||
"Open_IM/pkg/common/db/relation"
|
"Open_IM/pkg/common/db/relation"
|
||||||
"Open_IM/pkg/common/log"
|
"Open_IM/pkg/common/log"
|
||||||
"Open_IM/pkg/common/tracelog"
|
"Open_IM/pkg/common/tracelog"
|
||||||
"Open_IM/pkg/utils"
|
"Open_IM/pkg/utils"
|
||||||
"context"
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"github.com/dtm-labs/rockscache"
|
|
||||||
"github.com/go-redis/redis/v8"
|
|
||||||
"gorm.io/gorm"
|
|
||||||
"math/big"
|
"math/big"
|
||||||
"sort"
|
"sort"
|
||||||
"strconv"
|
"strconv"
|
||||||
@ -358,7 +353,7 @@ func DelAllGroupMembersInfoFromCache(ctx context.Context, groupID string) (err e
|
|||||||
return db.DB.Rc.TagAsDeleted(groupAllMemberInfoCache + groupID)
|
return db.DB.Rc.TagAsDeleted(groupAllMemberInfoCache + groupID)
|
||||||
}
|
}
|
||||||
|
|
||||||
//func GetGroupInfoFromCache(ctx context.Context, groupID string) (groupInfo *mysql.Group, err error) {
|
//func GetGroupInfoFromCache(ctx context.Context, groupID string) (groupInfo *mysql.GroupGorm, err error) {
|
||||||
// getGroupInfo := func() (string, error) {
|
// getGroupInfo := func() (string, error) {
|
||||||
// groupInfo, err := mysql.GetGroupInfoByGroupID(groupID)
|
// groupInfo, err := mysql.GetGroupInfoByGroupID(groupID)
|
||||||
// if err != nil {
|
// if err != nil {
|
||||||
@ -370,7 +365,7 @@ func DelAllGroupMembersInfoFromCache(ctx context.Context, groupID string) (err e
|
|||||||
// }
|
// }
|
||||||
// return string(bytes), nil
|
// return string(bytes), nil
|
||||||
// }
|
// }
|
||||||
// groupInfo = &mysql.Group{}
|
// groupInfo = &mysql.GroupGorm{}
|
||||||
// defer func() {
|
// defer func() {
|
||||||
// tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID, "groupInfo", groupInfo)
|
// tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID, "groupInfo", groupInfo)
|
||||||
// }()
|
// }()
|
||||||
|
@ -2,6 +2,7 @@ package controller
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"Open_IM/pkg/common/db/relation"
|
"Open_IM/pkg/common/db/relation"
|
||||||
|
"Open_IM/pkg/common/db/table"
|
||||||
"context"
|
"context"
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
)
|
)
|
||||||
@ -12,25 +13,25 @@ type FriendInterface interface {
|
|||||||
// AddFriendRequest 增加或者更新好友申请
|
// AddFriendRequest 增加或者更新好友申请
|
||||||
AddFriendRequest(ctx context.Context, fromUserID, toUserID string, reqMsg string, ex string) (err error)
|
AddFriendRequest(ctx context.Context, fromUserID, toUserID string, reqMsg string, ex string) (err error)
|
||||||
// BecomeFriend 先判断是否在好友表,如果在则不插入
|
// BecomeFriend 先判断是否在好友表,如果在则不插入
|
||||||
BecomeFriend(ctx context.Context, friends []*relation.Friend) (err error)
|
BecomeFriend(ctx context.Context, friends []*table.FriendModel) (err error)
|
||||||
// RefuseFriendRequest 拒绝好友申请
|
// RefuseFriendRequest 拒绝好友申请
|
||||||
RefuseFriendRequest(ctx context.Context, friendRequest *relation.FriendRequest) (err error)
|
RefuseFriendRequest(ctx context.Context, friendRequest *table.FriendRequestModel) (err error)
|
||||||
// AgreeFriendRequest 同意好友申请
|
// AgreeFriendRequest 同意好友申请
|
||||||
AgreeFriendRequest(ctx context.Context, friendRequest *relation.FriendRequest) (err error)
|
AgreeFriendRequest(ctx context.Context, friendRequest *table.FriendRequestModel) (err error)
|
||||||
// Delete 删除好友
|
// Delete 删除好友
|
||||||
Delete(ctx context.Context, ownerUserID string, friendUserIDs string) (err error)
|
Delete(ctx context.Context, ownerUserID string, friendUserIDs string) (err error)
|
||||||
// UpdateRemark 更新好友备注
|
// UpdateRemark 更新好友备注
|
||||||
UpdateRemark(ctx context.Context, ownerUserID, friendUserID, remark string) (err error)
|
UpdateRemark(ctx context.Context, ownerUserID, friendUserID, remark string) (err error)
|
||||||
// FindOwnerFriends 获取ownerUserID的好友列表
|
// FindOwnerFriends 获取ownerUserID的好友列表
|
||||||
FindOwnerFriends(ctx context.Context, ownerUserID string, pageNumber, showNumber int32) (friends []*relation.Friend, err error)
|
FindOwnerFriends(ctx context.Context, ownerUserID string, pageNumber, showNumber int32) (friends []*table.FriendModel, err error)
|
||||||
// FindInWhoseFriends friendUserID在哪些人的好友列表中
|
// FindInWhoseFriends friendUserID在哪些人的好友列表中
|
||||||
FindInWhoseFriends(ctx context.Context, friendUserID string, pageNumber, showNumber int32) (friends []*relation.Friend, err error)
|
FindInWhoseFriends(ctx context.Context, friendUserID string, pageNumber, showNumber int32) (friends []*table.FriendModel, err error)
|
||||||
// FindFriendRequestFromMe 获取我发出去的好友申请
|
// FindFriendRequestFromMe 获取我发出去的好友申请
|
||||||
FindFriendRequestFromMe(ctx context.Context, userID string, pageNumber, showNumber int32) (friends []*relation.FriendRequest, err error)
|
FindFriendRequestFromMe(ctx context.Context, userID string, pageNumber, showNumber int32) (friends []*table.FriendRequestModel, err error)
|
||||||
// FindFriendRequestToMe 获取我收到的的好友申请
|
// FindFriendRequestToMe 获取我收到的的好友申请
|
||||||
FindFriendRequestToMe(ctx context.Context, userID string, pageNumber, showNumber int32) (friends []*relation.FriendRequest, err error)
|
FindFriendRequestToMe(ctx context.Context, userID string, pageNumber, showNumber int32) (friends []*table.FriendRequestModel, err error)
|
||||||
// FindFriends 获取某人指定好友的信息
|
// FindFriends 获取某人指定好友的信息
|
||||||
FindFriends(ctx context.Context, ownerUserID string, friendUserIDs []string) (friends []*relation.Friend, err error)
|
FindFriends(ctx context.Context, ownerUserID string, friendUserIDs []string) (friends []*table.FriendModel, err error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type FriendController struct {
|
type FriendController struct {
|
||||||
@ -50,15 +51,15 @@ func (f *FriendController) AddFriendRequest(ctx context.Context, fromUserID, toU
|
|||||||
}
|
}
|
||||||
|
|
||||||
// BecomeFriend 先判断是否在好友表,如果在则不插入
|
// BecomeFriend 先判断是否在好友表,如果在则不插入
|
||||||
func (f *FriendController) BecomeFriend(ctx context.Context, friends []*relation.Friend) (err error) {
|
func (f *FriendController) BecomeFriend(ctx context.Context, friends []*table.FriendModel) (err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// RefuseFriendRequest 拒绝好友申请
|
// RefuseFriendRequest 拒绝好友申请
|
||||||
func (f *FriendController) RefuseFriendRequest(ctx context.Context, friendRequest *relation.FriendRequest) (err error) {
|
func (f *FriendController) RefuseFriendRequest(ctx context.Context, friendRequest *table.FriendRequestModel) (err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// AgreeFriendRequest 同意好友申请
|
// AgreeFriendRequest 同意好友申请
|
||||||
func (f *FriendController) AgreeFriendRequest(ctx context.Context, friendRequest *relation.FriendRequest) (err error) {
|
func (f *FriendController) AgreeFriendRequest(ctx context.Context, friendRequest *table.FriendRequestModel) (err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delete 删除好友
|
// Delete 删除好友
|
||||||
@ -70,23 +71,23 @@ func (f *FriendController) UpdateRemark(ctx context.Context, ownerUserID, friend
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FindOwnerFriends 获取ownerUserID的好友列表
|
// FindOwnerFriends 获取ownerUserID的好友列表
|
||||||
func (f *FriendController) FindOwnerFriends(ctx context.Context, ownerUserID string, pageNumber, showNumber int32) (friends []*relation.Friend, err error) {
|
func (f *FriendController) FindOwnerFriends(ctx context.Context, ownerUserID string, pageNumber, showNumber int32) (friends []*table.FriendModel, err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// FindInWhoseFriends friendUserID在哪些人的好友列表中
|
// FindInWhoseFriends friendUserID在哪些人的好友列表中
|
||||||
func (f *FriendController) FindInWhoseFriends(ctx context.Context, friendUserID string, pageNumber, showNumber int32) (friends []*relation.Friend, err error) {
|
func (f *FriendController) FindInWhoseFriends(ctx context.Context, friendUserID string, pageNumber, showNumber int32) (friends []*table.FriendModel, err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// FindFriendRequestFromMe 获取我发出去的好友申请
|
// FindFriendRequestFromMe 获取我发出去的好友申请
|
||||||
func (f *FriendController) FindFriendRequestFromMe(ctx context.Context, userID string, pageNumber, showNumber int32) (friends []*relation.FriendRequest, err error) {
|
func (f *FriendController) FindFriendRequestFromMe(ctx context.Context, userID string, pageNumber, showNumber int32) (friends []*table.FriendRequestModel, err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// FindFriendRequestToMe 获取我收到的的好友申请
|
// FindFriendRequestToMe 获取我收到的的好友申请
|
||||||
func (f *FriendController) FindFriendRequestToMe(ctx context.Context, userID string, pageNumber, showNumber int32) (friends []*relation.FriendRequest, err error) {
|
func (f *FriendController) FindFriendRequestToMe(ctx context.Context, userID string, pageNumber, showNumber int32) (friends []*table.FriendRequestModel, err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// FindFriends 获取某人指定好友的信息
|
// FindFriends 获取某人指定好友的信息
|
||||||
func (f *FriendController) FindFriends(ctx context.Context, ownerUserID string, friendUserIDs []string) (friends []*relation.Friend, err error) {
|
func (f *FriendController) FindFriends(ctx context.Context, ownerUserID string, friendUserIDs []string) (friends []*table.FriendModel, err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
type FriendDatabaseInterface interface {
|
type FriendDatabaseInterface interface {
|
||||||
@ -95,37 +96,34 @@ type FriendDatabaseInterface interface {
|
|||||||
// AddFriendRequest 增加或者更新好友申请
|
// AddFriendRequest 增加或者更新好友申请
|
||||||
AddFriendRequest(ctx context.Context, fromUserID, toUserID string, reqMsg string, ex string) (err error)
|
AddFriendRequest(ctx context.Context, fromUserID, toUserID string, reqMsg string, ex string) (err error)
|
||||||
// BecomeFriend 先判断是否在好友表,如果在则不插入
|
// BecomeFriend 先判断是否在好友表,如果在则不插入
|
||||||
BecomeFriend(ctx context.Context, friends []*relation.Friend) (err error)
|
BecomeFriend(ctx context.Context, friends []*table.FriendModel) (err error)
|
||||||
// RefuseFriendRequest 拒绝好友申请
|
// RefuseFriendRequest 拒绝好友申请
|
||||||
RefuseFriendRequest(ctx context.Context, friendRequest *relation.FriendRequest) (err error)
|
RefuseFriendRequest(ctx context.Context, friendRequest *table.FriendRequestModel) (err error)
|
||||||
// AgreeFriendRequest 同意好友申请
|
// AgreeFriendRequest 同意好友申请
|
||||||
AgreeFriendRequest(ctx context.Context, friendRequest *relation.FriendRequest) (err error)
|
AgreeFriendRequest(ctx context.Context, friendRequest *table.FriendRequestModel) (err error)
|
||||||
// Delete 删除好友
|
// Delete 删除好友
|
||||||
Delete(ctx context.Context, ownerUserID string, friendUserIDs string) (err error)
|
Delete(ctx context.Context, ownerUserID string, friendUserIDs string) (err error)
|
||||||
// UpdateRemark 更新好友备注
|
// UpdateRemark 更新好友备注
|
||||||
UpdateRemark(ctx context.Context, ownerUserID, friendUserID, remark string) (err error)
|
UpdateRemark(ctx context.Context, ownerUserID, friendUserID, remark string) (err error)
|
||||||
// FindOwnerFriends 获取ownerUserID的好友列表
|
// FindOwnerFriends 获取ownerUserID的好友列表
|
||||||
FindOwnerFriends(ctx context.Context, ownerUserID string, pageNumber, showNumber int32) (friends []*relation.Friend, err error)
|
FindOwnerFriends(ctx context.Context, ownerUserID string, pageNumber, showNumber int32) (friends []*table.FriendModel, err error)
|
||||||
// FindInWhoseFriends friendUserID在哪些人的好友列表中
|
// FindInWhoseFriends friendUserID在哪些人的好友列表中
|
||||||
FindInWhoseFriends(ctx context.Context, friendUserID string, pageNumber, showNumber int32) (friends []*relation.Friend, err error)
|
FindInWhoseFriends(ctx context.Context, friendUserID string, pageNumber, showNumber int32) (friends []*table.FriendModel, err error)
|
||||||
// FindFriendRequestFromMe 获取我发出去的好友申请
|
// FindFriendRequestFromMe 获取我发出去的好友申请
|
||||||
FindFriendRequestFromMe(ctx context.Context, userID string, pageNumber, showNumber int32) (friends []*relation.FriendRequest, err error)
|
FindFriendRequestFromMe(ctx context.Context, userID string, pageNumber, showNumber int32) (friends []*table.FriendRequestModel, err error)
|
||||||
// FindFriendRequestToMe 获取我收到的的好友申请
|
// FindFriendRequestToMe 获取我收到的的好友申请
|
||||||
FindFriendRequestToMe(ctx context.Context, userID string, pageNumber, showNumber int32) (friends []*relation.FriendRequest, err error)
|
FindFriendRequestToMe(ctx context.Context, userID string, pageNumber, showNumber int32) (friends []*table.FriendRequestModel, err error)
|
||||||
// FindFriends 获取某人指定好友的信息
|
// FindFriends 获取某人指定好友的信息
|
||||||
FindFriends(ctx context.Context, ownerUserID string, friendUserIDs []string) (friends []*relation.Friend, err error)
|
FindFriends(ctx context.Context, ownerUserID string, friendUserIDs []string) (friends []*table.FriendModel, err error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type FriendDatabase struct {
|
type FriendDatabase struct {
|
||||||
sqlDB *relation.Friend
|
friend *relation.FriendGorm
|
||||||
|
friendRequest *relation.FriendRequestGorm
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewFriendDatabase(db *gorm.DB) *FriendDatabase {
|
func NewFriendDatabase(db *gorm.DB) *FriendDatabase {
|
||||||
sqlDB := relation.NewFriendDB(db)
|
return &FriendDatabase{friend: relation.NewFriendGorm(db), friendRequest: relation.NewFriendRequestGorm(db)}
|
||||||
database := &FriendDatabase{
|
|
||||||
sqlDB: sqlDB,
|
|
||||||
}
|
|
||||||
return database
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// CheckIn 检查user2是否在user1的好友列表中(inUser1Friends==true) 检查user1是否在user2的好友列表中(inUser2Friends==true)
|
// CheckIn 检查user2是否在user1的好友列表中(inUser1Friends==true) 检查user1是否在user2的好友列表中(inUser2Friends==true)
|
||||||
@ -137,15 +135,15 @@ func (f *FriendDatabase) AddFriendRequest(ctx context.Context, fromUserID, toUse
|
|||||||
}
|
}
|
||||||
|
|
||||||
// BecomeFriend 先判断是否在好友表,如果在则不插入
|
// BecomeFriend 先判断是否在好友表,如果在则不插入
|
||||||
func (f *FriendDatabase) BecomeFriend(ctx context.Context, friends []*relation.Friend) (err error) {
|
func (f *FriendDatabase) BecomeFriend(ctx context.Context, friends []*table.FriendModel) (err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// RefuseFriendRequest 拒绝好友申请
|
// RefuseFriendRequest 拒绝好友申请
|
||||||
func (f *FriendDatabase) RefuseFriendRequest(ctx context.Context, friendRequest *relation.FriendRequest) (err error) {
|
func (f *FriendDatabase) RefuseFriendRequest(ctx context.Context, friendRequest *table.FriendRequestModel) (err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// AgreeFriendRequest 同意好友申请
|
// AgreeFriendRequest 同意好友申请
|
||||||
func (f *FriendDatabase) AgreeFriendRequest(ctx context.Context, friendRequest *relation.FriendRequest) (err error) {
|
func (f *FriendDatabase) AgreeFriendRequest(ctx context.Context, friendRequest *table.FriendRequestModel) (err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delete 删除好友
|
// Delete 删除好友
|
||||||
@ -157,21 +155,21 @@ func (f *FriendDatabase) UpdateRemark(ctx context.Context, ownerUserID, friendUs
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FindOwnerFriends 获取ownerUserID的好友列表
|
// FindOwnerFriends 获取ownerUserID的好友列表
|
||||||
func (f *FriendDatabase) FindOwnerFriends(ctx context.Context, ownerUserID string, pageNumber, showNumber int32) (friends []*relation.Friend, err error) {
|
func (f *FriendDatabase) FindOwnerFriends(ctx context.Context, ownerUserID string, pageNumber, showNumber int32) (friends []*table.FriendModel, err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// FindInWhoseFriends friendUserID在哪些人的好友列表中
|
// FindInWhoseFriends friendUserID在哪些人的好友列表中
|
||||||
func (f *FriendDatabase) FindInWhoseFriends(ctx context.Context, friendUserID string, pageNumber, showNumber int32) (friends []*relation.Friend, err error) {
|
func (f *FriendDatabase) FindInWhoseFriends(ctx context.Context, friendUserID string, pageNumber, showNumber int32) (friends []*table.FriendModel, err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// FindFriendRequestFromMe 获取我发出去的好友申请
|
// FindFriendRequestFromMe 获取我发出去的好友申请
|
||||||
func (f *FriendDatabase) FindFriendRequestFromMe(ctx context.Context, userID string, pageNumber, showNumber int32) (friends []*relation.FriendRequest, err error) {
|
func (f *FriendDatabase) FindFriendRequestFromMe(ctx context.Context, userID string, pageNumber, showNumber int32) (friends []*table.FriendRequestModel, err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// FindFriendRequestToMe 获取我收到的的好友申请
|
// FindFriendRequestToMe 获取我收到的的好友申请
|
||||||
func (f *FriendDatabase) FindFriendRequestToMe(ctx context.Context, userID string, pageNumber, showNumber int32) (friends []*relation.FriendRequest, err error) {
|
func (f *FriendDatabase) FindFriendRequestToMe(ctx context.Context, userID string, pageNumber, showNumber int32) (friends []*table.FriendRequestModel, err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// FindFriends 获取某人指定好友的信息
|
// FindFriends 获取某人指定好友的信息
|
||||||
func (f *FriendDatabase) FindFriends(ctx context.Context, ownerUserID string, friendUserIDs []string) (friends []*relation.Friend, err error) {
|
func (f *FriendDatabase) FindFriends(ctx context.Context, ownerUserID string, friendUserIDs []string) (friends []*table.FriendModel, err error) {
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ package controller
|
|||||||
import (
|
import (
|
||||||
"Open_IM/pkg/common/db/cache"
|
"Open_IM/pkg/common/db/cache"
|
||||||
"Open_IM/pkg/common/db/relation"
|
"Open_IM/pkg/common/db/relation"
|
||||||
|
"Open_IM/pkg/common/db/table"
|
||||||
"Open_IM/pkg/common/db/unrelation"
|
"Open_IM/pkg/common/db/unrelation"
|
||||||
"context"
|
"context"
|
||||||
"github.com/dtm-labs/rockscache"
|
"github.com/dtm-labs/rockscache"
|
||||||
@ -13,23 +14,27 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type GroupInterface interface {
|
type GroupInterface interface {
|
||||||
FindGroupsByID(ctx context.Context, groupIDs []string) (groups []*relation.Group, err error)
|
FindGroupsByID(ctx context.Context, groupIDs []string) (groups []*table.GroupModel, err error)
|
||||||
CreateGroup(ctx context.Context, groups []*relation.Group, groupMember []*relation.GroupMember) error
|
CreateGroup(ctx context.Context, groups []*table.GroupModel, groupMember []*table.GroupModel) error
|
||||||
DeleteGroupByIDs(ctx context.Context, groupIDs []string) error
|
DeleteGroupByIDs(ctx context.Context, groupIDs []string) error
|
||||||
TakeGroupByID(ctx context.Context, groupID string) (group *relation.Group, err error)
|
TakeGroupByID(ctx context.Context, groupID string) (group *table.GroupModel, err error)
|
||||||
GetJoinedGroupList(ctx context.Context, userID string) ([]*relation.Group, error)
|
TakeGroupMemberByID(ctx context.Context, groupID string, userID string) (groupMember *table.GroupModel, err error)
|
||||||
GetGroupMemberList(ctx context.Context, groupID string) ([]*relation.GroupMember, error)
|
GetJoinedGroupList(ctx context.Context, userID string) ([]*table.GroupModel, error)
|
||||||
GetGroupMemberListByUserID(ctx context.Context, groupID string, userIDs []string) ([]*relation.GroupMember, error)
|
GetGroupMemberList(ctx context.Context, groupID string) ([]*table.GroupModel, error)
|
||||||
GetGroupMemberFilterList(ctx context.Context, groupID string, filter int32, begin int32, maxNumber int32) ([]*relation.GroupMember, error) // relation.GetGroupMemberByGroupID(req.GroupID, req.Filter, req.NextSeq, 30)
|
GetGroupMemberListByUserID(ctx context.Context, groupID string, userIDs []string) ([]*table.GroupModel, error)
|
||||||
|
GetGroupMemberFilterList(ctx context.Context, groupID string, filter int32, begin int32, maxNumber int32) ([]*table.GroupModel, error) // relation.GetGroupMemberByGroupID(req.GroupID, req.Filter, req.NextSeq, 30)
|
||||||
|
FindGroupMembersByID(ctx context.Context, groupID string, userIDs []string) (groups []*table.GroupModel, err error)
|
||||||
|
DelGroupMember(ctx context.Context, groupID string, userIDs []string) error
|
||||||
GetGroupMemberNum(ctx context.Context, groupIDs []string) (map[string]int, error)
|
GetGroupMemberNum(ctx context.Context, groupIDs []string) (map[string]int, error)
|
||||||
GetGroupOwnerUserID(ctx context.Context, groupIDs []string) (map[string]string, error)
|
GetGroupOwnerUserID(ctx context.Context, groupIDs []string) (map[string]string, error)
|
||||||
|
GetGroupRecvApplicationList(ctx context.Context, userID string) ([]*table.GroupRequestModel, error)
|
||||||
|
|
||||||
CreateGroupMember(ctx context.Context, groupMember []*relation.GroupMember) error
|
CreateGroupMember(ctx context.Context, groupMember []*table.GroupModel) error
|
||||||
|
CreateGroupRequest(ctx context.Context, requests []*table.GroupRequestModel) error
|
||||||
CreateGroupRequest(ctx context.Context, requests []*relation.GroupRequest) error
|
|
||||||
|
|
||||||
//mongo
|
//mongo
|
||||||
CreateSuperGroup(ctx context.Context, groupID string, initMemberIDList []string) error
|
CreateSuperGroup(ctx context.Context, groupID string, initMemberIDList []string) error
|
||||||
|
DelSuperGroupMember(ctx context.Context, groupID string, userIDs []string) error
|
||||||
AddUserToSuperGroup(ctx context.Context, groupID string, userIDs []string) error
|
AddUserToSuperGroup(ctx context.Context, groupID string, userIDs []string) error
|
||||||
GetSuperGroupByID(ctx context.Context, groupID string) (superGroup *unrelation.SuperGroup, err error)
|
GetSuperGroupByID(ctx context.Context, groupID string) (superGroup *unrelation.SuperGroup, err error)
|
||||||
}
|
}
|
||||||
@ -40,22 +45,67 @@ type GroupController struct {
|
|||||||
database GroupDataBaseInterface
|
database GroupDataBaseInterface
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *GroupController) GetJoinedGroupList(ctx context.Context, userID string) ([]*relation.Group, error) {
|
func (g *GroupController) TakeGroupMemberByID(ctx context.Context, groupID string, userID string) (groupMember *table.GroupModel, err error) {
|
||||||
//TODO implement me
|
//TODO implement me
|
||||||
panic("implement me")
|
panic("implement me")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *GroupController) GetGroupMemberList(ctx context.Context, groupID string) ([]*relation.GroupMember, error) {
|
func (g *GroupController) FindGroupMembersByID(ctx context.Context, groupID string, userIDs []string) (groups []*table.GroupModel, err error) {
|
||||||
//TODO implement me
|
//TODO implement me
|
||||||
panic("implement me")
|
panic("implement me")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *GroupController) GetGroupMemberListByUserID(ctx context.Context, groupID string, userIDs []string) ([]*relation.GroupMember, error) {
|
func (g *GroupController) DelGroupMember(ctx context.Context, groupID string, userIDs []string) error {
|
||||||
//TODO implement me
|
//TODO implement me
|
||||||
panic("implement me")
|
panic("implement me")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *GroupController) GetGroupMemberFilterList(ctx context.Context, groupID string, filter int32, begin int32, maxNumber int32) ([]*relation.GroupMember, error) {
|
func (g *GroupController) GetGroupRecvApplicationList(ctx context.Context, userID string) ([]*table.GroupRequestModel, error) {
|
||||||
|
/*
|
||||||
|
var groupRequestList []db.GroupRequest
|
||||||
|
memberList, err := GetGroupMemberListByUserID(userID)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
for _, v := range memberList {
|
||||||
|
if v.RoleLevel > constant.GroupOrdinaryUsers {
|
||||||
|
list, err := GetGroupRequestByGroupID(v.GroupID)
|
||||||
|
if err != nil {
|
||||||
|
// fmt.Println("111 GetGroupRequestByGroupID failed ", err.Error())
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
// fmt.Println("222 GetGroupRequestByGroupID ok ", list)
|
||||||
|
groupRequestList = append(groupRequestList, list...)
|
||||||
|
// fmt.Println("333 GetGroupRequestByGroupID ok ", groupRequestList)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return groupRequestList, nil
|
||||||
|
*/
|
||||||
|
//TODO implement me
|
||||||
|
panic("implement me")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *GroupController) DelSuperGroupMember(ctx context.Context, groupID string, userIDs []string) error {
|
||||||
|
//TODO implement me
|
||||||
|
panic("implement me")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *GroupController) GetJoinedGroupList(ctx context.Context, userID string) ([]*table.GroupModel, error) {
|
||||||
|
//TODO implement me
|
||||||
|
panic("implement me")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *GroupController) GetGroupMemberList(ctx context.Context, groupID string) ([]*table.GroupModel, error) {
|
||||||
|
//TODO implement me
|
||||||
|
panic("implement me")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *GroupController) GetGroupMemberListByUserID(ctx context.Context, groupID string, userIDs []string) ([]*table.GroupModel, error) {
|
||||||
|
//TODO implement me
|
||||||
|
panic("implement me")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *GroupController) GetGroupMemberFilterList(ctx context.Context, groupID string, filter int32, begin int32, maxNumber int32) ([]*table.GroupModel, error) {
|
||||||
//TODO implement me
|
//TODO implement me
|
||||||
panic("implement me")
|
panic("implement me")
|
||||||
}
|
}
|
||||||
@ -70,12 +120,12 @@ func (g *GroupController) GetGroupOwnerUserID(ctx context.Context, groupIDs []st
|
|||||||
panic("implement me")
|
panic("implement me")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *GroupController) CreateGroupMember(ctx context.Context, groupMember []*relation.GroupMember) error {
|
func (g *GroupController) CreateGroupMember(ctx context.Context, groupMember []*table.GroupModel) error {
|
||||||
//TODO implement me
|
//TODO implement me
|
||||||
panic("implement me")
|
panic("implement me")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *GroupController) CreateGroupRequest(ctx context.Context, requests []*relation.GroupRequest) error {
|
func (g *GroupController) CreateGroupRequest(ctx context.Context, requests []*table.GroupRequestModel) error {
|
||||||
//TODO implement me
|
//TODO implement me
|
||||||
panic("implement me")
|
panic("implement me")
|
||||||
}
|
}
|
||||||
@ -90,11 +140,11 @@ func NewGroupController(db *gorm.DB, rdb redis.UniversalClient, mgoClient *mongo
|
|||||||
return groupController
|
return groupController
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *GroupController) FindGroupsByID(ctx context.Context, groupIDs []string) (groups []*relation.Group, err error) {
|
func (g *GroupController) FindGroupsByID(ctx context.Context, groupIDs []string) (groups []*table.GroupModel, err error) {
|
||||||
return g.database.FindGroupsByID(ctx, groupIDs)
|
return g.database.FindGroupsByID(ctx, groupIDs)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *GroupController) CreateGroup(ctx context.Context, groups []*relation.Group, groupMember []*relation.GroupMember) error {
|
func (g *GroupController) CreateGroup(ctx context.Context, groups []*table.GroupModel, groupMember []*table.GroupModel) error {
|
||||||
return g.database.CreateGroup(ctx, groups, groupMember)
|
return g.database.CreateGroup(ctx, groups, groupMember)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -102,7 +152,7 @@ func (g *GroupController) DeleteGroupByIDs(ctx context.Context, groupIDs []strin
|
|||||||
return g.database.DeleteGroupByIDs(ctx, groupIDs)
|
return g.database.DeleteGroupByIDs(ctx, groupIDs)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *GroupController) TakeGroupByID(ctx context.Context, groupID string) (group *relation.Group, err error) {
|
func (g *GroupController) TakeGroupByID(ctx context.Context, groupID string) (group *table.GroupModel, err error) {
|
||||||
return g.database.TakeGroupByID(ctx, groupID)
|
return g.database.TakeGroupByID(ctx, groupID)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -115,18 +165,18 @@ func (g *GroupController) CreateSuperGroup(ctx context.Context, groupID string,
|
|||||||
}
|
}
|
||||||
|
|
||||||
type GroupDataBaseInterface interface {
|
type GroupDataBaseInterface interface {
|
||||||
FindGroupsByID(ctx context.Context, groupIDs []string) (groups []*relation.Group, err error)
|
FindGroupsByID(ctx context.Context, groupIDs []string) (groups []*table.GroupModel, err error)
|
||||||
CreateGroup(ctx context.Context, groups []*relation.Group, groupMember []*relation.GroupMember) error
|
CreateGroup(ctx context.Context, groups []*table.GroupModel, groupMember []*table.GroupModel) error
|
||||||
DeleteGroupByIDs(ctx context.Context, groupIDs []string) error
|
DeleteGroupByIDs(ctx context.Context, groupIDs []string) error
|
||||||
TakeGroupByID(ctx context.Context, groupID string) (group *relation.Group, err error)
|
TakeGroupByID(ctx context.Context, groupID string) (group *table.GroupModel, err error)
|
||||||
GetSuperGroupByID(ctx context.Context, groupID string) (superGroup *unrelation.SuperGroup, err error)
|
GetSuperGroupByID(ctx context.Context, groupID string) (superGroup *unrelation.SuperGroup, err error)
|
||||||
CreateSuperGroup(ctx context.Context, groupID string, initMemberIDList []string) error
|
CreateSuperGroup(ctx context.Context, groupID string, initMemberIDList []string) error
|
||||||
}
|
}
|
||||||
|
|
||||||
type GroupDataBase struct {
|
type GroupDataBase struct {
|
||||||
groupDB *relation.Group
|
groupDB *relation.GroupGorm
|
||||||
groupMemberDB *relation.GroupMember
|
groupMemberDB *relation.GroupMemberGorm
|
||||||
groupRequestDB *relation.GroupRequest
|
groupRequestDB *relation.GroupRequestGorm
|
||||||
db *gorm.DB
|
db *gorm.DB
|
||||||
|
|
||||||
cache *cache.GroupCache
|
cache *cache.GroupCache
|
||||||
@ -155,11 +205,11 @@ func newGroupDatabase(db *gorm.DB, rdb redis.UniversalClient, mgoClient *mongo.C
|
|||||||
return database
|
return database
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *GroupDataBase) FindGroupsByID(ctx context.Context, groupIDs []string) (groups []*relation.Group, err error) {
|
func (g *GroupDataBase) FindGroupsByID(ctx context.Context, groupIDs []string) (groups []*table.GroupModel, err error) {
|
||||||
return g.cache.GetGroupsInfo(ctx, groupIDs)
|
return g.cache.GetGroupsInfo(ctx, groupIDs)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *GroupDataBase) CreateGroup(ctx context.Context, groups []*relation.Group, groupMembers []*relation.GroupMember) error {
|
func (g *GroupDataBase) CreateGroup(ctx context.Context, groups []*table.GroupModel, groupMembers []*table.GroupMemberModel) error {
|
||||||
return g.db.Transaction(func(tx *gorm.DB) error {
|
return g.db.Transaction(func(tx *gorm.DB) error {
|
||||||
if len(groups) > 0 {
|
if len(groups) > 0 {
|
||||||
if err := g.groupDB.Create(ctx, groups, tx); err != nil {
|
if err := g.groupDB.Create(ctx, groups, tx); err != nil {
|
||||||
@ -187,11 +237,11 @@ func (g *GroupDataBase) DeleteGroupByIDs(ctx context.Context, groupIDs []string)
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *GroupDataBase) TakeGroupByID(ctx context.Context, groupID string) (group *relation.Group, err error) {
|
func (g *GroupDataBase) TakeGroupByID(ctx context.Context, groupID string) (group *table.GroupModel, err error) {
|
||||||
return g.cache.GetGroupInfo(ctx, groupID)
|
return g.cache.GetGroupInfo(ctx, groupID)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *GroupDataBase) Update(ctx context.Context, groups []*relation.Group) error {
|
func (g *GroupDataBase) Update(ctx context.Context, groups []*table.GroupModel) error {
|
||||||
return g.db.Transaction(func(tx *gorm.DB) error {
|
return g.db.Transaction(func(tx *gorm.DB) error {
|
||||||
if err := g.groupDB.Update(ctx, groups, tx); err != nil {
|
if err := g.groupDB.Update(ctx, groups, tx); err != nil {
|
||||||
return err
|
return err
|
||||||
@ -207,7 +257,7 @@ func (g *GroupDataBase) Update(ctx context.Context, groups []*relation.Group) er
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *GroupDataBase) GetJoinedGroupList(ctx context.Context, userID string) ([]*relation.Group, error) {
|
func (g *GroupDataBase) GetJoinedGroupList(ctx context.Context, userID string) ([]*table.GroupModel, error) {
|
||||||
|
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
@ -1,105 +1,94 @@
|
|||||||
package relation
|
package relation
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"Open_IM/pkg/common/db/table"
|
||||||
"Open_IM/pkg/common/tracelog"
|
"Open_IM/pkg/common/tracelog"
|
||||||
"Open_IM/pkg/utils"
|
"Open_IM/pkg/utils"
|
||||||
"context"
|
"context"
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
"time"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type Friend struct {
|
type FriendDB interface {
|
||||||
OwnerUserID string `gorm:"column:owner_user_id;primary_key;size:64"`
|
Create(ctx context.Context, friends []*table.FriendModel) (err error)
|
||||||
FriendUserID string `gorm:"column:friend_user_id;primary_key;size:64"`
|
Delete(ctx context.Context, ownerUserID string, friendUserIDs string) (err error)
|
||||||
Remark string `gorm:"column:remark;size:255"`
|
UpdateByMap(ctx context.Context, ownerUserID string, args map[string]interface{}) (err error)
|
||||||
CreateTime time.Time `gorm:"column:create_time"`
|
Update(ctx context.Context, friends []*table.FriendModel) (err error)
|
||||||
AddSource int32 `gorm:"column:add_source"`
|
UpdateRemark(ctx context.Context, ownerUserID, friendUserID, remark string) (err error)
|
||||||
OperatorUserID string `gorm:"column:operator_user_id;size:64"`
|
FindOwnerUserID(ctx context.Context, ownerUserID string) (friends []*table.FriendModel, err error)
|
||||||
Ex string `gorm:"column:ex;size:1024"`
|
}
|
||||||
DB *gorm.DB `gorm:"-"`
|
|
||||||
|
type FriendGorm struct {
|
||||||
|
DB *gorm.DB `gorm:"-"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewFriendGorm(DB *gorm.DB) *FriendGorm {
|
||||||
|
return &FriendGorm{DB: DB}
|
||||||
}
|
}
|
||||||
|
|
||||||
type FriendUser struct {
|
type FriendUser struct {
|
||||||
Friend
|
FriendGorm
|
||||||
Nickname string `gorm:"column:name;size:255"`
|
Nickname string `gorm:"column:name;size:255"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewFriendDB(db *gorm.DB) *Friend {
|
func (f *FriendGorm) Create(ctx context.Context, friends []*table.FriendModel) (err error) {
|
||||||
var friend Friend
|
|
||||||
friend.DB = db.Model(friend)
|
|
||||||
return &friend
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *Friend) Create(ctx context.Context, friends []*Friend) (err error) {
|
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "friends", friends)
|
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "friends", friends)
|
||||||
}()
|
}()
|
||||||
return utils.Wrap(f.DB.Create(&friends).Error, "")
|
return utils.Wrap(f.DB.Model(&table.FriendModel{}).Create(&friends).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *Friend) Delete(ctx context.Context, ownerUserID string, friendUserIDs string) (err error) {
|
func (f *FriendGorm) Delete(ctx context.Context, ownerUserID string, friendUserIDs string) (err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "ownerUserID", ownerUserID, "friendUserIDs", friendUserIDs)
|
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "ownerUserID", ownerUserID, "friendUserIDs", friendUserIDs)
|
||||||
}()
|
}()
|
||||||
err = utils.Wrap(f.DB.Where("owner_user_id = ? and friend_user_id = ?", ownerUserID, friendUserIDs).Delete(&Friend{}).Error, "")
|
err = utils.Wrap(f.DB.Model(&table.FriendModel{}).Where("owner_user_id = ? and friend_user_id = ?", ownerUserID, friendUserIDs).Delete(&table.FriendModel{}).Error, "")
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *Friend) UpdateByMap(ctx context.Context, ownerUserID string, args map[string]interface{}) (err error) {
|
func (f *FriendGorm) UpdateByMap(ctx context.Context, ownerUserID string, args map[string]interface{}) (err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "ownerUserID", ownerUserID, "args", args)
|
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "ownerUserID", ownerUserID, "args", args)
|
||||||
}()
|
}()
|
||||||
return utils.Wrap(f.DB.Where("owner_user_id = ?", ownerUserID).Updates(args).Error, "")
|
return utils.Wrap(f.DB.Model(&table.FriendModel{}).Where("owner_user_id = ?", ownerUserID).Updates(args).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *Friend) Update(ctx context.Context, friends []*Friend) (err error) {
|
func (f *FriendGorm) Update(ctx context.Context, friends []*table.FriendModel) (err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "friends", friends)
|
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "friends", friends)
|
||||||
}()
|
}()
|
||||||
return utils.Wrap(f.DB.Updates(&friends).Error, "")
|
return utils.Wrap(f.DB.Model(&table.FriendModel{}).Updates(&friends).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *Friend) UpdateRemark(ctx context.Context, ownerUserID, friendUserID, remark string) (err error) {
|
func (f *FriendGorm) UpdateRemark(ctx context.Context, ownerUserID, friendUserID, remark string) (err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "ownerUserID", ownerUserID, "friendUserID", friendUserID, "remark", remark)
|
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "ownerUserID", ownerUserID, "friendUserID", friendUserID, "remark", remark)
|
||||||
}()
|
}()
|
||||||
return utils.Wrap(f.DB.Where("owner_user_id = ? and friend_user_id = ?", ownerUserID, friendUserID).Update("remark", remark).Error, "")
|
return utils.Wrap(f.DB.Model(&table.FriendModel{}).Where("owner_user_id = ? and friend_user_id = ?", ownerUserID, friendUserID).Update("remark", remark).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *Friend) FindOwnerUserID(ctx context.Context, ownerUserID string) (friends []*Friend, err error) {
|
func (f *FriendGorm) FindOwnerUserID(ctx context.Context, ownerUserID string) (friends []*table.FriendModel, err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "ownerUserID", ownerUserID, "friends", friends)
|
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "ownerUserID", ownerUserID, "friends", friends)
|
||||||
}()
|
}()
|
||||||
return friends, utils.Wrap(f.DB.Where("owner_user_id = ?", ownerUserID).Find(&friends).Error, "")
|
return friends, utils.Wrap(f.DB.Model(&table.FriendModel{}).Where("owner_user_id = ?", ownerUserID).Find(&friends).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *Friend) FindFriendUserID(ctx context.Context, friendUserID string) (friends []*Friend, err error) {
|
func (f *FriendGorm) FindFriendUserID(ctx context.Context, friendUserID string) (friends []*table.FriendModel, err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "friendUserID", friendUserID, "friends", friends)
|
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "friendUserID", friendUserID, "friends", friends)
|
||||||
}()
|
}()
|
||||||
return friends, utils.Wrap(f.DB.Where("friend_user_id = ?", friendUserID).Find(&friends).Error, "")
|
return friends, utils.Wrap(f.DB.Model(&table.FriendModel{}).Where("friend_user_id = ?", friendUserID).Find(&friends).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *Friend) GetFriendIDs(ctx context.Context, ownerUserID string) (friendIDList []string, err error) {
|
func (f *FriendGorm) Take(ctx context.Context, ownerUserID, friendUserID string) (friend *table.FriendModel, err error) {
|
||||||
defer func() {
|
friend = &table.FriendModel{}
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "ownerUserID", ownerUserID, "friendIDList", friendIDList)
|
|
||||||
}()
|
|
||||||
err = f.DB.Where("owner_user_id=?", ownerUserID).Pluck("friend_user_id", &friendIDList).Error
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return friendIDList, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *Friend) Take(ctx context.Context, ownerUserID, friendUserID string) (friend *Friend, err error) {
|
|
||||||
friend = &Friend{}
|
|
||||||
defer tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "ownerUserID", ownerUserID, "friendUserID", friendUserID, "friend", friend)
|
defer tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "ownerUserID", ownerUserID, "friendUserID", friendUserID, "friend", friend)
|
||||||
return friend, utils.Wrap(f.DB.Where("owner_user_id = ? and friend_user_id", ownerUserID, friendUserID).Take(friend).Error, "")
|
return friend, utils.Wrap(f.DB.Model(&table.FriendModel{}).Where("owner_user_id = ? and friend_user_id", ownerUserID, friendUserID).Take(friend).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *Friend) FindUserState(ctx context.Context, userID1, userID2 string) (friends []*Friend, err error) {
|
func (f *FriendGorm) FindUserState(ctx context.Context, userID1, userID2 string) (friends []*table.FriendModel, err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "userID1", userID1, "userID2", userID2)
|
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "userID1", userID1, "userID2", userID2)
|
||||||
}()
|
}()
|
||||||
return friends, utils.Wrap(f.DB.Where("(owner_user_id = ? and friend_user_id = ?) or (owner_user_id = ? and friend_user_id = ?)", userID1, userID2, userID2, userID1).Find(&friends).Error, "")
|
return friends, utils.Wrap(f.DB.Model(&table.FriendModel{}).Where("(owner_user_id = ? and friend_user_id = ?) or (owner_user_id = ? and friend_user_id = ?)", userID1, userID2, userID2, userID1).Find(&friends).Error, "")
|
||||||
}
|
}
|
||||||
|
@ -1,156 +1,76 @@
|
|||||||
package relation
|
package relation
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"Open_IM/pkg/common/db/table"
|
||||||
"Open_IM/pkg/common/tracelog"
|
"Open_IM/pkg/common/tracelog"
|
||||||
"Open_IM/pkg/utils"
|
"Open_IM/pkg/utils"
|
||||||
"context"
|
"context"
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
"time"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
//var FriendRequestDB *gorm.DB
|
//var FriendRequestDB *gorm.DB
|
||||||
|
|
||||||
type FriendRequest struct {
|
func NewFriendRequestGorm(db *gorm.DB) *FriendRequestGorm {
|
||||||
FromUserID string `gorm:"column:from_user_id;primary_key;size:64"`
|
var fr FriendRequestGorm
|
||||||
ToUserID string `gorm:"column:to_user_id;primary_key;size:64"`
|
|
||||||
HandleResult int32 `gorm:"column:handle_result"`
|
|
||||||
ReqMsg string `gorm:"column:req_msg;size:255"`
|
|
||||||
CreateTime time.Time `gorm:"column:create_time"`
|
|
||||||
HandlerUserID string `gorm:"column:handler_user_id;size:64"`
|
|
||||||
HandleMsg string `gorm:"column:handle_msg;size:255"`
|
|
||||||
HandleTime time.Time `gorm:"column:handle_time"`
|
|
||||||
Ex string `gorm:"column:ex;size:1024"`
|
|
||||||
DB *gorm.DB `gorm:"-"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewFriendRequest(db *gorm.DB) *FriendRequest {
|
|
||||||
var fr FriendRequest
|
|
||||||
fr.DB = db
|
fr.DB = db
|
||||||
return &fr
|
return &fr
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *FriendRequest) Create(ctx context.Context, friends []*FriendRequest) (err error) {
|
type FriendRequestGorm struct {
|
||||||
|
DB *gorm.DB `gorm:"-"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *FriendRequestGorm) Create(ctx context.Context, friends []*table.FriendRequestModel) (err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "friends", friends)
|
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "friends", friends)
|
||||||
}()
|
}()
|
||||||
return utils.Wrap(f.DB.Create(&friends).Error, "")
|
return utils.Wrap(f.DB.Model(&table.FriendRequestModel{}).Create(&friends).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *FriendRequest) Delete(ctx context.Context, fromUserID, toUserID string) (err error) {
|
func (f *FriendRequestGorm) Delete(ctx context.Context, fromUserID, toUserID string) (err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "fromUserID", fromUserID, "toUserID", toUserID)
|
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "fromUserID", fromUserID, "toUserID", toUserID)
|
||||||
}()
|
}()
|
||||||
return utils.Wrap(f.DB.Where("from_user_id = ? and to_user_id = ?", fromUserID, toUserID).Delete(&FriendRequest{}).Error, "")
|
return utils.Wrap(f.DB.Model(&table.FriendRequestModel{}).Where("from_user_id = ? and to_user_id = ?", fromUserID, toUserID).Delete(&table.FriendRequestModel{}).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *FriendRequest) UpdateByMap(ctx context.Context, ownerUserID string, args map[string]interface{}) (err error) {
|
func (f *FriendRequestGorm) UpdateByMap(ctx context.Context, ownerUserID string, args map[string]interface{}) (err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "ownerUserID", ownerUserID, "args", args)
|
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "ownerUserID", ownerUserID, "args", args)
|
||||||
}()
|
}()
|
||||||
return utils.Wrap(f.DB.Where("owner_user_id = ?", ownerUserID).Updates(args).Error, "")
|
return utils.Wrap(f.DB.Model(&table.FriendRequestModel{}).Where("owner_user_id = ?", ownerUserID).Updates(args).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *FriendRequest) Update(ctx context.Context, friends []*FriendRequest) (err error) {
|
func (f *FriendRequestGorm) Update(ctx context.Context, friends []*table.FriendRequestModel) (err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "friends", friends)
|
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "friends", friends)
|
||||||
}()
|
}()
|
||||||
return utils.Wrap(f.DB.Updates(&friends).Error, "")
|
return utils.Wrap(f.DB.Model(&table.FriendRequestModel{}).Updates(&friends).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *FriendRequest) Find(ctx context.Context, ownerUserID string) (friends []*FriendRequest, err error) {
|
func (f *FriendRequestGorm) Find(ctx context.Context, ownerUserID string) (friends []*table.FriendRequestModel, err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "ownerUserID", ownerUserID, "friends", friends)
|
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "ownerUserID", ownerUserID, "friends", friends)
|
||||||
}()
|
}()
|
||||||
return friends, utils.Wrap(f.DB.Where("owner_user_id = ?", ownerUserID).Find(&friends).Error, "")
|
return friends, utils.Wrap(f.DB.Model(&table.FriendRequestModel{}).Where("owner_user_id = ?", ownerUserID).Find(&friends).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *FriendRequest) Take(ctx context.Context, fromUserID, toUserID string) (friend *FriendRequest, err error) {
|
func (f *FriendRequestGorm) Take(ctx context.Context, fromUserID, toUserID string) (friend *table.FriendRequestModel, err error) {
|
||||||
friend = &FriendRequest{}
|
friend = &table.FriendRequestModel{}
|
||||||
defer tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "fromUserID", fromUserID, "toUserID", toUserID, "friend", friend)
|
defer tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "fromUserID", fromUserID, "toUserID", toUserID, "friend", friend)
|
||||||
return friend, utils.Wrap(f.DB.Where("from_user_id = ? and to_user_id", fromUserID, toUserID).Take(friend).Error, "")
|
return friend, utils.Wrap(f.DB.Model(&table.FriendRequestModel{}).Where("from_user_id = ? and to_user_id", fromUserID, toUserID).Take(friend).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *FriendRequest) FindToUserID(ctx context.Context, toUserID string) (friends []*FriendRequest, err error) {
|
func (f *FriendRequestGorm) FindToUserID(ctx context.Context, toUserID string) (friends []*table.FriendRequestModel, err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "toUserID", toUserID, "friends", friends)
|
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "toUserID", toUserID, "friends", friends)
|
||||||
}()
|
}()
|
||||||
return friends, utils.Wrap(f.DB.Where("to_user_id = ?", toUserID).Find(&friends).Error, "")
|
return friends, utils.Wrap(f.DB.Model(&table.FriendRequestModel{}).Where("to_user_id = ?", toUserID).Find(&friends).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *FriendRequest) FindFromUserID(ctx context.Context, fromUserID string) (friends []*FriendRequest, err error) {
|
func (f *FriendRequestGorm) FindFromUserID(ctx context.Context, fromUserID string) (friends []*table.FriendRequestModel, err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "fromUserID", fromUserID, "friends", friends)
|
tracelog.SetCtxDebug(ctx, utils.GetSelfFuncName(), err, "fromUserID", fromUserID, "friends", friends)
|
||||||
}()
|
}()
|
||||||
return friends, utils.Wrap(f.DB.Where("from_user_id = ?", fromUserID).Find(&friends).Error, "")
|
return friends, utils.Wrap(f.DB.Model(&table.FriendRequestModel{}).Where("from_user_id = ?", fromUserID).Find(&friends).Error, "")
|
||||||
}
|
|
||||||
|
|
||||||
// who apply to add me
|
|
||||||
func GetReceivedFriendsApplicationListByUserID(ToUserID string) ([]FriendRequest, error) {
|
|
||||||
var usersInfo []FriendRequest
|
|
||||||
err := FriendRequestDB.Table("friend_requests").Where("to_user_id=?", ToUserID).Find(&usersInfo).Error
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return usersInfo, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// I apply to add somebody
|
|
||||||
func GetSendFriendApplicationListByUserID(FromUserID string) ([]FriendRequest, error) {
|
|
||||||
var usersInfo []FriendRequest
|
|
||||||
err := FriendRequestDB.Table("friend_requests").Where("from_user_id=?", FromUserID).Find(&usersInfo).Error
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return usersInfo, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// FromUserId apply to add ToUserID
|
|
||||||
func GetFriendApplicationByBothUserID(FromUserID, ToUserID string) (*FriendRequest, error) {
|
|
||||||
var friendRequest FriendRequest
|
|
||||||
err := FriendRequestDB.Table("friend_requests").Where("from_user_id=? and to_user_id=?", FromUserID, ToUserID).Take(&friendRequest).Error
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return &friendRequest, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func UpdateFriendApplication(friendRequest *FriendRequest) error {
|
|
||||||
friendRequest.CreateTime = time.Now()
|
|
||||||
return FriendRequestDB.Table("friend_requests").Where("from_user_id=? and to_user_id=?",
|
|
||||||
friendRequest.FromUserID, friendRequest.ToUserID).Updates(&friendRequest).Error
|
|
||||||
}
|
|
||||||
|
|
||||||
func InsertFriendApplication(friendRequest *FriendRequest, args map[string]interface{}) error {
|
|
||||||
if err := FriendRequestDB.Table("friend_requests").Create(friendRequest).Error; err == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
//t := dbConn.Debug().Table("friend_requests").Where("from_user_id = ? and to_user_id = ?", friendRequest.FromUserID, friendRequest.ToUserID).Select("*").Updates(*friendRequest)
|
|
||||||
//if t.RowsAffected == 0 {
|
|
||||||
// return utils.Wrap(errors.New("RowsAffected == 0"), "no update")
|
|
||||||
//}
|
|
||||||
//return utils.Wrap(t.Error, "")
|
|
||||||
|
|
||||||
friendRequest.CreateTime = time.Now()
|
|
||||||
args["create_time"] = friendRequest.CreateTime
|
|
||||||
u := FriendRequestDB.Model(friendRequest).Updates(args)
|
|
||||||
//u := dbConn.Table("friend_requests").Where("from_user_id=? and to_user_id=?",
|
|
||||||
// friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest)
|
|
||||||
//u := dbConn.Table("friend_requests").Where("from_user_id=? and to_user_id=?",
|
|
||||||
// friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest)
|
|
||||||
if u.RowsAffected != 0 {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
if friendRequest.CreateTime.Unix() < 0 {
|
|
||||||
friendRequest.CreateTime = time.Now()
|
|
||||||
}
|
|
||||||
if friendRequest.HandleTime.Unix() < 0 {
|
|
||||||
friendRequest.HandleTime = utils.UnixSecondToTime(0)
|
|
||||||
}
|
|
||||||
err := FriendRequestDB.Table("friend_requests").Create(friendRequest).Error
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
@ -2,62 +2,48 @@ package relation
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"Open_IM/pkg/common/constant"
|
"Open_IM/pkg/common/constant"
|
||||||
|
"Open_IM/pkg/common/db/table"
|
||||||
"Open_IM/pkg/common/tracelog"
|
"Open_IM/pkg/common/tracelog"
|
||||||
"Open_IM/pkg/utils"
|
"Open_IM/pkg/utils"
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
"time"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var GroupMemberDB *gorm.DB
|
type GroupMemberGorm struct {
|
||||||
|
DB *gorm.DB
|
||||||
type GroupMember struct {
|
|
||||||
GroupID string `gorm:"column:group_id;primary_key;size:64"`
|
|
||||||
UserID string `gorm:"column:user_id;primary_key;size:64"`
|
|
||||||
Nickname string `gorm:"column:nickname;size:255"`
|
|
||||||
FaceURL string `gorm:"column:user_group_face_url;size:255"`
|
|
||||||
RoleLevel int32 `gorm:"column:role_level"`
|
|
||||||
JoinTime time.Time `gorm:"column:join_time"`
|
|
||||||
JoinSource int32 `gorm:"column:join_source"`
|
|
||||||
InviterUserID string `gorm:"column:inviter_user_id;size:64"`
|
|
||||||
OperatorUserID string `gorm:"column:operator_user_id;size:64"`
|
|
||||||
MuteEndTime time.Time `gorm:"column:mute_end_time"`
|
|
||||||
Ex string `gorm:"column:ex;size:1024"`
|
|
||||||
DB *gorm.DB `gorm:"-" json:"-"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewGroupMemberDB(db *gorm.DB) *GroupMember {
|
func NewGroupMemberDB(db *gorm.DB) *GroupMemberGorm {
|
||||||
return &GroupMember{DB: db}
|
return &GroupMemberGorm{DB: db}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *GroupMember) Create(ctx context.Context, groupMemberList []*GroupMember, tx ...*gorm.DB) (err error) {
|
func (g *GroupMemberGorm) Create(ctx context.Context, groupMemberList []*table.GroupMemberModel, tx ...*gorm.DB) (err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupMemberList", groupMemberList)
|
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupMemberList", groupMemberList)
|
||||||
}()
|
}()
|
||||||
return utils.Wrap(getDBConn(g.DB, tx).Create(&groupMemberList).Error, "")
|
return utils.Wrap(getDBConn(g.DB, tx).Create(&groupMemberList).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *GroupMember) Delete(ctx context.Context, groupMembers []*GroupMember, tx ...*gorm.DB) (err error) {
|
func (g *GroupMemberGorm) Delete(ctx context.Context, groupMembers []*table.GroupMemberModel, tx ...*gorm.DB) (err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupMembers", groupMembers)
|
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupMembers", groupMembers)
|
||||||
}()
|
}()
|
||||||
return utils.Wrap(getDBConn(g.DB, tx).Delete(groupMembers).Error, "")
|
return utils.Wrap(getDBConn(g.DB, tx).Delete(groupMembers).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *GroupMember) UpdateByMap(ctx context.Context, groupID string, userID string, args map[string]interface{}, tx ...*gorm.DB) (err error) {
|
func (g *GroupMemberGorm) UpdateByMap(ctx context.Context, groupID string, userID string, args map[string]interface{}, tx ...*gorm.DB) (err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID, "userID", userID, "args", args)
|
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID, "userID", userID, "args", args)
|
||||||
}()
|
}()
|
||||||
return utils.Wrap(getDBConn(g.DB, tx).Model(&GroupMember{}).Where("group_id = ? and user_id = ?", groupID, userID).Updates(args).Error, "")
|
return utils.Wrap(getDBConn(g.DB, tx).Model(&table.GroupMemberModel{}).Where("group_id = ? and user_id = ?", groupID, userID).Updates(args).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *GroupMember) Update(ctx context.Context, groupMembers []*GroupMember, tx ...*gorm.DB) (err error) {
|
func (g *GroupMemberGorm) Update(ctx context.Context, groupMembers []*table.GroupMemberModel, tx ...*gorm.DB) (err error) {
|
||||||
defer func() { tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupMembers", groupMembers) }()
|
defer func() { tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupMembers", groupMembers) }()
|
||||||
return utils.Wrap(getDBConn(g.DB, tx).Updates(&groupMembers).Error, "")
|
return utils.Wrap(getDBConn(g.DB, tx).Updates(&groupMembers).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *GroupMember) Find(ctx context.Context, groupMembers []*GroupMember, tx ...*gorm.DB) (groupList []*GroupMember, err error) {
|
func (g *GroupMemberGorm) Find(ctx context.Context, groupMembers []*table.GroupMemberModel, tx ...*gorm.DB) (groupList []*table.GroupMemberModel, err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupMembers", groupMembers, "groupList", groupList)
|
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupMembers", groupMembers, "groupList", groupList)
|
||||||
}()
|
}()
|
||||||
@ -68,230 +54,230 @@ func (g *GroupMember) Find(ctx context.Context, groupMembers []*GroupMember, tx
|
|||||||
return groupList, utils.Wrap(getDBConn(g.DB, tx).Where("(group_id, user_id) in ?", where).Find(&groupList).Error, "")
|
return groupList, utils.Wrap(getDBConn(g.DB, tx).Where("(group_id, user_id) in ?", where).Find(&groupList).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *GroupMember) Take(ctx context.Context, groupID string, userID string, tx ...*gorm.DB) (groupMember *GroupMember, err error) {
|
func (g *GroupMemberGorm) Take(ctx context.Context, groupID string, userID string, tx ...*gorm.DB) (groupMember *table.GroupMemberModel, err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID, "userID", userID, "groupMember", *groupMember)
|
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID, "userID", userID, "groupMember", *groupMember)
|
||||||
}()
|
}()
|
||||||
groupMember = &GroupMember{}
|
groupMember = &table.GroupMemberModel{}
|
||||||
return groupMember, utils.Wrap(getDBConn(g.DB, tx).Where("group_id = ? and user_id = ?", groupID, userID).Take(groupMember).Error, "")
|
return groupMember, utils.Wrap(getDBConn(g.DB, tx).Where("group_id = ? and user_id = ?", groupID, userID).Take(groupMember).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *GroupMember) TakeOwnerInfo(ctx context.Context, groupID string, tx ...*gorm.DB) (groupMember *GroupMember, err error) {
|
func (g *GroupMemberGorm) TakeOwnerInfo(ctx context.Context, groupID string, tx ...*gorm.DB) (groupMember *table.GroupMemberModel, err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID, "groupMember", *groupMember)
|
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID, "groupMember", *groupMember)
|
||||||
}()
|
}()
|
||||||
groupMember = &GroupMember{}
|
groupMember = &table.GroupMemberModel{}
|
||||||
return groupMember, utils.Wrap(getDBConn(g.DB, tx).Where("group_id = ? and role_level = ?", groupID, constant.GroupOwner).Take(groupMember).Error, "")
|
return groupMember, utils.Wrap(getDBConn(g.DB, tx).Where("group_id = ? and role_level = ?", groupID, constant.GroupOwner).Take(groupMember).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func InsertIntoGroupMember(toInsertInfo GroupMember) error {
|
//func InsertIntoGroupMember(toInsertInfo GroupMemberModel) error {
|
||||||
toInsertInfo.JoinTime = time.Now()
|
// toInsertInfo.JoinTime = time.Now()
|
||||||
if toInsertInfo.RoleLevel == 0 {
|
// if toInsertInfo.RoleLevel == 0 {
|
||||||
toInsertInfo.RoleLevel = constant.GroupOrdinaryUsers
|
// toInsertInfo.RoleLevel = constant.GroupOrdinaryUsers
|
||||||
}
|
// }
|
||||||
toInsertInfo.MuteEndTime = time.Unix(int64(time.Now().Second()), 0)
|
// toInsertInfo.MuteEndTime = time.Unix(int64(time.Now().Second()), 0)
|
||||||
err := GroupMemberDB.Table("group_members").Create(toInsertInfo).Error
|
// err := GroupMemberDB.Table("group_members").Create(toInsertInfo).Error
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
return err
|
// return err
|
||||||
}
|
// }
|
||||||
return nil
|
// return nil
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
func BatchInsertIntoGroupMember(toInsertInfoList []*GroupMember) error {
|
//func BatchInsertIntoGroupMember(toInsertInfoList []*GroupMemberModel) error {
|
||||||
for _, toInsertInfo := range toInsertInfoList {
|
// for _, toInsertInfo := range toInsertInfoList {
|
||||||
toInsertInfo.JoinTime = time.Now()
|
// toInsertInfo.JoinTime = time.Now()
|
||||||
if toInsertInfo.RoleLevel == 0 {
|
// if toInsertInfo.RoleLevel == 0 {
|
||||||
toInsertInfo.RoleLevel = constant.GroupOrdinaryUsers
|
// toInsertInfo.RoleLevel = constant.GroupOrdinaryUsers
|
||||||
}
|
// }
|
||||||
toInsertInfo.MuteEndTime = time.Unix(int64(time.Now().Second()), 0)
|
// toInsertInfo.MuteEndTime = time.Unix(int64(time.Now().Second()), 0)
|
||||||
}
|
// }
|
||||||
return GroupMemberDB.Create(toInsertInfoList).Error
|
// return GroupMemberDB.Create(toInsertInfoList).Error
|
||||||
|
//
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
func GetGroupMemberListByUserID(userID string) ([]GroupMember, error) {
|
//func GetGroupMemberListByUserID(userID string) ([]GroupMemberModel, error) {
|
||||||
var groupMemberList []GroupMember
|
// var groupMemberList []GroupMemberModel
|
||||||
err := GroupMemberDB.Table("group_members").Where("user_id=?", userID).Find(&groupMemberList).Error
|
// err := GroupMemberDB.Table("group_members").Where("user_id=?", userID).Find(&groupMemberList).Error
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
return nil, err
|
// return nil, err
|
||||||
}
|
// }
|
||||||
return groupMemberList, nil
|
// return groupMemberList, nil
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
func GetGroupMemberListByGroupID(groupID string) ([]GroupMember, error) {
|
//func GetGroupMemberListByGroupID(groupID string) ([]GroupMemberModel, error) {
|
||||||
var groupMemberList []GroupMember
|
// var groupMemberList []GroupMemberModel
|
||||||
err := GroupMemberDB.Table("group_members").Where("group_id=?", groupID).Find(&groupMemberList).Error
|
// err := GroupMemberDB.Table("group_members").Where("group_id=?", groupID).Find(&groupMemberList).Error
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
return nil, err
|
// return nil, err
|
||||||
}
|
// }
|
||||||
return groupMemberList, nil
|
// return groupMemberList, nil
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
func GetGroupMemberIDListByGroupID(groupID string) ([]string, error) {
|
//func GetGroupMemberIDListByGroupID(groupID string) ([]string, error) {
|
||||||
var groupMemberIDList []string
|
// var groupMemberIDList []string
|
||||||
err := GroupMemberDB.Table("group_members").Where("group_id=?", groupID).Pluck("user_id", &groupMemberIDList).Error
|
// err := GroupMemberDB.Table("group_members").Where("group_id=?", groupID).Pluck("user_id", &groupMemberIDList).Error
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
return nil, err
|
// return nil, err
|
||||||
}
|
// }
|
||||||
return groupMemberIDList, nil
|
// return groupMemberIDList, nil
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
func GetGroupMemberListByGroupIDAndRoleLevel(groupID string, roleLevel int32) ([]GroupMember, error) {
|
//func GetGroupMemberListByGroupIDAndRoleLevel(groupID string, roleLevel int32) ([]GroupMemberModel, error) {
|
||||||
var groupMemberList []GroupMember
|
// var groupMemberList []GroupMemberModel
|
||||||
err := GroupMemberDB.Table("group_members").Where("group_id=? and role_level=?", groupID, roleLevel).Find(&groupMemberList).Error
|
// err := GroupMemberDB.Table("group_members").Where("group_id=? and role_level=?", groupID, roleLevel).Find(&groupMemberList).Error
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
return nil, err
|
// return nil, err
|
||||||
}
|
// }
|
||||||
return groupMemberList, nil
|
// return groupMemberList, nil
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
func GetGroupMemberInfoByGroupIDAndUserID(groupID, userID string) (*GroupMember, error) {
|
//func GetGroupMemberInfoByGroupIDAndUserID(groupID, userID string) (*GroupMemberModel, error) {
|
||||||
var groupMember GroupMember
|
// var groupMember GroupMemberModel
|
||||||
err := GroupMemberDB.Table("group_members").Where("group_id=? and user_id=? ", groupID, userID).Limit(1).Take(&groupMember).Error
|
// err := GroupMemberDB.Table("group_members").Where("group_id=? and user_id=? ", groupID, userID).Limit(1).Take(&groupMember).Error
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
return nil, err
|
// return nil, err
|
||||||
}
|
// }
|
||||||
return &groupMember, nil
|
// return &groupMember, nil
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
func DeleteGroupMemberByGroupIDAndUserID(groupID, userID string) error {
|
//func DeleteGroupMemberByGroupIDAndUserID(groupID, userID string) error {
|
||||||
return GroupMemberDB.Table("group_members").Where("group_id=? and user_id=? ", groupID, userID).Delete(GroupMember{}).Error
|
// return GroupMemberDB.Table("group_members").Where("group_id=? and user_id=? ", groupID, userID).Delete(GroupMemberModel{}).Error
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
func DeleteGroupMemberByGroupID(groupID string) error {
|
//func DeleteGroupMemberByGroupID(groupID string) error {
|
||||||
return GroupMemberDB.Table("group_members").Where("group_id=? ", groupID).Delete(GroupMember{}).Error
|
// return GroupMemberDB.Table("group_members").Where("group_id=? ", groupID).Delete(GroupMemberModel{}).Error
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
func UpdateGroupMemberInfo(groupMemberInfo GroupMember) error {
|
//func UpdateGroupMemberInfo(groupMemberInfo GroupMemberModel) error {
|
||||||
return GroupMemberDB.Table("group_members").Where("group_id=? and user_id=?", groupMemberInfo.GroupID, groupMemberInfo.UserID).Updates(&groupMemberInfo).Error
|
// return GroupMemberDB.Table("group_members").Where("group_id=? and user_id=?", groupMemberInfo.GroupID, groupMemberInfo.UserID).Updates(&groupMemberInfo).Error
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
func UpdateGroupMemberInfoByMap(groupMemberInfo GroupMember, m map[string]interface{}) error {
|
//func UpdateGroupMemberInfoByMap(groupMemberInfo GroupMemberModel, m map[string]interface{}) error {
|
||||||
return GroupMemberDB.Table("group_members").Where("group_id=? and user_id=?", groupMemberInfo.GroupID, groupMemberInfo.UserID).Updates(m).Error
|
// return GroupMemberDB.Table("group_members").Where("group_id=? and user_id=?", groupMemberInfo.GroupID, groupMemberInfo.UserID).Updates(m).Error
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
func GetOwnerManagerByGroupID(groupID string) ([]GroupMember, error) {
|
//func GetOwnerManagerByGroupID(groupID string) ([]GroupMemberModel, error) {
|
||||||
var groupMemberList []GroupMember
|
// var groupMemberList []GroupMemberModel
|
||||||
err := GroupMemberDB.Table("group_members").Where("group_id=? and role_level>?", groupID, constant.GroupOrdinaryUsers).Find(&groupMemberList).Error
|
// err := GroupMemberDB.Table("group_members").Where("group_id=? and role_level>?", groupID, constant.GroupOrdinaryUsers).Find(&groupMemberList).Error
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
return nil, err
|
// return nil, err
|
||||||
}
|
// }
|
||||||
return groupMemberList, nil
|
// return groupMemberList, nil
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
func GetGroupMemberNumByGroupID(groupID string) (int64, error) {
|
//func GetGroupMemberNumByGroupID(groupID string) (int64, error) {
|
||||||
var number int64
|
// var number int64
|
||||||
err := GroupMemberDB.Table("group_members").Where("group_id=?", groupID).Count(&number).Error
|
// err := GroupMemberDB.Table("group_members").Where("group_id=?", groupID).Count(&number).Error
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
return 0, utils.Wrap(err, "")
|
// return 0, utils.Wrap(err, "")
|
||||||
}
|
// }
|
||||||
return number, nil
|
// return number, nil
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
func GetGroupOwnerInfoByGroupID(groupID string) (*GroupMember, error) {
|
//func GetGroupOwnerInfoByGroupID(groupID string) (*GroupMemberModel, error) {
|
||||||
omList, err := GetOwnerManagerByGroupID(groupID)
|
// omList, err := GetOwnerManagerByGroupID(groupID)
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
return nil, err
|
// return nil, err
|
||||||
}
|
// }
|
||||||
for _, v := range omList {
|
// for _, v := range omList {
|
||||||
if v.RoleLevel == constant.GroupOwner {
|
// if v.RoleLevel == constant.GroupOwner {
|
||||||
return &v, nil
|
// return &v, nil
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
return nil, utils.Wrap(constant.ErrGroupNoOwner, "")
|
// return nil, utils.Wrap(constant.ErrGroupNoOwner, "")
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
func IsExistGroupMember(groupID, userID string) bool {
|
//func IsExistGroupMember(groupID, userID string) bool {
|
||||||
var number int64
|
// var number int64
|
||||||
err := GroupMemberDB.Table("group_members").Where("group_id = ? and user_id = ?", groupID, userID).Count(&number).Error
|
// err := GroupMemberDB.Table("group_members").Where("group_id = ? and user_id = ?", groupID, userID).Count(&number).Error
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
return false
|
// return false
|
||||||
}
|
// }
|
||||||
if number != 1 {
|
// if number != 1 {
|
||||||
return false
|
// return false
|
||||||
}
|
// }
|
||||||
return true
|
// return true
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
func CheckIsExistGroupMember(ctx context.Context, groupID, userID string) error {
|
//func CheckIsExistGroupMember(ctx context.Context, groupID, userID string) error {
|
||||||
var number int64
|
// var number int64
|
||||||
err := GroupMemberDB.Table("group_members").Where("group_id = ? and user_id = ?", groupID, userID).Count(&number).Error
|
// err := GroupMemberDB.Table("group_members").Where("group_id = ? and user_id = ?", groupID, userID).Count(&number).Error
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
return constant.ErrDB.Wrap()
|
// return constant.ErrDB.Wrap()
|
||||||
}
|
// }
|
||||||
if number != 1 {
|
// if number != 1 {
|
||||||
return constant.ErrData.Wrap()
|
// return constant.ErrData.Wrap()
|
||||||
}
|
// }
|
||||||
return nil
|
// return nil
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
func GetGroupMemberByGroupID(groupID string, filter int32, begin int32, maxNumber int32) ([]GroupMember, error) {
|
//func GetGroupMemberByGroupID(groupID string, filter int32, begin int32, maxNumber int32) ([]GroupMember, error) {
|
||||||
var memberList []GroupMember
|
// var memberList []GroupMember
|
||||||
var err error
|
// var err error
|
||||||
if filter >= 0 {
|
// if filter >= 0 {
|
||||||
memberList, err = GetGroupMemberListByGroupIDAndRoleLevel(groupID, filter) //sorted by join time
|
// memberList, err = GetGroupMemberListByGroupIDAndRoleLevel(groupID, filter) //sorted by join time
|
||||||
} else {
|
// } else {
|
||||||
memberList, err = GetGroupMemberListByGroupID(groupID)
|
// memberList, err = GetGroupMemberListByGroupID(groupID)
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
return nil, err
|
// return nil, err
|
||||||
}
|
// }
|
||||||
if begin >= int32(len(memberList)) {
|
// if begin >= int32(len(memberList)) {
|
||||||
return nil, nil
|
// return nil, nil
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
var end int32
|
// var end int32
|
||||||
if begin+int32(maxNumber) < int32(len(memberList)) {
|
// if begin+int32(maxNumber) < int32(len(memberList)) {
|
||||||
end = begin + maxNumber
|
// end = begin + maxNumber
|
||||||
} else {
|
// } else {
|
||||||
end = int32(len(memberList))
|
// end = int32(len(memberList))
|
||||||
}
|
// }
|
||||||
return memberList[begin:end], nil
|
// return memberList[begin:end], nil
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
func GetJoinedGroupIDListByUserID(userID string) ([]string, error) {
|
//func GetJoinedGroupIDListByUserID(userID string) ([]string, error) {
|
||||||
memberList, err := GetGroupMemberListByUserID(userID)
|
// memberList, err := GetGroupMemberListByUserID(userID)
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
return nil, err
|
// return nil, err
|
||||||
}
|
// }
|
||||||
var groupIDList []string
|
// var groupIDList []string
|
||||||
for _, v := range memberList {
|
// for _, v := range memberList {
|
||||||
groupIDList = append(groupIDList, v.GroupID)
|
// groupIDList = append(groupIDList, v.GroupID)
|
||||||
}
|
// }
|
||||||
return groupIDList, nil
|
// return groupIDList, nil
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
func IsGroupOwnerAdmin(groupID, UserID string) bool {
|
//func IsGroupOwnerAdmin(groupID, UserID string) bool {
|
||||||
groupMemberList, err := GetOwnerManagerByGroupID(groupID)
|
// groupMemberList, err := GetOwnerManagerByGroupID(groupID)
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
return false
|
// return false
|
||||||
}
|
// }
|
||||||
for _, v := range groupMemberList {
|
// for _, v := range groupMemberList {
|
||||||
if v.UserID == UserID && v.RoleLevel > constant.GroupOrdinaryUsers {
|
// if v.UserID == UserID && v.RoleLevel > constant.GroupOrdinaryUsers {
|
||||||
return true
|
// return true
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
return false
|
// return false
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
func GetGroupMembersByGroupIdCMS(groupId string, userName string, showNumber, pageNumber int32) ([]GroupMember, error) {
|
//func GetGroupMembersByGroupIdCMS(groupId string, userName string, showNumber, pageNumber int32) ([]GroupMember, error) {
|
||||||
var groupMembers []GroupMember
|
// var groupMembers []GroupMember
|
||||||
err := GroupMemberDB.Table("group_members").Where("group_id=?", groupId).Where(fmt.Sprintf(" nickname like '%%%s%%' ", userName)).Limit(int(showNumber)).Offset(int(showNumber * (pageNumber - 1))).Find(&groupMembers).Error
|
// err := GroupMemberDB.Table("group_members").Where("group_id=?", groupId).Where(fmt.Sprintf(" nickname like '%%%s%%' ", userName)).Limit(int(showNumber)).Offset(int(showNumber * (pageNumber - 1))).Find(&groupMembers).Error
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
return nil, err
|
// return nil, err
|
||||||
}
|
// }
|
||||||
return groupMembers, nil
|
// return groupMembers, nil
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
func GetGroupMembersCount(groupID, userName string) (int64, error) {
|
//func GetGroupMembersCount(groupID, userName string) (int64, error) {
|
||||||
var count int64
|
// var count int64
|
||||||
if err := GroupMemberDB.Table("group_members").Where("group_id=?", groupID).Where(fmt.Sprintf(" nickname like '%%%s%%' ", userName)).Count(&count).Error; err != nil {
|
// if err := GroupMemberDB.Table("group_members").Where("group_id=?", groupID).Where(fmt.Sprintf(" nickname like '%%%s%%' ", userName)).Count(&count).Error; err != nil {
|
||||||
return count, err
|
// return count, err
|
||||||
}
|
// }
|
||||||
return count, nil
|
// return count, nil
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
func UpdateGroupMemberInfoDefaultZero(groupMemberInfo GroupMember, args map[string]interface{}) error {
|
//func UpdateGroupMemberInfoDefaultZero(groupMemberInfo GroupMember, args map[string]interface{}) error {
|
||||||
return GroupMemberDB.Model(groupMemberInfo).Updates(args).Error
|
// return GroupMemberDB.Model(groupMemberInfo).Updates(args).Error
|
||||||
}
|
//}
|
||||||
|
@ -1,75 +1,58 @@
|
|||||||
package relation
|
package relation
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"Open_IM/pkg/common/db/table"
|
||||||
"Open_IM/pkg/common/tracelog"
|
"Open_IM/pkg/common/tracelog"
|
||||||
"Open_IM/pkg/utils"
|
"Open_IM/pkg/utils"
|
||||||
"context"
|
"context"
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
"time"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type Group struct {
|
type GroupGorm struct {
|
||||||
GroupID string `gorm:"column:group_id;primary_key;size:64" json:"groupID" binding:"required"`
|
DB *gorm.DB
|
||||||
GroupName string `gorm:"column:name;size:255" json:"groupName"`
|
|
||||||
Notification string `gorm:"column:notification;size:255" json:"notification"`
|
|
||||||
Introduction string `gorm:"column:introduction;size:255" json:"introduction"`
|
|
||||||
FaceURL string `gorm:"column:face_url;size:255" json:"faceURL"`
|
|
||||||
CreateTime time.Time `gorm:"column:create_time;index:create_time"`
|
|
||||||
Ex string `gorm:"column:ex" json:"ex;size:1024" json:"ex"`
|
|
||||||
Status int32 `gorm:"column:status"`
|
|
||||||
CreatorUserID string `gorm:"column:creator_user_id;size:64"`
|
|
||||||
GroupType int32 `gorm:"column:group_type"`
|
|
||||||
NeedVerification int32 `gorm:"column:need_verification"`
|
|
||||||
LookMemberInfo int32 `gorm:"column:look_member_info" json:"lookMemberInfo"`
|
|
||||||
ApplyMemberFriend int32 `gorm:"column:apply_member_friend" json:"applyMemberFriend"`
|
|
||||||
NotificationUpdateTime time.Time `gorm:"column:notification_update_time"`
|
|
||||||
NotificationUserID string `gorm:"column:notification_user_id;size:64"`
|
|
||||||
DB *gorm.DB
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewGroupDB(db *gorm.DB) *Group {
|
func NewGroupDB(db *gorm.DB) *GroupGorm {
|
||||||
var group Group
|
return &GroupGorm{DB: db}
|
||||||
group.DB = db
|
|
||||||
return &group
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *Group) Create(ctx context.Context, groups []*Group, tx ...*gorm.DB) (err error) {
|
func (g *GroupGorm) Create(ctx context.Context, groups []*table.GroupModel, tx ...*gorm.DB) (err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groups", groups)
|
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groups", groups)
|
||||||
}()
|
}()
|
||||||
return utils.Wrap(getDBConn(g.DB, tx).Create(&groups).Error, "")
|
return utils.Wrap(getDBConn(g.DB, tx).Create(&groups).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *Group) Delete(ctx context.Context, groupIDs []string, tx ...*gorm.DB) (err error) {
|
func (g *GroupGorm) Delete(ctx context.Context, groupIDs []string, tx ...*gorm.DB) (err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupIDs", groupIDs)
|
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupIDs", groupIDs)
|
||||||
}()
|
}()
|
||||||
return utils.Wrap(getDBConn(g.DB, tx).Where("group_id in (?)", groupIDs).Delete(&Group{}).Error, "")
|
return utils.Wrap(getDBConn(g.DB, tx).Where("group_id in (?)", groupIDs).Delete(&table.GroupModel{}).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *Group) UpdateByMap(ctx context.Context, groupID string, args map[string]interface{}, tx ...*gorm.DB) (err error) {
|
func (g *GroupGorm) UpdateByMap(ctx context.Context, groupID string, args map[string]interface{}, tx ...*gorm.DB) (err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID, "args", args)
|
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID, "args", args)
|
||||||
}()
|
}()
|
||||||
return utils.Wrap(getDBConn(g.DB, tx).Where("group_id = ?", groupID).Model(g).Updates(args).Error, "")
|
return utils.Wrap(getDBConn(g.DB, tx).Where("group_id = ?", groupID).Model(g).Updates(args).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *Group) Update(ctx context.Context, groups []*Group, tx ...*gorm.DB) (err error) {
|
func (g *GroupGorm) Update(ctx context.Context, groups []*table.GroupModel, tx ...*gorm.DB) (err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groups", groups)
|
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groups", groups)
|
||||||
}()
|
}()
|
||||||
return utils.Wrap(getDBConn(g.DB, tx).Updates(&groups).Error, "")
|
return utils.Wrap(getDBConn(g.DB, tx).Updates(&groups).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *Group) Find(ctx context.Context, groupIDs []string, tx ...*gorm.DB) (groups []*Group, err error) {
|
func (g *GroupGorm) Find(ctx context.Context, groupIDs []string, tx ...*gorm.DB) (groups []*table.GroupModel, err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupIDs", groupIDs, "groups", groups)
|
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupIDs", groupIDs, "groups", groups)
|
||||||
}()
|
}()
|
||||||
return groups, utils.Wrap(getDBConn(g.DB, tx).Where("group_id in (?)", groupIDs).Find(&groups).Error, "")
|
return groups, utils.Wrap(getDBConn(g.DB, tx).Where("group_id in (?)", groupIDs).Find(&groups).Error, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *Group) Take(ctx context.Context, groupID string, tx ...*gorm.DB) (group *Group, err error) {
|
func (g *GroupGorm) Take(ctx context.Context, groupID string, tx ...*gorm.DB) (group *table.GroupModel, err error) {
|
||||||
group = &Group{}
|
group = &table.GroupModel{}
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID, "group", *group)
|
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID, "group", *group)
|
||||||
}()
|
}()
|
||||||
|
@ -1,69 +1,52 @@
|
|||||||
package relation
|
package relation
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"Open_IM/pkg/common/db/table"
|
||||||
"Open_IM/pkg/common/tracelog"
|
"Open_IM/pkg/common/tracelog"
|
||||||
"Open_IM/pkg/utils"
|
"Open_IM/pkg/utils"
|
||||||
"context"
|
"context"
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
"time"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var GroupRequestDB *gorm.DB
|
type GroupRequestGorm struct {
|
||||||
|
DB *gorm.DB
|
||||||
type GroupRequest struct {
|
|
||||||
UserID string `gorm:"column:user_id;primary_key;size:64"`
|
|
||||||
GroupID string `gorm:"column:group_id;primary_key;size:64"`
|
|
||||||
HandleResult int32 `gorm:"column:handle_result"`
|
|
||||||
ReqMsg string `gorm:"column:req_msg;size:1024"`
|
|
||||||
HandledMsg string `gorm:"column:handle_msg;size:1024"`
|
|
||||||
ReqTime time.Time `gorm:"column:req_time"`
|
|
||||||
HandleUserID string `gorm:"column:handle_user_id;size:64"`
|
|
||||||
HandledTime time.Time `gorm:"column:handle_time"`
|
|
||||||
JoinSource int32 `gorm:"column:join_source"`
|
|
||||||
InviterUserID string `gorm:"column:inviter_user_id;size:64"`
|
|
||||||
Ex string `gorm:"column:ex;size:1024"`
|
|
||||||
DB *gorm.DB
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewGroupRequest(db *gorm.DB) *GroupRequest {
|
func NewGroupRequest(db *gorm.DB) *GroupRequestGorm {
|
||||||
return &GroupRequest{
|
return &GroupRequestGorm{
|
||||||
DB: db,
|
DB: db,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (GroupRequest) TableName() string {
|
func (g *GroupRequestGorm) Create(ctx context.Context, groupRequests []*table.GroupRequestModel, tx ...*gorm.DB) (err error) {
|
||||||
return "friend_requests"
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*GroupRequest) Create(ctx context.Context, groupRequests []*GroupRequest) (err error) {
|
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupRequests", groupRequests)
|
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupRequests", groupRequests)
|
||||||
}()
|
}()
|
||||||
return utils.Wrap(GroupRequestDB.Create(&groupRequests).Error, utils.GetSelfFuncName())
|
return utils.Wrap(getDBConn(g.DB, tx).Create(&groupRequests).Error, utils.GetSelfFuncName())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*GroupRequest) Delete(ctx context.Context, groupRequests []*GroupRequest) (err error) {
|
func (g *GroupRequestGorm) Delete(ctx context.Context, groupRequests []*table.GroupRequestModel, tx ...*gorm.DB) (err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupRequests", groupRequests)
|
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupRequests", groupRequests)
|
||||||
}()
|
}()
|
||||||
return utils.Wrap(GroupRequestDB.Delete(&groupRequests).Error, utils.GetSelfFuncName())
|
return utils.Wrap(getDBConn(g.DB, tx).Delete(&groupRequests).Error, utils.GetSelfFuncName())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*GroupRequest) UpdateByMap(ctx context.Context, groupID string, userID string, args map[string]interface{}) (err error) {
|
func (g *GroupRequestGorm) UpdateByMap(ctx context.Context, groupID string, userID string, args map[string]interface{}, tx ...*gorm.DB) (err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID, "userID", userID, "args", args)
|
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID, "userID", userID, "args", args)
|
||||||
}()
|
}()
|
||||||
return utils.Wrap(GroupRequestDB.Where("group_id = ? and user_id = ? ", groupID, userID).Updates(args).Error, utils.GetSelfFuncName())
|
return utils.Wrap(getDBConn(g.DB, tx).Where("group_id = ? and user_id = ? ", groupID, userID).Updates(args).Error, utils.GetSelfFuncName())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*GroupRequest) Update(ctx context.Context, groupRequests []*GroupRequest) (err error) {
|
func (g *GroupRequestGorm) Update(ctx context.Context, groupRequests []*table.GroupRequestModel, tx ...*gorm.DB) (err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupRequests", groupRequests)
|
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupRequests", groupRequests)
|
||||||
}()
|
}()
|
||||||
return utils.Wrap(GroupRequestDB.Updates(&groupRequests).Error, utils.GetSelfFuncName())
|
return utils.Wrap(getDBConn(g.DB, tx).Updates(&groupRequests).Error, utils.GetSelfFuncName())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*GroupRequest) Find(ctx context.Context, groupRequests []*GroupRequest) (resultGroupRequests []*GroupRequest, err error) {
|
func (g *GroupRequestGorm) Find(ctx context.Context, groupRequests []*table.GroupRequestModel, tx ...*gorm.DB) (resultGroupRequests []*table.GroupRequestModel, err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupRequests", groupRequests, "resultGroupRequests", resultGroupRequests)
|
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupRequests", groupRequests, "resultGroupRequests", resultGroupRequests)
|
||||||
}()
|
}()
|
||||||
@ -71,13 +54,13 @@ func (*GroupRequest) Find(ctx context.Context, groupRequests []*GroupRequest) (r
|
|||||||
for _, groupMember := range groupRequests {
|
for _, groupMember := range groupRequests {
|
||||||
where = append(where, []interface{}{groupMember.GroupID, groupMember.UserID})
|
where = append(where, []interface{}{groupMember.GroupID, groupMember.UserID})
|
||||||
}
|
}
|
||||||
return resultGroupRequests, utils.Wrap(GroupRequestDB.Where("(group_id, user_id) in ?", where).Find(&resultGroupRequests).Error, utils.GetSelfFuncName())
|
return resultGroupRequests, utils.Wrap(getDBConn(g.DB, tx).Where("(group_id, user_id) in ?", where).Find(&resultGroupRequests).Error, utils.GetSelfFuncName())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*GroupRequest) Take(ctx context.Context, groupID string, userID string) (groupRequest *GroupRequest, err error) {
|
func (g *GroupRequestGorm) Take(ctx context.Context, groupID string, userID string, tx ...*gorm.DB) (groupRequest *table.GroupRequestModel, err error) {
|
||||||
groupRequest = &GroupRequest{}
|
groupRequest = &table.GroupRequestModel{}
|
||||||
defer func() {
|
defer func() {
|
||||||
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID, "userID", userID, "groupRequest", *groupRequest)
|
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID, "userID", userID, "groupRequest", *groupRequest)
|
||||||
}()
|
}()
|
||||||
return groupRequest, utils.Wrap(GroupRequestDB.Where("group_id = ? and user_id = ? ", groupID, userID).Take(groupRequest).Error, utils.GetSelfFuncName())
|
return groupRequest, utils.Wrap(getDBConn(g.DB, tx).Where("group_id = ? and user_id = ? ", groupID, userID).Take(groupRequest).Error, utils.GetSelfFuncName())
|
||||||
}
|
}
|
||||||
|
91
pkg/common/db/table/table.go
Normal file
91
pkg/common/db/table/table.go
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
package table
|
||||||
|
|
||||||
|
import (
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
type FriendModel struct {
|
||||||
|
OwnerUserID string `gorm:"column:owner_user_id;primary_key;size:64"`
|
||||||
|
FriendUserID string `gorm:"column:friend_user_id;primary_key;size:64"`
|
||||||
|
Remark string `gorm:"column:remark;size:255"`
|
||||||
|
CreateTime time.Time `gorm:"column:create_time"`
|
||||||
|
AddSource int32 `gorm:"column:add_source"`
|
||||||
|
OperatorUserID string `gorm:"column:operator_user_id;size:64"`
|
||||||
|
Ex string `gorm:"column:ex;size:1024"`
|
||||||
|
}
|
||||||
|
type ConversationModel struct {
|
||||||
|
OwnerUserID string `gorm:"column:owner_user_id;primary_key;type:char(128)" json:"OwnerUserID"`
|
||||||
|
ConversationID string `gorm:"column:conversation_id;primary_key;type:char(128)" json:"conversationID"`
|
||||||
|
ConversationType int32 `gorm:"column:conversation_type" json:"conversationType"`
|
||||||
|
UserID string `gorm:"column:user_id;type:char(64)" json:"userID"`
|
||||||
|
GroupID string `gorm:"column:group_id;type:char(128)" json:"groupID"`
|
||||||
|
RecvMsgOpt int32 `gorm:"column:recv_msg_opt" json:"recvMsgOpt"`
|
||||||
|
UnreadCount int32 `gorm:"column:unread_count" json:"unreadCount"`
|
||||||
|
DraftTextTime int64 `gorm:"column:draft_text_time" json:"draftTextTime"`
|
||||||
|
IsPinned bool `gorm:"column:is_pinned" json:"isPinned"`
|
||||||
|
IsPrivateChat bool `gorm:"column:is_private_chat" json:"isPrivateChat"`
|
||||||
|
BurnDuration int32 `gorm:"column:burn_duration;default:30" json:"burnDuration"`
|
||||||
|
GroupAtType int32 `gorm:"column:group_at_type" json:"groupAtType"`
|
||||||
|
IsNotInGroup bool `gorm:"column:is_not_in_group" json:"isNotInGroup"`
|
||||||
|
UpdateUnreadCountTime int64 `gorm:"column:update_unread_count_time" json:"updateUnreadCountTime"`
|
||||||
|
AttachedInfo string `gorm:"column:attached_info;type:varchar(1024)" json:"attachedInfo"`
|
||||||
|
Ex string `gorm:"column:ex;type:varchar(1024)" json:"ex"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type GroupModel struct {
|
||||||
|
GroupID string `gorm:"column:group_id;primary_key;size:64" json:"groupID" binding:"required"`
|
||||||
|
GroupName string `gorm:"column:name;size:255" json:"groupName"`
|
||||||
|
Notification string `gorm:"column:notification;size:255" json:"notification"`
|
||||||
|
Introduction string `gorm:"column:introduction;size:255" json:"introduction"`
|
||||||
|
FaceURL string `gorm:"column:face_url;size:255" json:"faceURL"`
|
||||||
|
CreateTime time.Time `gorm:"column:create_time;index:create_time"`
|
||||||
|
Ex string `gorm:"column:ex" json:"ex;size:1024" json:"ex"`
|
||||||
|
Status int32 `gorm:"column:status"`
|
||||||
|
CreatorUserID string `gorm:"column:creator_user_id;size:64"`
|
||||||
|
GroupType int32 `gorm:"column:group_type"`
|
||||||
|
NeedVerification int32 `gorm:"column:need_verification"`
|
||||||
|
LookMemberInfo int32 `gorm:"column:look_member_info" json:"lookMemberInfo"`
|
||||||
|
ApplyMemberFriend int32 `gorm:"column:apply_member_friend" json:"applyMemberFriend"`
|
||||||
|
NotificationUpdateTime time.Time `gorm:"column:notification_update_time"`
|
||||||
|
NotificationUserID string `gorm:"column:notification_user_id;size:64"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type FriendRequestModel struct {
|
||||||
|
FromUserID string `gorm:"column:from_user_id;primary_key;size:64"`
|
||||||
|
ToUserID string `gorm:"column:to_user_id;primary_key;size:64"`
|
||||||
|
HandleResult int32 `gorm:"column:handle_result"`
|
||||||
|
ReqMsg string `gorm:"column:req_msg;size:255"`
|
||||||
|
CreateTime time.Time `gorm:"column:create_time"`
|
||||||
|
HandlerUserID string `gorm:"column:handler_user_id;size:64"`
|
||||||
|
HandleMsg string `gorm:"column:handle_msg;size:255"`
|
||||||
|
HandleTime time.Time `gorm:"column:handle_time"`
|
||||||
|
Ex string `gorm:"column:ex;size:1024"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type GroupMemberModel struct {
|
||||||
|
GroupID string `gorm:"column:group_id;primary_key;size:64"`
|
||||||
|
UserID string `gorm:"column:user_id;primary_key;size:64"`
|
||||||
|
Nickname string `gorm:"column:nickname;size:255"`
|
||||||
|
FaceURL string `gorm:"column:user_group_face_url;size:255"`
|
||||||
|
RoleLevel int32 `gorm:"column:role_level"`
|
||||||
|
JoinTime time.Time `gorm:"column:join_time"`
|
||||||
|
JoinSource int32 `gorm:"column:join_source"`
|
||||||
|
InviterUserID string `gorm:"column:inviter_user_id;size:64"`
|
||||||
|
OperatorUserID string `gorm:"column:operator_user_id;size:64"`
|
||||||
|
MuteEndTime time.Time `gorm:"column:mute_end_time"`
|
||||||
|
Ex string `gorm:"column:ex;size:1024"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type GroupRequestModel struct {
|
||||||
|
UserID string `gorm:"column:user_id;primary_key;size:64"`
|
||||||
|
GroupID string `gorm:"column:group_id;primary_key;size:64"`
|
||||||
|
HandleResult int32 `gorm:"column:handle_result"`
|
||||||
|
ReqMsg string `gorm:"column:req_msg;size:1024"`
|
||||||
|
HandledMsg string `gorm:"column:handle_msg;size:1024"`
|
||||||
|
ReqTime time.Time `gorm:"column:req_time"`
|
||||||
|
HandleUserID string `gorm:"column:handle_user_id;size:64"`
|
||||||
|
HandledTime time.Time `gorm:"column:handle_time"`
|
||||||
|
JoinSource int32 `gorm:"column:join_source"`
|
||||||
|
InviterUserID string `gorm:"column:inviter_user_id;size:64"`
|
||||||
|
Ex string `gorm:"column:ex;size:1024"`
|
||||||
|
}
|
@ -1,10 +1,6 @@
|
|||||||
package middleware
|
package middleware
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"Open_IM/pkg/common/config"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/common/token_verify"
|
|
||||||
"Open_IM/pkg/utils"
|
|
||||||
"bytes"
|
"bytes"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
@ -12,27 +8,6 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
)
|
)
|
||||||
|
|
||||||
func JWTAuth() gin.HandlerFunc {
|
|
||||||
return func(c *gin.Context) {
|
|
||||||
ok, userID, errInfo := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), "")
|
|
||||||
// log.NewInfo("0", utils.GetSelfFuncName(), "userID: ", userID)
|
|
||||||
c.Set("userID", userID)
|
|
||||||
if !ok {
|
|
||||||
log.NewError("", "GetUserIDFromToken false ", c.Request.Header.Get("token"))
|
|
||||||
c.Abort()
|
|
||||||
c.JSON(http.StatusOK, gin.H{"errCode": 400, "errMsg": errInfo})
|
|
||||||
return
|
|
||||||
} else {
|
|
||||||
if !utils.IsContain(userID, config.Config.Manager.AppManagerUid) {
|
|
||||||
c.Abort()
|
|
||||||
c.JSON(http.StatusOK, gin.H{"errCode": 400, "errMsg": "user is not admin"})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.NewInfo("0", utils.GetSelfFuncName(), "failed: ", errInfo)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func CorsHandler() gin.HandlerFunc {
|
func CorsHandler() gin.HandlerFunc {
|
||||||
return func(context *gin.Context) {
|
return func(context *gin.Context) {
|
||||||
context.Writer.Header().Set("Access-Control-Allow-Origin", "*")
|
context.Writer.Header().Set("Access-Control-Allow-Origin", "*")
|
||||||
|
@ -1,73 +0,0 @@
|
|||||||
package multi_terminal_login
|
|
||||||
|
|
||||||
//
|
|
||||||
//import (
|
|
||||||
// "Open_IM/internal/push/content_struct"
|
|
||||||
// "Open_IM/internal/push/logic"
|
|
||||||
// "Open_IM/pkg/common/config"
|
|
||||||
// "Open_IM/pkg/common/constant"
|
|
||||||
// "Open_IM/pkg/common/db"
|
|
||||||
// pbChat "Open_IM/pkg/proto/msg"
|
|
||||||
// "Open_IM/pkg/utils"
|
|
||||||
//)
|
|
||||||
//
|
|
||||||
//const DayOfSecond = 24*60*60
|
|
||||||
//func MultiTerminalLoginChecker(uid, token string, platformID int32) error {
|
|
||||||
// // 1.check userid and platform class 0 not exists and 1 exists
|
|
||||||
// exists, err := db.DB.ExistsUserIDAndPlatform(uid, constant.PlatformNameToClass(constant.PlatformIDToName(platformID)))
|
|
||||||
// if err != nil {
|
|
||||||
// return err
|
|
||||||
// }
|
|
||||||
// //get config multi login policy
|
|
||||||
// if config.Config.MultiLoginPolicy {
|
|
||||||
// //OnlyOneTerminalAccess policy need to check all terminal
|
|
||||||
// if constant.PlatformNameToClass(constant.PlatformIDToName(platformID)) == "PC" {
|
|
||||||
// exists, err = db.DB.ExistsUserIDAndPlatform(uid, "Mobile")
|
|
||||||
// if err != nil {
|
|
||||||
// return err
|
|
||||||
// }
|
|
||||||
// } else {
|
|
||||||
// exists, err = db.DB.ExistsUserIDAndPlatform(uid, "PC")
|
|
||||||
// if err != nil {
|
|
||||||
// return err
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// if exists == 1 {
|
|
||||||
// err := db.DB.SetUserIDAndPlatform(uid, constant.PlatformNameToClass(constant.PlatformIDToName(platformID)), token, config.Config.TokenPolicy.AccessExpire*DayOfSecond)
|
|
||||||
// if err != nil {
|
|
||||||
// return err
|
|
||||||
// }
|
|
||||||
// PushMessageToTheTerminal(uid, platformID)
|
|
||||||
// return nil
|
|
||||||
// }
|
|
||||||
// } else if config.Config.MultiLoginPolicy.MobileAndPCTerminalAccessButOtherTerminalKickEachOther {
|
|
||||||
// // common terminal need to kick eich other
|
|
||||||
// if exists == 1 {
|
|
||||||
// err := db.DB.SetUserIDAndPlatform(uid, constant.PlatformNameToClass(constant.PlatformIDToName(platformID)), token, config.Config.TokenPolicy.AccessExpire*DayOfSecond)
|
|
||||||
// if err != nil {
|
|
||||||
// return err
|
|
||||||
// }
|
|
||||||
// PushMessageToTheTerminal(uid, platformID)
|
|
||||||
// return nil
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// err = db.DB.SetUserIDAndPlatform(uid, constant.PlatformNameToClass(constant.PlatformIDToName(platformID)), token, config.Config.TokenPolicy.AccessExpire*DayOfSecond)
|
|
||||||
// if err != nil {
|
|
||||||
// return err
|
|
||||||
// }
|
|
||||||
// PushMessageToTheTerminal(uid, platformID)
|
|
||||||
// return nil
|
|
||||||
//}
|
|
||||||
////
|
|
||||||
////func PushMessageToTheTerminal(uid string, platform int32) {
|
|
||||||
////
|
|
||||||
//// logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{
|
|
||||||
//// SendID: uid,
|
|
||||||
//// RecvID: uid,
|
|
||||||
//// Content: content_struct.NewContentStructString(1, "", "Your account is already logged on other terminal,please confirm"),
|
|
||||||
//// SendTime: utils.GetCurrentTimestampBySecond(),
|
|
||||||
//// MsgFrom: constant.SysMsgType,
|
|
||||||
//// ContentType: constant.KickOnlineTip,
|
|
||||||
//// PlatformID: platform,
|
|
||||||
//// })
|
|
||||||
////}
|
|
@ -26,7 +26,7 @@ var _ = math.Inf
|
|||||||
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
|
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
|
||||||
|
|
||||||
type CreateGroupReq struct {
|
type CreateGroupReq struct {
|
||||||
InitMemberList []string `protobuf:"bytes,1,rep,name=initMemberList" json:"initMemberList,omitempty"`
|
InitMembers []string `protobuf:"bytes,1,rep,name=initMembers" json:"initMembers,omitempty"`
|
||||||
GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,2,opt,name=groupInfo" json:"groupInfo,omitempty"`
|
GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,2,opt,name=groupInfo" json:"groupInfo,omitempty"`
|
||||||
AdminUserIDs []string `protobuf:"bytes,3,rep,name=adminUserIDs" json:"adminUserIDs,omitempty"`
|
AdminUserIDs []string `protobuf:"bytes,3,rep,name=adminUserIDs" json:"adminUserIDs,omitempty"`
|
||||||
OwnerUserID string `protobuf:"bytes,4,opt,name=ownerUserID" json:"ownerUserID,omitempty"`
|
OwnerUserID string `protobuf:"bytes,4,opt,name=ownerUserID" json:"ownerUserID,omitempty"`
|
||||||
@ -39,7 +39,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_19947c3109871c24, []int{0}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{0}
|
||||||
}
|
}
|
||||||
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)
|
||||||
@ -59,9 +59,9 @@ func (m *CreateGroupReq) XXX_DiscardUnknown() {
|
|||||||
|
|
||||||
var xxx_messageInfo_CreateGroupReq proto.InternalMessageInfo
|
var xxx_messageInfo_CreateGroupReq proto.InternalMessageInfo
|
||||||
|
|
||||||
func (m *CreateGroupReq) GetInitMemberList() []string {
|
func (m *CreateGroupReq) GetInitMembers() []string {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.InitMemberList
|
return m.InitMembers
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -98,7 +98,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_19947c3109871c24, []int{1}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{1}
|
||||||
}
|
}
|
||||||
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)
|
||||||
@ -136,7 +136,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_19947c3109871c24, []int{2}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{2}
|
||||||
}
|
}
|
||||||
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)
|
||||||
@ -174,7 +174,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_19947c3109871c24, []int{3}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{3}
|
||||||
}
|
}
|
||||||
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)
|
||||||
@ -212,7 +212,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_19947c3109871c24, []int{4}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{4}
|
||||||
}
|
}
|
||||||
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)
|
||||||
@ -249,7 +249,7 @@ func (m *SetGroupInfoResp) Reset() { *m = SetGroupInfoResp{} }
|
|||||||
func (m *SetGroupInfoResp) String() string { return proto.CompactTextString(m) }
|
func (m *SetGroupInfoResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*SetGroupInfoResp) ProtoMessage() {}
|
func (*SetGroupInfoResp) ProtoMessage() {}
|
||||||
func (*SetGroupInfoResp) Descriptor() ([]byte, []int) {
|
func (*SetGroupInfoResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{5}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{5}
|
||||||
}
|
}
|
||||||
func (m *SetGroupInfoResp) XXX_Unmarshal(b []byte) error {
|
func (m *SetGroupInfoResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_SetGroupInfoResp.Unmarshal(m, b)
|
return xxx_messageInfo_SetGroupInfoResp.Unmarshal(m, b)
|
||||||
@ -281,7 +281,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_19947c3109871c24, []int{6}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{6}
|
||||||
}
|
}
|
||||||
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)
|
||||||
@ -327,7 +327,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_19947c3109871c24, []int{7}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{7}
|
||||||
}
|
}
|
||||||
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)
|
||||||
@ -373,7 +373,7 @@ func (m *GetUserReqApplicationListReq) Reset() { *m = GetUserReqApplicat
|
|||||||
func (m *GetUserReqApplicationListReq) String() string { return proto.CompactTextString(m) }
|
func (m *GetUserReqApplicationListReq) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GetUserReqApplicationListReq) ProtoMessage() {}
|
func (*GetUserReqApplicationListReq) ProtoMessage() {}
|
||||||
func (*GetUserReqApplicationListReq) Descriptor() ([]byte, []int) {
|
func (*GetUserReqApplicationListReq) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{8}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{8}
|
||||||
}
|
}
|
||||||
func (m *GetUserReqApplicationListReq) XXX_Unmarshal(b []byte) error {
|
func (m *GetUserReqApplicationListReq) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GetUserReqApplicationListReq.Unmarshal(m, b)
|
return xxx_messageInfo_GetUserReqApplicationListReq.Unmarshal(m, b)
|
||||||
@ -419,7 +419,7 @@ func (m *GetUserReqApplicationListResp) Reset() { *m = GetUserReqApplica
|
|||||||
func (m *GetUserReqApplicationListResp) String() string { return proto.CompactTextString(m) }
|
func (m *GetUserReqApplicationListResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GetUserReqApplicationListResp) ProtoMessage() {}
|
func (*GetUserReqApplicationListResp) ProtoMessage() {}
|
||||||
func (*GetUserReqApplicationListResp) Descriptor() ([]byte, []int) {
|
func (*GetUserReqApplicationListResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{9}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{9}
|
||||||
}
|
}
|
||||||
func (m *GetUserReqApplicationListResp) XXX_Unmarshal(b []byte) error {
|
func (m *GetUserReqApplicationListResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GetUserReqApplicationListResp.Unmarshal(m, b)
|
return xxx_messageInfo_GetUserReqApplicationListResp.Unmarshal(m, b)
|
||||||
@ -466,7 +466,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_19947c3109871c24, []int{10}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{10}
|
||||||
}
|
}
|
||||||
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)
|
||||||
@ -517,7 +517,7 @@ func (m *TransferGroupOwnerResp) Reset() { *m = TransferGroupOwnerResp{}
|
|||||||
func (m *TransferGroupOwnerResp) String() string { return proto.CompactTextString(m) }
|
func (m *TransferGroupOwnerResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*TransferGroupOwnerResp) ProtoMessage() {}
|
func (*TransferGroupOwnerResp) ProtoMessage() {}
|
||||||
func (*TransferGroupOwnerResp) Descriptor() ([]byte, []int) {
|
func (*TransferGroupOwnerResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{11}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{11}
|
||||||
}
|
}
|
||||||
func (m *TransferGroupOwnerResp) XXX_Unmarshal(b []byte) error {
|
func (m *TransferGroupOwnerResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_TransferGroupOwnerResp.Unmarshal(m, b)
|
return xxx_messageInfo_TransferGroupOwnerResp.Unmarshal(m, b)
|
||||||
@ -551,7 +551,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_19947c3109871c24, []int{12}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []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)
|
||||||
@ -609,7 +609,7 @@ func (m *JoinGroupResp) Reset() { *m = JoinGroupResp{} }
|
|||||||
func (m *JoinGroupResp) String() string { return proto.CompactTextString(m) }
|
func (m *JoinGroupResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*JoinGroupResp) ProtoMessage() {}
|
func (*JoinGroupResp) ProtoMessage() {}
|
||||||
func (*JoinGroupResp) Descriptor() ([]byte, []int) {
|
func (*JoinGroupResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{13}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{13}
|
||||||
}
|
}
|
||||||
func (m *JoinGroupResp) XXX_Unmarshal(b []byte) error {
|
func (m *JoinGroupResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_JoinGroupResp.Unmarshal(m, b)
|
return xxx_messageInfo_JoinGroupResp.Unmarshal(m, b)
|
||||||
@ -643,7 +643,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_19947c3109871c24, []int{14}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{14}
|
||||||
}
|
}
|
||||||
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)
|
||||||
@ -701,7 +701,7 @@ func (m *GroupApplicationResponseResp) Reset() { *m = GroupApplicationRe
|
|||||||
func (m *GroupApplicationResponseResp) String() string { return proto.CompactTextString(m) }
|
func (m *GroupApplicationResponseResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GroupApplicationResponseResp) ProtoMessage() {}
|
func (*GroupApplicationResponseResp) ProtoMessage() {}
|
||||||
func (*GroupApplicationResponseResp) Descriptor() ([]byte, []int) {
|
func (*GroupApplicationResponseResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{15}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{15}
|
||||||
}
|
}
|
||||||
func (m *GroupApplicationResponseResp) XXX_Unmarshal(b []byte) error {
|
func (m *GroupApplicationResponseResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GroupApplicationResponseResp.Unmarshal(m, b)
|
return xxx_messageInfo_GroupApplicationResponseResp.Unmarshal(m, b)
|
||||||
@ -732,7 +732,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_19947c3109871c24, []int{16}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{16}
|
||||||
}
|
}
|
||||||
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)
|
||||||
@ -769,7 +769,7 @@ func (m *QuitGroupResp) Reset() { *m = QuitGroupResp{} }
|
|||||||
func (m *QuitGroupResp) String() string { return proto.CompactTextString(m) }
|
func (m *QuitGroupResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*QuitGroupResp) ProtoMessage() {}
|
func (*QuitGroupResp) ProtoMessage() {}
|
||||||
func (*QuitGroupResp) Descriptor() ([]byte, []int) {
|
func (*QuitGroupResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{17}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{17}
|
||||||
}
|
}
|
||||||
func (m *QuitGroupResp) XXX_Unmarshal(b []byte) error {
|
func (m *QuitGroupResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_QuitGroupResp.Unmarshal(m, b)
|
return xxx_messageInfo_QuitGroupResp.Unmarshal(m, b)
|
||||||
@ -802,7 +802,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_19947c3109871c24, []int{18}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{18}
|
||||||
}
|
}
|
||||||
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)
|
||||||
@ -855,7 +855,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_19947c3109871c24, []int{19}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{19}
|
||||||
}
|
}
|
||||||
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)
|
||||||
@ -891,7 +891,7 @@ func (m *GetGroupMemberListResp) GetMembers() []*sdk_ws.GroupMemberFullInfo {
|
|||||||
|
|
||||||
type GetGroupMembersInfoReq struct {
|
type GetGroupMembersInfoReq struct {
|
||||||
GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"`
|
GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"`
|
||||||
MemberList []string `protobuf:"bytes,2,rep,name=memberList" json:"memberList,omitempty"`
|
Members []string `protobuf:"bytes,2,rep,name=members" json:"members,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:"-"`
|
||||||
@ -901,7 +901,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_19947c3109871c24, []int{20}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{20}
|
||||||
}
|
}
|
||||||
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)
|
||||||
@ -928,9 +928,9 @@ func (m *GetGroupMembersInfoReq) GetGroupID() string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *GetGroupMembersInfoReq) GetMemberList() []string {
|
func (m *GetGroupMembersInfoReq) GetMembers() []string {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.MemberList
|
return m.Members
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -946,7 +946,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_19947c3109871c24, []int{21}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{21}
|
||||||
}
|
}
|
||||||
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)
|
||||||
@ -975,7 +975,7 @@ func (m *GetGroupMembersInfoResp) GetMembers() []*sdk_ws.GroupMemberFullInfo {
|
|||||||
|
|
||||||
type KickGroupMemberReq struct {
|
type KickGroupMemberReq struct {
|
||||||
GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"`
|
GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"`
|
||||||
KickedUserIDList []string `protobuf:"bytes,2,rep,name=kickedUserIDList" json:"kickedUserIDList,omitempty"`
|
KickedUserIDs []string `protobuf:"bytes,2,rep,name=kickedUserIDs" json:"kickedUserIDs,omitempty"`
|
||||||
Reason string `protobuf:"bytes,3,opt,name=reason" json:"reason,omitempty"`
|
Reason string `protobuf:"bytes,3,opt,name=reason" json:"reason,omitempty"`
|
||||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||||
XXX_unrecognized []byte `json:"-"`
|
XXX_unrecognized []byte `json:"-"`
|
||||||
@ -986,7 +986,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_19947c3109871c24, []int{22}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{22}
|
||||||
}
|
}
|
||||||
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)
|
||||||
@ -1013,9 +1013,9 @@ func (m *KickGroupMemberReq) GetGroupID() string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *KickGroupMemberReq) GetKickedUserIDList() []string {
|
func (m *KickGroupMemberReq) GetKickedUserIDs() []string {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.KickedUserIDList
|
return m.KickedUserIDs
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -1037,7 +1037,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_19947c3109871c24, []int{23}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{23}
|
||||||
}
|
}
|
||||||
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)
|
||||||
@ -1069,7 +1069,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_19947c3109871c24, []int{24}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{24}
|
||||||
}
|
}
|
||||||
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)
|
||||||
@ -1115,7 +1115,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_19947c3109871c24, []int{25}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{25}
|
||||||
}
|
}
|
||||||
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)
|
||||||
@ -1162,7 +1162,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_19947c3109871c24, []int{26}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{26}
|
||||||
}
|
}
|
||||||
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)
|
||||||
@ -1213,7 +1213,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_19947c3109871c24, []int{27}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{27}
|
||||||
}
|
}
|
||||||
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)
|
||||||
@ -1245,7 +1245,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_19947c3109871c24, []int{28}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{28}
|
||||||
}
|
}
|
||||||
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)
|
||||||
@ -1290,7 +1290,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_19947c3109871c24, []int{29}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{29}
|
||||||
}
|
}
|
||||||
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)
|
||||||
@ -1330,7 +1330,7 @@ func (m *CMSGroup) Reset() { *m = CMSGroup{} }
|
|||||||
func (m *CMSGroup) String() string { return proto.CompactTextString(m) }
|
func (m *CMSGroup) String() string { return proto.CompactTextString(m) }
|
||||||
func (*CMSGroup) ProtoMessage() {}
|
func (*CMSGroup) ProtoMessage() {}
|
||||||
func (*CMSGroup) Descriptor() ([]byte, []int) {
|
func (*CMSGroup) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{30}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{30}
|
||||||
}
|
}
|
||||||
func (m *CMSGroup) XXX_Unmarshal(b []byte) error {
|
func (m *CMSGroup) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_CMSGroup.Unmarshal(m, b)
|
return xxx_messageInfo_CMSGroup.Unmarshal(m, b)
|
||||||
@ -1384,7 +1384,7 @@ func (m *GetGroupsReq) Reset() { *m = GetGroupsReq{} }
|
|||||||
func (m *GetGroupsReq) String() string { return proto.CompactTextString(m) }
|
func (m *GetGroupsReq) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GetGroupsReq) ProtoMessage() {}
|
func (*GetGroupsReq) ProtoMessage() {}
|
||||||
func (*GetGroupsReq) Descriptor() ([]byte, []int) {
|
func (*GetGroupsReq) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{31}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{31}
|
||||||
}
|
}
|
||||||
func (m *GetGroupsReq) XXX_Unmarshal(b []byte) error {
|
func (m *GetGroupsReq) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GetGroupsReq.Unmarshal(m, b)
|
return xxx_messageInfo_GetGroupsReq.Unmarshal(m, b)
|
||||||
@ -1437,7 +1437,7 @@ func (m *GetGroupsResp) Reset() { *m = GetGroupsResp{} }
|
|||||||
func (m *GetGroupsResp) String() string { return proto.CompactTextString(m) }
|
func (m *GetGroupsResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GetGroupsResp) ProtoMessage() {}
|
func (*GetGroupsResp) ProtoMessage() {}
|
||||||
func (*GetGroupsResp) Descriptor() ([]byte, []int) {
|
func (*GetGroupsResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{32}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{32}
|
||||||
}
|
}
|
||||||
func (m *GetGroupsResp) XXX_Unmarshal(b []byte) error {
|
func (m *GetGroupsResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GetGroupsResp.Unmarshal(m, b)
|
return xxx_messageInfo_GetGroupsResp.Unmarshal(m, b)
|
||||||
@ -1482,7 +1482,7 @@ func (m *GetGroupMemberReq) Reset() { *m = GetGroupMemberReq{} }
|
|||||||
func (m *GetGroupMemberReq) String() string { return proto.CompactTextString(m) }
|
func (m *GetGroupMemberReq) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GetGroupMemberReq) ProtoMessage() {}
|
func (*GetGroupMemberReq) ProtoMessage() {}
|
||||||
func (*GetGroupMemberReq) Descriptor() ([]byte, []int) {
|
func (*GetGroupMemberReq) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{33}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{33}
|
||||||
}
|
}
|
||||||
func (m *GetGroupMemberReq) XXX_Unmarshal(b []byte) error {
|
func (m *GetGroupMemberReq) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GetGroupMemberReq.Unmarshal(m, b)
|
return xxx_messageInfo_GetGroupMemberReq.Unmarshal(m, b)
|
||||||
@ -1522,7 +1522,7 @@ func (m *GetGroupMembersCMSReq) Reset() { *m = GetGroupMembersCMSReq{} }
|
|||||||
func (m *GetGroupMembersCMSReq) String() string { return proto.CompactTextString(m) }
|
func (m *GetGroupMembersCMSReq) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GetGroupMembersCMSReq) ProtoMessage() {}
|
func (*GetGroupMembersCMSReq) ProtoMessage() {}
|
||||||
func (*GetGroupMembersCMSReq) Descriptor() ([]byte, []int) {
|
func (*GetGroupMembersCMSReq) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{34}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{34}
|
||||||
}
|
}
|
||||||
func (m *GetGroupMembersCMSReq) XXX_Unmarshal(b []byte) error {
|
func (m *GetGroupMembersCMSReq) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GetGroupMembersCMSReq.Unmarshal(m, b)
|
return xxx_messageInfo_GetGroupMembersCMSReq.Unmarshal(m, b)
|
||||||
@ -1576,7 +1576,7 @@ func (m *GetGroupMembersCMSResp) Reset() { *m = GetGroupMembersCMSResp{}
|
|||||||
func (m *GetGroupMembersCMSResp) String() string { return proto.CompactTextString(m) }
|
func (m *GetGroupMembersCMSResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GetGroupMembersCMSResp) ProtoMessage() {}
|
func (*GetGroupMembersCMSResp) ProtoMessage() {}
|
||||||
func (*GetGroupMembersCMSResp) Descriptor() ([]byte, []int) {
|
func (*GetGroupMembersCMSResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{35}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{35}
|
||||||
}
|
}
|
||||||
func (m *GetGroupMembersCMSResp) XXX_Unmarshal(b []byte) error {
|
func (m *GetGroupMembersCMSResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GetGroupMembersCMSResp.Unmarshal(m, b)
|
return xxx_messageInfo_GetGroupMembersCMSResp.Unmarshal(m, b)
|
||||||
@ -1628,7 +1628,7 @@ func (m *DismissGroupReq) Reset() { *m = DismissGroupReq{} }
|
|||||||
func (m *DismissGroupReq) String() string { return proto.CompactTextString(m) }
|
func (m *DismissGroupReq) String() string { return proto.CompactTextString(m) }
|
||||||
func (*DismissGroupReq) ProtoMessage() {}
|
func (*DismissGroupReq) ProtoMessage() {}
|
||||||
func (*DismissGroupReq) Descriptor() ([]byte, []int) {
|
func (*DismissGroupReq) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{36}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{36}
|
||||||
}
|
}
|
||||||
func (m *DismissGroupReq) XXX_Unmarshal(b []byte) error {
|
func (m *DismissGroupReq) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_DismissGroupReq.Unmarshal(m, b)
|
return xxx_messageInfo_DismissGroupReq.Unmarshal(m, b)
|
||||||
@ -1665,7 +1665,7 @@ func (m *DismissGroupResp) Reset() { *m = DismissGroupResp{} }
|
|||||||
func (m *DismissGroupResp) String() string { return proto.CompactTextString(m) }
|
func (m *DismissGroupResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*DismissGroupResp) ProtoMessage() {}
|
func (*DismissGroupResp) ProtoMessage() {}
|
||||||
func (*DismissGroupResp) Descriptor() ([]byte, []int) {
|
func (*DismissGroupResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{37}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{37}
|
||||||
}
|
}
|
||||||
func (m *DismissGroupResp) XXX_Unmarshal(b []byte) error {
|
func (m *DismissGroupResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_DismissGroupResp.Unmarshal(m, b)
|
return xxx_messageInfo_DismissGroupResp.Unmarshal(m, b)
|
||||||
@ -1698,7 +1698,7 @@ func (m *MuteGroupMemberReq) Reset() { *m = MuteGroupMemberReq{} }
|
|||||||
func (m *MuteGroupMemberReq) String() string { return proto.CompactTextString(m) }
|
func (m *MuteGroupMemberReq) String() string { return proto.CompactTextString(m) }
|
||||||
func (*MuteGroupMemberReq) ProtoMessage() {}
|
func (*MuteGroupMemberReq) ProtoMessage() {}
|
||||||
func (*MuteGroupMemberReq) Descriptor() ([]byte, []int) {
|
func (*MuteGroupMemberReq) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{38}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{38}
|
||||||
}
|
}
|
||||||
func (m *MuteGroupMemberReq) XXX_Unmarshal(b []byte) error {
|
func (m *MuteGroupMemberReq) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_MuteGroupMemberReq.Unmarshal(m, b)
|
return xxx_messageInfo_MuteGroupMemberReq.Unmarshal(m, b)
|
||||||
@ -1749,7 +1749,7 @@ func (m *MuteGroupMemberResp) Reset() { *m = MuteGroupMemberResp{} }
|
|||||||
func (m *MuteGroupMemberResp) String() string { return proto.CompactTextString(m) }
|
func (m *MuteGroupMemberResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*MuteGroupMemberResp) ProtoMessage() {}
|
func (*MuteGroupMemberResp) ProtoMessage() {}
|
||||||
func (*MuteGroupMemberResp) Descriptor() ([]byte, []int) {
|
func (*MuteGroupMemberResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{39}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{39}
|
||||||
}
|
}
|
||||||
func (m *MuteGroupMemberResp) XXX_Unmarshal(b []byte) error {
|
func (m *MuteGroupMemberResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_MuteGroupMemberResp.Unmarshal(m, b)
|
return xxx_messageInfo_MuteGroupMemberResp.Unmarshal(m, b)
|
||||||
@ -1781,7 +1781,7 @@ func (m *CancelMuteGroupMemberReq) Reset() { *m = CancelMuteGroupMemberR
|
|||||||
func (m *CancelMuteGroupMemberReq) String() string { return proto.CompactTextString(m) }
|
func (m *CancelMuteGroupMemberReq) String() string { return proto.CompactTextString(m) }
|
||||||
func (*CancelMuteGroupMemberReq) ProtoMessage() {}
|
func (*CancelMuteGroupMemberReq) ProtoMessage() {}
|
||||||
func (*CancelMuteGroupMemberReq) Descriptor() ([]byte, []int) {
|
func (*CancelMuteGroupMemberReq) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{40}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{40}
|
||||||
}
|
}
|
||||||
func (m *CancelMuteGroupMemberReq) XXX_Unmarshal(b []byte) error {
|
func (m *CancelMuteGroupMemberReq) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_CancelMuteGroupMemberReq.Unmarshal(m, b)
|
return xxx_messageInfo_CancelMuteGroupMemberReq.Unmarshal(m, b)
|
||||||
@ -1825,7 +1825,7 @@ func (m *CancelMuteGroupMemberResp) Reset() { *m = CancelMuteGroupMember
|
|||||||
func (m *CancelMuteGroupMemberResp) String() string { return proto.CompactTextString(m) }
|
func (m *CancelMuteGroupMemberResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*CancelMuteGroupMemberResp) ProtoMessage() {}
|
func (*CancelMuteGroupMemberResp) ProtoMessage() {}
|
||||||
func (*CancelMuteGroupMemberResp) Descriptor() ([]byte, []int) {
|
func (*CancelMuteGroupMemberResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{41}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{41}
|
||||||
}
|
}
|
||||||
func (m *CancelMuteGroupMemberResp) XXX_Unmarshal(b []byte) error {
|
func (m *CancelMuteGroupMemberResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_CancelMuteGroupMemberResp.Unmarshal(m, b)
|
return xxx_messageInfo_CancelMuteGroupMemberResp.Unmarshal(m, b)
|
||||||
@ -1856,7 +1856,7 @@ func (m *MuteGroupReq) Reset() { *m = MuteGroupReq{} }
|
|||||||
func (m *MuteGroupReq) String() string { return proto.CompactTextString(m) }
|
func (m *MuteGroupReq) String() string { return proto.CompactTextString(m) }
|
||||||
func (*MuteGroupReq) ProtoMessage() {}
|
func (*MuteGroupReq) ProtoMessage() {}
|
||||||
func (*MuteGroupReq) Descriptor() ([]byte, []int) {
|
func (*MuteGroupReq) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{42}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{42}
|
||||||
}
|
}
|
||||||
func (m *MuteGroupReq) XXX_Unmarshal(b []byte) error {
|
func (m *MuteGroupReq) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_MuteGroupReq.Unmarshal(m, b)
|
return xxx_messageInfo_MuteGroupReq.Unmarshal(m, b)
|
||||||
@ -1893,7 +1893,7 @@ func (m *MuteGroupResp) Reset() { *m = MuteGroupResp{} }
|
|||||||
func (m *MuteGroupResp) String() string { return proto.CompactTextString(m) }
|
func (m *MuteGroupResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*MuteGroupResp) ProtoMessage() {}
|
func (*MuteGroupResp) ProtoMessage() {}
|
||||||
func (*MuteGroupResp) Descriptor() ([]byte, []int) {
|
func (*MuteGroupResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{43}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{43}
|
||||||
}
|
}
|
||||||
func (m *MuteGroupResp) XXX_Unmarshal(b []byte) error {
|
func (m *MuteGroupResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_MuteGroupResp.Unmarshal(m, b)
|
return xxx_messageInfo_MuteGroupResp.Unmarshal(m, b)
|
||||||
@ -1924,7 +1924,7 @@ func (m *CancelMuteGroupReq) Reset() { *m = CancelMuteGroupReq{} }
|
|||||||
func (m *CancelMuteGroupReq) String() string { return proto.CompactTextString(m) }
|
func (m *CancelMuteGroupReq) String() string { return proto.CompactTextString(m) }
|
||||||
func (*CancelMuteGroupReq) ProtoMessage() {}
|
func (*CancelMuteGroupReq) ProtoMessage() {}
|
||||||
func (*CancelMuteGroupReq) Descriptor() ([]byte, []int) {
|
func (*CancelMuteGroupReq) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{44}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{44}
|
||||||
}
|
}
|
||||||
func (m *CancelMuteGroupReq) XXX_Unmarshal(b []byte) error {
|
func (m *CancelMuteGroupReq) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_CancelMuteGroupReq.Unmarshal(m, b)
|
return xxx_messageInfo_CancelMuteGroupReq.Unmarshal(m, b)
|
||||||
@ -1961,7 +1961,7 @@ func (m *CancelMuteGroupResp) Reset() { *m = CancelMuteGroupResp{} }
|
|||||||
func (m *CancelMuteGroupResp) String() string { return proto.CompactTextString(m) }
|
func (m *CancelMuteGroupResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*CancelMuteGroupResp) ProtoMessage() {}
|
func (*CancelMuteGroupResp) ProtoMessage() {}
|
||||||
func (*CancelMuteGroupResp) Descriptor() ([]byte, []int) {
|
func (*CancelMuteGroupResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{45}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{45}
|
||||||
}
|
}
|
||||||
func (m *CancelMuteGroupResp) XXX_Unmarshal(b []byte) error {
|
func (m *CancelMuteGroupResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_CancelMuteGroupResp.Unmarshal(m, b)
|
return xxx_messageInfo_CancelMuteGroupResp.Unmarshal(m, b)
|
||||||
@ -1994,7 +1994,7 @@ func (m *SetGroupMemberNicknameReq) Reset() { *m = SetGroupMemberNicknam
|
|||||||
func (m *SetGroupMemberNicknameReq) String() string { return proto.CompactTextString(m) }
|
func (m *SetGroupMemberNicknameReq) String() string { return proto.CompactTextString(m) }
|
||||||
func (*SetGroupMemberNicknameReq) ProtoMessage() {}
|
func (*SetGroupMemberNicknameReq) ProtoMessage() {}
|
||||||
func (*SetGroupMemberNicknameReq) Descriptor() ([]byte, []int) {
|
func (*SetGroupMemberNicknameReq) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{46}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{46}
|
||||||
}
|
}
|
||||||
func (m *SetGroupMemberNicknameReq) XXX_Unmarshal(b []byte) error {
|
func (m *SetGroupMemberNicknameReq) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_SetGroupMemberNicknameReq.Unmarshal(m, b)
|
return xxx_messageInfo_SetGroupMemberNicknameReq.Unmarshal(m, b)
|
||||||
@ -2045,7 +2045,7 @@ func (m *SetGroupMemberNicknameResp) Reset() { *m = SetGroupMemberNickna
|
|||||||
func (m *SetGroupMemberNicknameResp) String() string { return proto.CompactTextString(m) }
|
func (m *SetGroupMemberNicknameResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*SetGroupMemberNicknameResp) ProtoMessage() {}
|
func (*SetGroupMemberNicknameResp) ProtoMessage() {}
|
||||||
func (*SetGroupMemberNicknameResp) Descriptor() ([]byte, []int) {
|
func (*SetGroupMemberNicknameResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{47}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{47}
|
||||||
}
|
}
|
||||||
func (m *SetGroupMemberNicknameResp) XXX_Unmarshal(b []byte) error {
|
func (m *SetGroupMemberNicknameResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_SetGroupMemberNicknameResp.Unmarshal(m, b)
|
return xxx_messageInfo_SetGroupMemberNicknameResp.Unmarshal(m, b)
|
||||||
@ -2077,7 +2077,7 @@ func (m *GetJoinedSuperGroupListReq) Reset() { *m = GetJoinedSuperGroupL
|
|||||||
func (m *GetJoinedSuperGroupListReq) String() string { return proto.CompactTextString(m) }
|
func (m *GetJoinedSuperGroupListReq) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GetJoinedSuperGroupListReq) ProtoMessage() {}
|
func (*GetJoinedSuperGroupListReq) ProtoMessage() {}
|
||||||
func (*GetJoinedSuperGroupListReq) Descriptor() ([]byte, []int) {
|
func (*GetJoinedSuperGroupListReq) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{48}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{48}
|
||||||
}
|
}
|
||||||
func (m *GetJoinedSuperGroupListReq) XXX_Unmarshal(b []byte) error {
|
func (m *GetJoinedSuperGroupListReq) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GetJoinedSuperGroupListReq.Unmarshal(m, b)
|
return xxx_messageInfo_GetJoinedSuperGroupListReq.Unmarshal(m, b)
|
||||||
@ -2123,7 +2123,7 @@ func (m *GetJoinedSuperGroupListResp) Reset() { *m = GetJoinedSuperGroup
|
|||||||
func (m *GetJoinedSuperGroupListResp) String() string { return proto.CompactTextString(m) }
|
func (m *GetJoinedSuperGroupListResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GetJoinedSuperGroupListResp) ProtoMessage() {}
|
func (*GetJoinedSuperGroupListResp) ProtoMessage() {}
|
||||||
func (*GetJoinedSuperGroupListResp) Descriptor() ([]byte, []int) {
|
func (*GetJoinedSuperGroupListResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{49}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{49}
|
||||||
}
|
}
|
||||||
func (m *GetJoinedSuperGroupListResp) XXX_Unmarshal(b []byte) error {
|
func (m *GetJoinedSuperGroupListResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GetJoinedSuperGroupListResp.Unmarshal(m, b)
|
return xxx_messageInfo_GetJoinedSuperGroupListResp.Unmarshal(m, b)
|
||||||
@ -2168,7 +2168,7 @@ func (m *GetSuperGroupsInfoReq) Reset() { *m = GetSuperGroupsInfoReq{} }
|
|||||||
func (m *GetSuperGroupsInfoReq) String() string { return proto.CompactTextString(m) }
|
func (m *GetSuperGroupsInfoReq) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GetSuperGroupsInfoReq) ProtoMessage() {}
|
func (*GetSuperGroupsInfoReq) ProtoMessage() {}
|
||||||
func (*GetSuperGroupsInfoReq) Descriptor() ([]byte, []int) {
|
func (*GetSuperGroupsInfoReq) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{50}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{50}
|
||||||
}
|
}
|
||||||
func (m *GetSuperGroupsInfoReq) XXX_Unmarshal(b []byte) error {
|
func (m *GetSuperGroupsInfoReq) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GetSuperGroupsInfoReq.Unmarshal(m, b)
|
return xxx_messageInfo_GetSuperGroupsInfoReq.Unmarshal(m, b)
|
||||||
@ -2206,7 +2206,7 @@ func (m *GetSuperGroupsInfoResp) Reset() { *m = GetSuperGroupsInfoResp{}
|
|||||||
func (m *GetSuperGroupsInfoResp) String() string { return proto.CompactTextString(m) }
|
func (m *GetSuperGroupsInfoResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GetSuperGroupsInfoResp) ProtoMessage() {}
|
func (*GetSuperGroupsInfoResp) ProtoMessage() {}
|
||||||
func (*GetSuperGroupsInfoResp) Descriptor() ([]byte, []int) {
|
func (*GetSuperGroupsInfoResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{51}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{51}
|
||||||
}
|
}
|
||||||
func (m *GetSuperGroupsInfoResp) XXX_Unmarshal(b []byte) error {
|
func (m *GetSuperGroupsInfoResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GetSuperGroupsInfoResp.Unmarshal(m, b)
|
return xxx_messageInfo_GetSuperGroupsInfoResp.Unmarshal(m, b)
|
||||||
@ -2249,7 +2249,7 @@ func (m *SetGroupMemberInfoReq) Reset() { *m = SetGroupMemberInfoReq{} }
|
|||||||
func (m *SetGroupMemberInfoReq) String() string { return proto.CompactTextString(m) }
|
func (m *SetGroupMemberInfoReq) String() string { return proto.CompactTextString(m) }
|
||||||
func (*SetGroupMemberInfoReq) ProtoMessage() {}
|
func (*SetGroupMemberInfoReq) ProtoMessage() {}
|
||||||
func (*SetGroupMemberInfoReq) Descriptor() ([]byte, []int) {
|
func (*SetGroupMemberInfoReq) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{52}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{52}
|
||||||
}
|
}
|
||||||
func (m *SetGroupMemberInfoReq) XXX_Unmarshal(b []byte) error {
|
func (m *SetGroupMemberInfoReq) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_SetGroupMemberInfoReq.Unmarshal(m, b)
|
return xxx_messageInfo_SetGroupMemberInfoReq.Unmarshal(m, b)
|
||||||
@ -2321,7 +2321,7 @@ func (m *SetGroupMemberInfoResp) Reset() { *m = SetGroupMemberInfoResp{}
|
|||||||
func (m *SetGroupMemberInfoResp) String() string { return proto.CompactTextString(m) }
|
func (m *SetGroupMemberInfoResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*SetGroupMemberInfoResp) ProtoMessage() {}
|
func (*SetGroupMemberInfoResp) ProtoMessage() {}
|
||||||
func (*SetGroupMemberInfoResp) Descriptor() ([]byte, []int) {
|
func (*SetGroupMemberInfoResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{53}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{53}
|
||||||
}
|
}
|
||||||
func (m *SetGroupMemberInfoResp) XXX_Unmarshal(b []byte) error {
|
func (m *SetGroupMemberInfoResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_SetGroupMemberInfoResp.Unmarshal(m, b)
|
return xxx_messageInfo_SetGroupMemberInfoResp.Unmarshal(m, b)
|
||||||
@ -2352,7 +2352,7 @@ func (m *GetGroupAbstractInfoReq) Reset() { *m = GetGroupAbstractInfoReq
|
|||||||
func (m *GetGroupAbstractInfoReq) String() string { return proto.CompactTextString(m) }
|
func (m *GetGroupAbstractInfoReq) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GetGroupAbstractInfoReq) ProtoMessage() {}
|
func (*GetGroupAbstractInfoReq) ProtoMessage() {}
|
||||||
func (*GetGroupAbstractInfoReq) Descriptor() ([]byte, []int) {
|
func (*GetGroupAbstractInfoReq) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{54}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{54}
|
||||||
}
|
}
|
||||||
func (m *GetGroupAbstractInfoReq) XXX_Unmarshal(b []byte) error {
|
func (m *GetGroupAbstractInfoReq) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GetGroupAbstractInfoReq.Unmarshal(m, b)
|
return xxx_messageInfo_GetGroupAbstractInfoReq.Unmarshal(m, b)
|
||||||
@ -2392,7 +2392,7 @@ func (m *GroupAbstractInfo) Reset() { *m = GroupAbstractInfo{} }
|
|||||||
func (m *GroupAbstractInfo) String() string { return proto.CompactTextString(m) }
|
func (m *GroupAbstractInfo) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GroupAbstractInfo) ProtoMessage() {}
|
func (*GroupAbstractInfo) ProtoMessage() {}
|
||||||
func (*GroupAbstractInfo) Descriptor() ([]byte, []int) {
|
func (*GroupAbstractInfo) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{55}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{55}
|
||||||
}
|
}
|
||||||
func (m *GroupAbstractInfo) XXX_Unmarshal(b []byte) error {
|
func (m *GroupAbstractInfo) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GroupAbstractInfo.Unmarshal(m, b)
|
return xxx_messageInfo_GroupAbstractInfo.Unmarshal(m, b)
|
||||||
@ -2444,7 +2444,7 @@ func (m *GetGroupAbstractInfoResp) Reset() { *m = GetGroupAbstractInfoRe
|
|||||||
func (m *GetGroupAbstractInfoResp) String() string { return proto.CompactTextString(m) }
|
func (m *GetGroupAbstractInfoResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GetGroupAbstractInfoResp) ProtoMessage() {}
|
func (*GetGroupAbstractInfoResp) ProtoMessage() {}
|
||||||
func (*GetGroupAbstractInfoResp) Descriptor() ([]byte, []int) {
|
func (*GetGroupAbstractInfoResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{56}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{56}
|
||||||
}
|
}
|
||||||
func (m *GetGroupAbstractInfoResp) XXX_Unmarshal(b []byte) error {
|
func (m *GetGroupAbstractInfoResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GetGroupAbstractInfoResp.Unmarshal(m, b)
|
return xxx_messageInfo_GetGroupAbstractInfoResp.Unmarshal(m, b)
|
||||||
@ -2483,7 +2483,7 @@ func (m *GetUserInGroupMembersReq) Reset() { *m = GetUserInGroupMembersR
|
|||||||
func (m *GetUserInGroupMembersReq) String() string { return proto.CompactTextString(m) }
|
func (m *GetUserInGroupMembersReq) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GetUserInGroupMembersReq) ProtoMessage() {}
|
func (*GetUserInGroupMembersReq) ProtoMessage() {}
|
||||||
func (*GetUserInGroupMembersReq) Descriptor() ([]byte, []int) {
|
func (*GetUserInGroupMembersReq) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{57}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{57}
|
||||||
}
|
}
|
||||||
func (m *GetUserInGroupMembersReq) XXX_Unmarshal(b []byte) error {
|
func (m *GetUserInGroupMembersReq) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GetUserInGroupMembersReq.Unmarshal(m, b)
|
return xxx_messageInfo_GetUserInGroupMembersReq.Unmarshal(m, b)
|
||||||
@ -2528,7 +2528,7 @@ func (m *GetUserInGroupMembersResp) Reset() { *m = GetUserInGroupMembers
|
|||||||
func (m *GetUserInGroupMembersResp) String() string { return proto.CompactTextString(m) }
|
func (m *GetUserInGroupMembersResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GetUserInGroupMembersResp) ProtoMessage() {}
|
func (*GetUserInGroupMembersResp) ProtoMessage() {}
|
||||||
func (*GetUserInGroupMembersResp) Descriptor() ([]byte, []int) {
|
func (*GetUserInGroupMembersResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_group_19947c3109871c24, []int{58}
|
return fileDescriptor_group_5c8d3aafef0e7d21, []int{58}
|
||||||
}
|
}
|
||||||
func (m *GetUserInGroupMembersResp) XXX_Unmarshal(b []byte) error {
|
func (m *GetUserInGroupMembersResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GetUserInGroupMembersResp.Unmarshal(m, b)
|
return xxx_messageInfo_GetUserInGroupMembersResp.Unmarshal(m, b)
|
||||||
@ -3597,124 +3597,124 @@ var _Group_serviceDesc = grpc.ServiceDesc{
|
|||||||
Metadata: "group/group.proto",
|
Metadata: "group/group.proto",
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_19947c3109871c24) }
|
func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_5c8d3aafef0e7d21) }
|
||||||
|
|
||||||
var fileDescriptor_group_19947c3109871c24 = []byte{
|
var fileDescriptor_group_5c8d3aafef0e7d21 = []byte{
|
||||||
// 1848 bytes of a gzipped FileDescriptorProto
|
// 1851 bytes of a gzipped FileDescriptorProto
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x59, 0x5f, 0x53, 0xdb, 0xc0,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x59, 0x5f, 0x53, 0xe4, 0xc6,
|
||||||
0x11, 0x1f, 0x99, 0x40, 0xc2, 0x06, 0x02, 0x1c, 0x18, 0x8c, 0x20, 0x40, 0x2e, 0x69, 0xca, 0xb4,
|
0x11, 0x2f, 0x2d, 0x07, 0x77, 0xf4, 0x81, 0xe1, 0x06, 0x16, 0x74, 0x82, 0x03, 0x3c, 0x26, 0x0e,
|
||||||
0x89, 0xe9, 0x24, 0x6d, 0xa6, 0x7f, 0x32, 0x93, 0x26, 0x90, 0x10, 0x5a, 0x0c, 0x8d, 0x4c, 0xd2,
|
0x95, 0xf8, 0x96, 0xd4, 0x5d, 0xe2, 0xca, 0x1f, 0x57, 0x39, 0x36, 0xd8, 0x98, 0x84, 0x85, 0x9c,
|
||||||
0x69, 0x3a, 0x19, 0x2a, 0xec, 0x43, 0x51, 0xb0, 0xa5, 0x43, 0x27, 0x43, 0x26, 0x93, 0x3e, 0xb4,
|
0x16, 0x3b, 0x15, 0xa7, 0x5c, 0x44, 0xec, 0x0e, 0xb2, 0x0e, 0xad, 0x34, 0x68, 0xb4, 0xe0, 0x72,
|
||||||
0xcf, 0xfd, 0xf3, 0xd0, 0xc7, 0xbe, 0x75, 0xfa, 0x29, 0xfa, 0xd6, 0xaf, 0xd2, 0x4f, 0xd2, 0xd1,
|
0x39, 0x0f, 0xc9, 0x73, 0xfe, 0x3c, 0xe4, 0x31, 0x6f, 0xa9, 0x7c, 0x84, 0x7c, 0x81, 0x7c, 0x95,
|
||||||
0xe9, 0x74, 0x3e, 0x49, 0x27, 0xd9, 0x25, 0xee, 0x8b, 0x67, 0xb4, 0xb7, 0x7b, 0xb7, 0xb7, 0xff,
|
0x7c, 0x92, 0x94, 0x66, 0x46, 0xb3, 0x23, 0x69, 0xb4, 0xbb, 0xc1, 0x9b, 0x97, 0xad, 0x52, 0x4f,
|
||||||
0xee, 0xb7, 0x6b, 0x98, 0x73, 0x02, 0xbf, 0x47, 0xb7, 0xf8, 0x6f, 0x9d, 0x06, 0x7e, 0xe8, 0xa3,
|
0xf7, 0x4c, 0x4f, 0xff, 0x9b, 0x5f, 0xf7, 0xc2, 0x13, 0x3f, 0x89, 0x07, 0x74, 0x9f, 0xff, 0xb6,
|
||||||
0x71, 0xfe, 0x61, 0x6e, 0x1e, 0x52, 0xe2, 0x3d, 0xdc, 0x6b, 0x3c, 0x6c, 0x92, 0xe0, 0x82, 0x04,
|
0x68, 0x12, 0xa7, 0x31, 0x9a, 0xe5, 0x1f, 0xce, 0xde, 0x19, 0x25, 0xd1, 0xf3, 0xe3, 0xf6, 0xf3,
|
||||||
0x5b, 0xf4, 0xcc, 0xd9, 0xe2, 0x0c, 0x5b, 0xac, 0x7d, 0x76, 0x7c, 0xc9, 0xb6, 0x2e, 0x59, 0x2c,
|
0x0e, 0x49, 0x6e, 0x49, 0xb2, 0x4f, 0xaf, 0xfd, 0x7d, 0xce, 0xb0, 0xcf, 0x7a, 0xd7, 0x17, 0x77,
|
||||||
0x60, 0xd6, 0x07, 0x72, 0x06, 0x36, 0xa5, 0x24, 0x10, 0xfc, 0xf8, 0x5f, 0x06, 0xdc, 0xda, 0x0e,
|
0x6c, 0xff, 0x8e, 0x09, 0x01, 0xa7, 0x35, 0x96, 0x33, 0xf1, 0x28, 0x25, 0x89, 0xe4, 0xc7, 0xff,
|
||||||
0x88, 0x1d, 0x92, 0xdd, 0xe8, 0x24, 0x8b, 0x9c, 0xa3, 0xfb, 0x70, 0xcb, 0xf5, 0xdc, 0xb0, 0x41,
|
0xb2, 0xe0, 0x8d, 0x83, 0x84, 0x78, 0x29, 0x39, 0xca, 0x4e, 0x72, 0xc9, 0x0d, 0xda, 0x81, 0xc7,
|
||||||
0xba, 0x27, 0x24, 0xd8, 0x77, 0x59, 0x58, 0x33, 0x36, 0xc6, 0x36, 0x27, 0xad, 0x0c, 0x15, 0xfd,
|
0x41, 0x14, 0xa4, 0x6d, 0xd2, 0xbf, 0x24, 0x09, 0xb3, 0xad, 0x9d, 0x99, 0xbd, 0x79, 0x57, 0x27,
|
||||||
0x14, 0x26, 0xb9, 0x76, 0x7b, 0xde, 0xa9, 0x5f, 0xab, 0x6c, 0x18, 0x9b, 0x37, 0x1f, 0xad, 0xd6,
|
0xa1, 0x9f, 0xc2, 0x3c, 0xd7, 0xeb, 0x38, 0xba, 0x8a, 0xed, 0xc6, 0x8e, 0xb5, 0xf7, 0xf8, 0xc5,
|
||||||
0x19, 0x3f, 0xf6, 0xd8, 0xa6, 0xee, 0x31, 0xb5, 0x03, 0xbb, 0xcb, 0xea, 0xbb, 0x09, 0x8f, 0xd5,
|
0x66, 0x8b, 0xf1, 0x03, 0x2f, 0x3c, 0x1a, 0x5c, 0x50, 0x2f, 0xf1, 0xfa, 0xac, 0x75, 0x94, 0xf3,
|
||||||
0x67, 0x47, 0x18, 0xa6, 0xec, 0x76, 0xd7, 0xf5, 0xde, 0x32, 0x12, 0xec, 0xed, 0xb0, 0xda, 0x18,
|
0xb8, 0x43, 0x76, 0x84, 0x61, 0xc1, 0xeb, 0xf5, 0x83, 0xe8, 0x53, 0x46, 0x92, 0xe3, 0x43, 0x66,
|
||||||
0x3f, 0x21, 0x45, 0x43, 0x1b, 0x70, 0xd3, 0xbf, 0xf4, 0x48, 0x10, 0x7f, 0xd7, 0xae, 0x6d, 0x18,
|
0xcf, 0xf0, 0xed, 0x0b, 0xb4, 0x4c, 0x83, 0xf8, 0x2e, 0x22, 0x89, 0xf8, 0xb6, 0x1f, 0xec, 0x58,
|
||||||
0x9b, 0x93, 0x96, 0x4a, 0xc2, 0x0d, 0x98, 0x49, 0xe9, 0xce, 0x68, 0x5a, 0x29, 0xe3, 0x7f, 0x52,
|
0x99, 0x06, 0x1a, 0x09, 0xb7, 0x61, 0xa9, 0xa0, 0x35, 0xa3, 0x45, 0xa5, 0xac, 0xff, 0x49, 0x29,
|
||||||
0x0a, 0xd7, 0x61, 0x76, 0x97, 0x84, 0x7c, 0x89, 0xf1, 0x35, 0x72, 0x8e, 0x4c, 0xb8, 0x11, 0x33,
|
0xdc, 0x82, 0xe5, 0x23, 0x92, 0xf2, 0x25, 0xc6, 0xd7, 0xc8, 0x0d, 0x72, 0xe0, 0x91, 0x60, 0x38,
|
||||||
0xec, 0x30, 0x61, 0x06, 0xf9, 0x8d, 0xdf, 0xc0, 0x5c, 0x86, 0x9f, 0x51, 0xf4, 0x14, 0x40, 0xee,
|
0xcc, 0x6d, 0xa0, 0xbe, 0xf1, 0x2b, 0x78, 0x52, 0xe2, 0x67, 0x14, 0xbd, 0x07, 0xa0, 0x76, 0x14,
|
||||||
0x18, 0x8b, 0x0c, 0xd2, 0x40, 0xe1, 0xc7, 0xc7, 0x30, 0xd3, 0x14, 0x5b, 0x26, 0x1a, 0xec, 0xc3,
|
0x22, 0xe3, 0x34, 0xd0, 0xf8, 0xf1, 0x05, 0x2c, 0x75, 0xe4, 0x96, 0xb9, 0x06, 0x27, 0xb0, 0xa4,
|
||||||
0x8c, 0x64, 0x78, 0xe5, 0x07, 0x4d, 0x12, 0x8a, 0x7b, 0xe1, 0xb2, 0x5d, 0x63, 0x4e, 0x2b, 0x2b,
|
0x18, 0x3e, 0x8e, 0x93, 0x0e, 0x49, 0xe5, 0xbd, 0xf0, 0xa8, 0x5d, 0x05, 0xa7, 0x5b, 0x16, 0xc5,
|
||||||
0x8a, 0x11, 0xcc, 0xa6, 0x0f, 0x60, 0x14, 0xff, 0xd1, 0x00, 0x33, 0xb9, 0xc8, 0x73, 0x4a, 0x3b,
|
0x08, 0x96, 0x8b, 0x07, 0x30, 0x8a, 0xff, 0x68, 0x81, 0x93, 0x5f, 0xe4, 0x03, 0x4a, 0xc3, 0xa0,
|
||||||
0x6e, 0xcb, 0x0e, 0x5d, 0xdf, 0x8b, 0x9c, 0x1c, 0x29, 0xb0, 0x03, 0x40, 0x6d, 0xc7, 0xf5, 0x38,
|
0xeb, 0xa5, 0x41, 0x1c, 0x9d, 0x04, 0x2c, 0xcd, 0x14, 0x38, 0x04, 0xa0, 0x9e, 0x1f, 0x44, 0x9c,
|
||||||
0x51, 0x9c, 0x7d, 0x4f, 0x73, 0xb6, 0x45, 0xce, 0x7b, 0x84, 0x85, 0xbf, 0x92, 0xbc, 0x96, 0x22,
|
0x28, 0xcf, 0xde, 0x35, 0x9c, 0xed, 0x92, 0x9b, 0x01, 0x61, 0xe9, 0xaf, 0x14, 0xaf, 0xab, 0xc9,
|
||||||
0x87, 0xd6, 0x00, 0x4e, 0x03, 0xbf, 0x2b, 0x9c, 0x59, 0xe1, 0xce, 0x54, 0x28, 0xf8, 0x0b, 0xac,
|
0xa1, 0x2d, 0x80, 0xab, 0x24, 0xee, 0x4b, 0x67, 0x36, 0xb8, 0x33, 0x35, 0x0a, 0xfe, 0x1a, 0x36,
|
||||||
0x14, 0xea, 0xc0, 0x28, 0x5a, 0x80, 0xf1, 0xd0, 0x0f, 0xed, 0x0e, 0x3f, 0x7f, 0xdc, 0x8a, 0x3f,
|
0x6a, 0x75, 0x60, 0x14, 0xad, 0xc2, 0x6c, 0x1a, 0xa7, 0x5e, 0xc8, 0xcf, 0x9f, 0x75, 0xc5, 0x07,
|
||||||
0xd0, 0x4b, 0x98, 0x76, 0x44, 0xd8, 0x46, 0x47, 0xb3, 0x5a, 0x85, 0xdb, 0x7b, 0xbd, 0xc8, 0x32,
|
0xfa, 0x08, 0x16, 0x7d, 0x19, 0xb0, 0xd9, 0xd1, 0xcc, 0x6e, 0x70, 0x7b, 0x6f, 0xd7, 0x59, 0x46,
|
||||||
0x82, 0xcf, 0x4a, 0x4b, 0xe1, 0xaf, 0xb0, 0xba, 0x4b, 0xc2, 0x48, 0x11, 0x8b, 0x9c, 0x6b, 0x2c,
|
0xf2, 0xb9, 0x45, 0x29, 0xfc, 0x0d, 0x6c, 0x1e, 0x91, 0x34, 0x53, 0xc4, 0x25, 0x37, 0x06, 0x0b,
|
||||||
0xb0, 0x08, 0x13, 0xbd, 0x58, 0x6f, 0x83, 0xeb, 0x2d, 0xbe, 0x32, 0x96, 0xa9, 0x5c, 0xcd, 0x32,
|
0xac, 0xc1, 0xdc, 0x40, 0xe8, 0x6d, 0x71, 0xbd, 0xe5, 0x57, 0xc9, 0x32, 0x8d, 0xfb, 0x59, 0x06,
|
||||||
0xf8, 0x2b, 0xdc, 0x2e, 0x39, 0xfd, 0xff, 0x7d, 0xf7, 0x3f, 0x18, 0x50, 0x3d, 0x0a, 0x6c, 0x8f,
|
0x7f, 0x03, 0xcf, 0x46, 0x9c, 0xfe, 0xff, 0xbe, 0xfb, 0x1f, 0x2c, 0x68, 0x9e, 0x27, 0x5e, 0xc4,
|
||||||
0x9d, 0x92, 0x80, 0xf3, 0x1d, 0x46, 0x09, 0x16, 0xdd, 0xba, 0x06, 0xd7, 0x45, 0xa8, 0x8b, 0x6b,
|
0xae, 0x48, 0xc2, 0xf9, 0xce, 0xb2, 0x04, 0xcb, 0x6e, 0x6d, 0xc3, 0x43, 0x19, 0xea, 0xf2, 0xda,
|
||||||
0x27, 0x9f, 0x51, 0x85, 0xf0, 0x3b, 0xed, 0x43, 0x25, 0x39, 0x63, 0x7f, 0x66, 0xa8, 0x11, 0x9f,
|
0xf9, 0x27, 0x7a, 0x1b, 0xde, 0x88, 0xc3, 0xde, 0x99, 0x96, 0x9c, 0xc2, 0x9f, 0x25, 0x6a, 0xc6,
|
||||||
0x47, 0x2e, 0x55, 0xbe, 0xb1, 0x98, 0x2f, 0x4d, 0xc5, 0x35, 0x58, 0xd4, 0xa9, 0xc0, 0x28, 0xfe,
|
0x17, 0x91, 0x3b, 0x9d, 0x6f, 0x46, 0xf0, 0x15, 0xa9, 0xd8, 0x86, 0x35, 0x93, 0x0a, 0x8c, 0xe2,
|
||||||
0x8b, 0x01, 0x53, 0xbf, 0xf0, 0x5d, 0x4f, 0x16, 0xa7, 0x62, 0xa5, 0xd6, 0x00, 0x02, 0x72, 0xde,
|
0xbf, 0x58, 0xb0, 0xf0, 0x8b, 0x38, 0x88, 0x54, 0x59, 0xaa, 0x57, 0x6a, 0x0b, 0x20, 0x21, 0x37,
|
||||||
0x20, 0x8c, 0xd9, 0x0e, 0x49, 0x02, 0xac, 0x4f, 0x89, 0xd6, 0x3f, 0xf9, 0xae, 0xd7, 0xf4, 0x7b,
|
0x6d, 0xc2, 0x98, 0xe7, 0x93, 0x3c, 0xc0, 0x86, 0x94, 0x6c, 0xfd, 0x75, 0x1c, 0x44, 0x9d, 0x78,
|
||||||
0x41, 0x8b, 0x70, 0x45, 0xc6, 0x2d, 0x85, 0x82, 0xee, 0xc1, 0xb4, 0xeb, 0x5d, 0xb8, 0x61, 0xa6,
|
0x90, 0x74, 0x09, 0x57, 0x64, 0xd6, 0xd5, 0x28, 0x68, 0x17, 0x16, 0x83, 0xe8, 0x36, 0x48, 0x4b,
|
||||||
0xe0, 0xa4, 0x89, 0x78, 0x06, 0xa6, 0x15, 0x7d, 0x18, 0xc5, 0x7f, 0x37, 0x60, 0x25, 0x1b, 0xb5,
|
0x05, 0xa7, 0x48, 0xc4, 0x4b, 0xb0, 0xa8, 0xe9, 0xc3, 0x28, 0xfe, 0xbb, 0x05, 0x1b, 0xe5, 0xa8,
|
||||||
0xd1, 0x82, 0xef, 0x31, 0x32, 0x50, 0xe1, 0xb2, 0x8c, 0x88, 0xd6, 0x3f, 0xda, 0x5e, 0xbb, 0x43,
|
0xcd, 0x16, 0xe2, 0x88, 0x91, 0xb1, 0x0a, 0x8f, 0xca, 0x88, 0x6c, 0xfd, 0x4b, 0x2f, 0xea, 0x85,
|
||||||
0xda, 0x0d, 0xe6, 0x08, 0xcb, 0x29, 0x94, 0xa8, 0x86, 0xc6, 0x5f, 0x16, 0x61, 0xbd, 0x4e, 0xc8,
|
0xa4, 0xd7, 0x66, 0xbe, 0xb4, 0x9c, 0x46, 0xc9, 0x6a, 0xa8, 0xf8, 0x72, 0x09, 0x1b, 0x84, 0x29,
|
||||||
0xf5, 0x1d, 0xb7, 0x52, 0x34, 0xbc, 0x06, 0xab, 0xc5, 0xca, 0x31, 0x8a, 0x37, 0x61, 0xea, 0x4d,
|
0xd7, 0x77, 0xd6, 0x2d, 0xd0, 0xf0, 0x16, 0x6c, 0xd6, 0x2b, 0xc7, 0x28, 0xde, 0x83, 0x85, 0x57,
|
||||||
0xcf, 0x0d, 0x07, 0x9b, 0x37, 0xba, 0xb8, 0xc2, 0xc9, 0x28, 0xfe, 0xab, 0x01, 0xd5, 0x24, 0x63,
|
0x83, 0x20, 0x1d, 0x6f, 0xde, 0xec, 0xe2, 0x1a, 0x27, 0xa3, 0xf8, 0xaf, 0x16, 0x34, 0xf3, 0x8c,
|
||||||
0xfb, 0xaf, 0x42, 0xf9, 0x95, 0x17, 0x61, 0xe2, 0xd4, 0xed, 0x84, 0x24, 0xe0, 0xd7, 0x1d, 0xb7,
|
0x15, 0x4f, 0x42, 0x9e, 0x2e, 0xf5, 0x57, 0x5e, 0x83, 0xb9, 0xab, 0x20, 0x4c, 0x49, 0xc2, 0xaf,
|
||||||
0xc4, 0x57, 0x26, 0x91, 0xae, 0x5d, 0x31, 0x91, 0x28, 0x2c, 0xea, 0x14, 0x2a, 0xcc, 0xa0, 0x9f,
|
0x3b, 0xeb, 0xca, 0xaf, 0x52, 0x22, 0x3d, 0xb8, 0x67, 0x22, 0x51, 0x58, 0x33, 0x29, 0x54, 0x9b,
|
||||||
0xc3, 0xf5, 0x2e, 0xe7, 0x4b, 0x72, 0xe7, 0x7e, 0x51, 0xee, 0xc4, 0xdb, 0xbd, 0xea, 0x75, 0x3a,
|
0x41, 0x3f, 0x87, 0x87, 0x7d, 0xf9, 0xbc, 0x89, 0xdc, 0x79, 0xbb, 0x2e, 0x77, 0xc4, 0x76, 0x1f,
|
||||||
0xbc, 0x68, 0x26, 0x62, 0xd8, 0xca, 0x9e, 0x28, 0xdf, 0x8d, 0x52, 0xb7, 0x77, 0xfb, 0x4f, 0x6b,
|
0x0f, 0xc2, 0x90, 0x17, 0xcd, 0x5c, 0x0c, 0x9f, 0x94, 0x4f, 0x54, 0xef, 0x46, 0xbd, 0x0d, 0xec,
|
||||||
0x85, 0xbf, 0x29, 0x0a, 0x05, 0xff, 0x16, 0x96, 0xb4, 0x7b, 0x32, 0xaa, 0x2a, 0x6c, 0x5c, 0x4d,
|
0xe2, 0xa9, 0xf3, 0xc3, 0xdd, 0x7e, 0x0b, 0xeb, 0xc6, 0xdd, 0x18, 0xd5, 0x55, 0xb5, 0xee, 0xa7,
|
||||||
0xe1, 0x00, 0xd0, 0x2f, 0xdd, 0xd6, 0x99, 0xc2, 0x53, 0xae, 0xec, 0xf7, 0x60, 0xf6, 0xcc, 0x6d,
|
0x6a, 0x08, 0xe8, 0x97, 0x41, 0xf7, 0x5a, 0xe3, 0x19, 0xad, 0xe6, 0x2e, 0x2c, 0x5e, 0x07, 0xdd,
|
||||||
0x9d, 0x91, 0x76, 0x1c, 0x93, 0x8a, 0xca, 0x39, 0x7a, 0xe4, 0xdc, 0x80, 0xd8, 0xcc, 0xf7, 0x44,
|
0x6b, 0xd2, 0xcb, 0x9f, 0x68, 0xa1, 0x6c, 0x91, 0x98, 0x39, 0x34, 0x21, 0x1e, 0x8b, 0x23, 0x19,
|
||||||
0xac, 0x8a, 0x2f, 0x5c, 0x85, 0xf9, 0xdc, 0x99, 0x8c, 0xe2, 0xdf, 0xf3, 0xf0, 0x89, 0x92, 0x89,
|
0x9f, 0xf2, 0x0b, 0x37, 0x61, 0xa5, 0x72, 0x1a, 0xa3, 0xf8, 0xf7, 0x3c, 0x64, 0xb2, 0x04, 0x22,
|
||||||
0xb4, 0xf9, 0x5a, 0x12, 0x3e, 0xe9, 0xbc, 0x30, 0x72, 0x79, 0x31, 0x9a, 0xaa, 0xdb, 0xe6, 0xae,
|
0x3d, 0xbe, 0x96, 0x87, 0x4c, 0x31, 0x17, 0xac, 0x4a, 0x2e, 0x4c, 0xa7, 0xd2, 0xf6, 0xb8, 0xbb,
|
||||||
0xcb, 0x1d, 0x5f, 0x18, 0x2c, 0x3f, 0x84, 0x09, 0x6e, 0x94, 0x24, 0x56, 0xca, 0xdf, 0x74, 0xc1,
|
0x2a, 0xc7, 0xd7, 0x06, 0xc8, 0x0f, 0x61, 0x8e, 0x9b, 0x23, 0x8f, 0x8f, 0xd1, 0xef, 0xb8, 0xe4,
|
||||||
0x8b, 0x29, 0x2c, 0xec, 0xf1, 0xfa, 0x11, 0xe9, 0x7e, 0xe4, 0x0f, 0x51, 0xc6, 0xfa, 0x56, 0xac,
|
0xc5, 0x14, 0x56, 0x8f, 0x79, 0xcd, 0xc8, 0x74, 0x3f, 0x8f, 0x27, 0x28, 0x5d, 0x43, 0x2b, 0x36,
|
||||||
0xa8, 0x56, 0x8c, 0x51, 0x59, 0xb4, 0x53, 0x3b, 0x8d, 0x99, 0x32, 0x54, 0xbc, 0x04, 0x55, 0xcd,
|
0x74, 0x2b, 0x66, 0xf5, 0x53, 0x54, 0x9f, 0x5e, 0x11, 0x27, 0x95, 0xa8, 0x78, 0x1d, 0x9a, 0x86,
|
||||||
0x89, 0x8c, 0xe2, 0x0b, 0x58, 0x90, 0x0f, 0x6c, 0xa7, 0x33, 0x8c, 0xf3, 0x47, 0x63, 0xe8, 0xdf,
|
0x13, 0x19, 0xc5, 0xb7, 0xb0, 0xaa, 0x1e, 0xd5, 0x30, 0x9c, 0xc4, 0xed, 0xd3, 0x31, 0xf4, 0x6f,
|
||||||
0xf4, 0xcb, 0x84, 0x72, 0xee, 0x48, 0xa2, 0xf9, 0x1f, 0x06, 0xdc, 0xd8, 0x6e, 0x34, 0x39, 0xcf,
|
0x86, 0xa5, 0x41, 0x3b, 0x77, 0x2a, 0x71, 0xfc, 0x0f, 0x0b, 0x1e, 0x1d, 0xb4, 0x3b, 0x9c, 0xe7,
|
||||||
0xb7, 0x20, 0x3f, 0x54, 0x07, 0xe4, 0xc8, 0x87, 0x27, 0x32, 0xdc, 0x81, 0xdd, 0x4d, 0xde, 0x10,
|
0xdb, 0xa0, 0x3d, 0xd4, 0x02, 0xe4, 0xab, 0xc7, 0x26, 0x33, 0xdc, 0xa9, 0xd7, 0xcf, 0xdf, 0x0d,
|
||||||
0xcd, 0x4a, 0x94, 0x16, 0x69, 0xaa, 0x7c, 0xda, 0x72, 0x74, 0xfc, 0x27, 0x03, 0xa6, 0x24, 0x4c,
|
0xc3, 0x0a, 0xfa, 0x1e, 0x2c, 0x17, 0xa9, 0xea, 0x39, 0xab, 0xd0, 0xf1, 0x9f, 0x2c, 0x58, 0x50,
|
||||||
0x1c, 0x1d, 0x9e, 0x5a, 0x15, 0xd7, 0x55, 0x34, 0xed, 0x13, 0x54, 0xa7, 0x8e, 0xa5, 0xeb, 0xf8,
|
0xd0, 0x70, 0x7a, 0x18, 0x6a, 0x53, 0x5e, 0x57, 0xd3, 0x74, 0x48, 0xd0, 0x9d, 0x3a, 0x53, 0xac,
|
||||||
0x11, 0x4c, 0x2b, 0xda, 0x30, 0x8a, 0xbe, 0x2b, 0x03, 0x3b, 0xf6, 0xc2, 0x4c, 0x3d, 0x6e, 0x40,
|
0xdd, 0xe7, 0xb0, 0xa8, 0x69, 0xc3, 0x28, 0xfa, 0xae, 0x0a, 0x6c, 0xe1, 0x85, 0xa5, 0x96, 0x68,
|
||||||
0x12, 0xc3, 0x26, 0xb1, 0x1c, 0x41, 0x61, 0x4e, 0x38, 0xe8, 0x75, 0x45, 0xf9, 0x96, 0xdf, 0xf8,
|
0x37, 0x72, 0xc3, 0xe6, 0xb1, 0x9c, 0xc1, 0x5f, 0x4e, 0x38, 0x1d, 0xf4, 0x65, 0xc9, 0x56, 0xdf,
|
||||||
0x61, 0x1f, 0x0a, 0x0f, 0x11, 0x59, 0xf8, 0x6f, 0xb9, 0xb7, 0x83, 0x6d, 0x37, 0x9a, 0xe5, 0xd1,
|
0xf8, 0xf9, 0x10, 0xfe, 0x4e, 0x10, 0x59, 0xf8, 0x6f, 0x95, 0xf7, 0x82, 0x1d, 0xb4, 0x3b, 0xa3,
|
||||||
0x68, 0xc2, 0x8d, 0x5e, 0xda, 0x33, 0xf2, 0x3b, 0x63, 0xd2, 0xb1, 0x2b, 0x46, 0xea, 0xbf, 0x8d,
|
0xa3, 0xd1, 0x81, 0x47, 0x83, 0xa2, 0x67, 0xd4, 0x77, 0xc9, 0xa4, 0x33, 0xf7, 0x8c, 0xd4, 0x7f,
|
||||||
0x5c, 0x39, 0xe7, 0x5a, 0x8d, 0x22, 0x56, 0xd1, 0x4b, 0x4d, 0x32, 0x7d, 0x47, 0xab, 0x62, 0xfc,
|
0x5b, 0x95, 0x12, 0xce, 0xb5, 0x9a, 0x46, 0xac, 0xa2, 0x8f, 0x0c, 0xc9, 0xf4, 0x1d, 0xa3, 0x8a,
|
||||||
0x3c, 0x17, 0xc3, 0xe8, 0x78, 0xc7, 0x83, 0x5e, 0x97, 0x25, 0x28, 0xa6, 0x4f, 0xc1, 0xdf, 0x87,
|
0xe2, 0x49, 0xae, 0x87, 0xce, 0x62, 0xc7, 0xd3, 0x41, 0x9f, 0xe5, 0xc8, 0x65, 0x48, 0xc1, 0xdf,
|
||||||
0x99, 0x1d, 0x97, 0x75, 0x5d, 0xc6, 0x86, 0x78, 0xd3, 0x11, 0xcc, 0xa6, 0x99, 0x19, 0xc5, 0x9f,
|
0x87, 0xa5, 0xc3, 0x80, 0xf5, 0x03, 0xc6, 0x26, 0x78, 0xc7, 0x11, 0x2c, 0x17, 0x99, 0x19, 0xc5,
|
||||||
0x00, 0x35, 0x7a, 0xa2, 0xa3, 0x1a, 0xa6, 0x48, 0xf4, 0xb1, 0x71, 0x25, 0x85, 0x8d, 0x31, 0x4c,
|
0xaf, 0x01, 0xb5, 0x07, 0xb2, 0x8b, 0x9a, 0xa4, 0x48, 0x0c, 0xf1, 0x70, 0xa3, 0x80, 0x87, 0x31,
|
||||||
0x75, 0x7b, 0x21, 0x69, 0x37, 0x49, 0xcb, 0xf7, 0xda, 0xb1, 0xaa, 0xd3, 0x56, 0x8a, 0x16, 0xbd,
|
0x2c, 0xf4, 0x07, 0x29, 0xe9, 0x75, 0x48, 0x37, 0x8e, 0x7a, 0x42, 0xd5, 0x45, 0xb7, 0x40, 0xcb,
|
||||||
0x0c, 0xb9, 0xb3, 0x18, 0xc5, 0xfb, 0x50, 0xdb, 0xb6, 0xbd, 0x16, 0xe9, 0x8c, 0x42, 0x11, 0xbc,
|
0x5e, 0x86, 0xca, 0x59, 0x8c, 0xe2, 0x13, 0xb0, 0x0f, 0xbc, 0xa8, 0x4b, 0xc2, 0x69, 0x28, 0x82,
|
||||||
0x02, 0xcb, 0x05, 0xbb, 0xc5, 0xf8, 0x47, 0x92, 0x07, 0xe2, 0x1f, 0x85, 0x93, 0x51, 0x5c, 0x07,
|
0x37, 0xe0, 0x69, 0xcd, 0x6e, 0x02, 0xf3, 0x28, 0xf2, 0x58, 0xcc, 0xa3, 0x71, 0x32, 0x8a, 0x5b,
|
||||||
0x94, 0xd9, 0xb7, 0x7c, 0x83, 0x2a, 0xcc, 0xe7, 0xf8, 0x19, 0xc5, 0x2e, 0x2c, 0x37, 0x53, 0x31,
|
0x80, 0x4a, 0xfb, 0x8e, 0xde, 0xa0, 0x09, 0x2b, 0x15, 0x7e, 0x46, 0x71, 0x00, 0x4f, 0x3b, 0x85,
|
||||||
0x77, 0xe0, 0xb6, 0xce, 0x3c, 0xbb, 0x4b, 0x06, 0x66, 0x83, 0x27, 0x18, 0x93, 0x6c, 0x48, 0xbe,
|
0x98, 0x3b, 0x0d, 0xba, 0xd7, 0x91, 0xd7, 0x27, 0x63, 0xb3, 0x21, 0x92, 0x8c, 0x79, 0x36, 0xe4,
|
||||||
0x15, 0x4b, 0x8c, 0xa5, 0x2c, 0xb1, 0x0a, 0x66, 0xd1, 0x51, 0x8c, 0xe2, 0x2f, 0xbc, 0x09, 0x8c,
|
0xdf, 0x9a, 0x25, 0x66, 0x0a, 0x96, 0xd8, 0x04, 0xa7, 0xee, 0x28, 0x46, 0xf1, 0xd7, 0xbc, 0xf1,
|
||||||
0x1f, 0xc4, 0x66, 0x8f, 0x0a, 0x28, 0x3e, 0xda, 0x26, 0xb0, 0xc8, 0x47, 0x2e, 0x6f, 0xfe, 0xf4,
|
0x13, 0x0f, 0x62, 0x67, 0x40, 0x25, 0xfc, 0x9e, 0x6e, 0xe3, 0x57, 0xe7, 0xa3, 0x80, 0x37, 0x7c,
|
||||||
0x67, 0x8f, 0xf8, 0x45, 0x7e, 0xcc, 0x2b, 0x4f, 0xff, 0x90, 0xa1, 0x3a, 0xfd, 0x77, 0xbc, 0x30,
|
0xe6, 0xb3, 0xa7, 0xfc, 0x22, 0xbf, 0xe4, 0x95, 0x67, 0x78, 0xc8, 0x44, 0xdd, 0xfd, 0x67, 0xbc,
|
||||||
0xe4, 0x84, 0xbe, 0xb9, 0xdd, 0xff, 0x67, 0x05, 0xaa, 0x69, 0x97, 0x0c, 0xc6, 0x8f, 0x45, 0x09,
|
0x30, 0x54, 0x84, 0xbe, 0x75, 0x8b, 0xff, 0xcf, 0x06, 0x34, 0x8b, 0x2e, 0x19, 0x8f, 0x19, 0xeb,
|
||||||
0xf7, 0x63, 0x25, 0x22, 0xc6, 0xc4, 0xf3, 0xe7, 0xf8, 0xbe, 0xd3, 0x21, 0xf1, 0xa8, 0xe7, 0xa4,
|
0x12, 0xee, 0xc7, 0x5a, 0x44, 0xcc, 0xc8, 0xe7, 0xcf, 0x8f, 0x63, 0x3f, 0x24, 0x62, 0xb0, 0x73,
|
||||||
0x77, 0x5a, 0x6f, 0x86, 0x81, 0xeb, 0x39, 0xef, 0xec, 0x4e, 0x8f, 0x28, 0xf1, 0xf2, 0x04, 0xae,
|
0x39, 0xb8, 0x6a, 0x75, 0xd2, 0x24, 0x88, 0xfc, 0xcf, 0xbc, 0x70, 0x40, 0xb4, 0x78, 0x79, 0x17,
|
||||||
0x9f, 0xda, 0x2d, 0xf2, 0xd6, 0xda, 0x17, 0xd0, 0xbb, 0x5c, 0x30, 0x61, 0x46, 0x3f, 0x81, 0xc9,
|
0x1e, 0x5e, 0x79, 0x5d, 0xf2, 0xa9, 0x7b, 0x22, 0xe1, 0xf6, 0x68, 0xc1, 0x9c, 0x19, 0xfd, 0x04,
|
||||||
0xc0, 0xef, 0x90, 0x7d, 0x72, 0x41, 0x3a, 0xb5, 0x71, 0x2e, 0xb9, 0x92, 0x93, 0xdc, 0xf3, 0xc2,
|
0xe6, 0x93, 0x38, 0x24, 0x27, 0xe4, 0x96, 0x84, 0xf6, 0x2c, 0x97, 0xdc, 0xa8, 0x48, 0x1e, 0x47,
|
||||||
0xc7, 0x8f, 0x62, 0xc1, 0x3e, 0x37, 0x7a, 0x00, 0x15, 0xf2, 0xb9, 0x36, 0x31, 0xc4, 0x69, 0x15,
|
0xe9, 0xcb, 0x17, 0x42, 0x70, 0xc8, 0x8d, 0xde, 0x81, 0x06, 0xf9, 0xca, 0x9e, 0x9b, 0xe0, 0xb4,
|
||||||
0xf2, 0x39, 0xea, 0x0f, 0x75, 0x56, 0x62, 0x14, 0xff, 0xa8, 0x0f, 0x96, 0x9f, 0x9f, 0xb0, 0x30,
|
0x06, 0xf9, 0x2a, 0xeb, 0x09, 0x4d, 0x56, 0x62, 0x14, 0xff, 0x68, 0x08, 0x93, 0x3f, 0xb8, 0x64,
|
||||||
0xb0, 0x5b, 0xe1, 0x30, 0xfe, 0xfc, 0xb3, 0x01, 0x73, 0x39, 0xa1, 0x12, 0x9b, 0x3f, 0x10, 0xb3,
|
0x69, 0xe2, 0x75, 0xd3, 0x49, 0xfc, 0xf9, 0x67, 0x0b, 0x9e, 0x54, 0x84, 0x46, 0xd8, 0xfc, 0x1d,
|
||||||
0xb9, 0x46, 0x52, 0x68, 0x4f, 0x64, 0x0b, 0x93, 0x5f, 0x40, 0x3f, 0x80, 0x79, 0x27, 0xdd, 0x84,
|
0x39, 0x89, 0x6b, 0xe7, 0x85, 0xf6, 0x52, 0xb5, 0x2d, 0xd5, 0x05, 0xf4, 0x03, 0x58, 0xf1, 0x8b,
|
||||||
0xbc, 0xb6, 0xd9, 0x47, 0xee, 0x94, 0x6b, 0x96, 0x6e, 0x09, 0xb7, 0xa1, 0xa6, 0xbf, 0x06, 0xa3,
|
0x8d, 0xc7, 0x27, 0x1e, 0xfb, 0x92, 0x3b, 0xe5, 0x81, 0x6b, 0x5a, 0xc2, 0x3d, 0xb0, 0xcd, 0xd7,
|
||||||
0xe8, 0xb5, 0xc0, 0x26, 0xea, 0x42, 0x12, 0x69, 0x35, 0xf1, 0x56, 0xe7, 0x25, 0x35, 0x32, 0xf8,
|
0x60, 0x14, 0x7d, 0x22, 0xb1, 0x89, 0xbe, 0x90, 0x47, 0x9a, 0x2d, 0xdf, 0xea, 0xaa, 0xa4, 0x41,
|
||||||
0x00, 0x6a, 0x4e, 0x3c, 0x68, 0xd8, 0xf3, 0xd4, 0x47, 0xae, 0x6c, 0xc4, 0xa1, 0x5a, 0xb1, 0x92,
|
0x06, 0x9f, 0x82, 0xed, 0x8b, 0xe1, 0xc2, 0x71, 0xa4, 0x3f, 0x72, 0xa3, 0xc6, 0x1a, 0xba, 0x15,
|
||||||
0xb1, 0xe2, 0x07, 0x58, 0x2e, 0xd8, 0x6f, 0x14, 0x2f, 0xe6, 0xa3, 0xff, 0xcc, 0x42, 0x3c, 0xfe,
|
0x1b, 0x25, 0x2b, 0x7e, 0x01, 0x4f, 0x6b, 0xf6, 0x9b, 0xc6, 0x8b, 0xf9, 0xe2, 0x3f, 0xcb, 0x20,
|
||||||
0x44, 0x4f, 0xe1, 0x66, 0xab, 0x3f, 0xe7, 0x43, 0xd5, 0x04, 0xa1, 0xa4, 0xe6, 0x96, 0xe6, 0xa2,
|
0x86, 0x9d, 0xe8, 0x3d, 0x78, 0xdc, 0x1d, 0xce, 0xf6, 0x50, 0x33, 0x47, 0x28, 0x85, 0x29, 0xa5,
|
||||||
0x8e, 0xcc, 0x28, 0x7a, 0x02, 0x93, 0x9f, 0x92, 0x96, 0x1d, 0xcd, 0x0b, 0x26, 0x75, 0xa8, 0x60,
|
0xb3, 0x66, 0x22, 0x33, 0x8a, 0xde, 0x85, 0xf9, 0xd7, 0x79, 0x9b, 0x8e, 0x56, 0x24, 0x93, 0x3e,
|
||||||
0x2e, 0xe4, 0x89, 0xb1, 0xdc, 0x79, 0xd2, 0xf1, 0x4a, 0x39, 0xb5, 0x5b, 0x96, 0x72, 0xa9, 0xc6,
|
0x48, 0x70, 0x56, 0xab, 0x44, 0x21, 0x77, 0x93, 0x77, 0xb9, 0x4a, 0x4e, 0xef, 0x90, 0x95, 0x5c,
|
||||||
0x18, 0xbd, 0x80, 0x69, 0x47, 0x1d, 0x0b, 0xa2, 0xa5, 0xc4, 0x4b, 0x99, 0xe1, 0xa2, 0x59, 0xd3,
|
0xa1, 0x19, 0x46, 0x1f, 0xc2, 0xa2, 0xaf, 0x8f, 0x02, 0xd1, 0x7a, 0xee, 0xa5, 0xd2, 0x40, 0xd1,
|
||||||
0x2f, 0x30, 0x8a, 0x9e, 0xc1, 0x14, 0x53, 0xc6, 0x74, 0x28, 0xb9, 0x5b, 0x66, 0x38, 0x68, 0x2e,
|
0xb1, 0xcd, 0x0b, 0x8c, 0xa2, 0xf7, 0x61, 0x81, 0x69, 0xa3, 0x39, 0x94, 0xdf, 0xad, 0x34, 0x10,
|
||||||
0x69, 0xe9, 0x8c, 0xa2, 0xdf, 0xc1, 0x92, 0xa3, 0x1f, 0xa7, 0xa1, 0x3b, 0x99, 0x53, 0xf3, 0x03,
|
0x74, 0xd6, 0x8d, 0x74, 0x46, 0xd1, 0xef, 0x60, 0xdd, 0x37, 0x8f, 0xd0, 0xd0, 0x9b, 0xa5, 0x53,
|
||||||
0x2f, 0x13, 0x0f, 0x62, 0x61, 0x14, 0x9d, 0x4a, 0xef, 0xe7, 0xc7, 0x56, 0xe8, 0x6e, 0x7f, 0x83,
|
0xab, 0x43, 0x2e, 0x07, 0x8f, 0x63, 0x61, 0x14, 0x5d, 0x29, 0xef, 0x57, 0x47, 0x55, 0xe8, 0xad,
|
||||||
0xc2, 0xb1, 0x9a, 0x79, 0x6f, 0x30, 0x13, 0xa3, 0xe8, 0x0d, 0xa0, 0x30, 0x37, 0x1c, 0x42, 0xab,
|
0xe1, 0x06, 0xb5, 0xa3, 0x34, 0x67, 0x77, 0x3c, 0x13, 0xa3, 0xe8, 0x15, 0xa0, 0xb4, 0x32, 0x10,
|
||||||
0x42, 0x56, 0x3b, 0xba, 0x32, 0x6f, 0x97, 0xac, 0x32, 0x8a, 0x5a, 0x50, 0x73, 0x0a, 0xa6, 0x22,
|
0x42, 0x9b, 0x52, 0xd6, 0x38, 0xae, 0x72, 0x9e, 0x8d, 0x58, 0x65, 0x14, 0x75, 0xc1, 0xf6, 0x6b,
|
||||||
0x08, 0xa7, 0x52, 0x4a, 0x3b, 0xd3, 0x31, 0xef, 0x0e, 0xe4, 0x89, 0xf5, 0x76, 0x72, 0xd3, 0x08,
|
0x26, 0x21, 0x08, 0x17, 0x52, 0xca, 0x38, 0xc7, 0x71, 0xde, 0x1a, 0xcb, 0x23, 0xf4, 0xf6, 0x2b,
|
||||||
0xa9, 0xb7, 0x76, 0x72, 0x22, 0xf5, 0x2e, 0x18, 0x63, 0x1c, 0xc1, 0xbc, 0x93, 0x1f, 0x0d, 0x20,
|
0x13, 0x08, 0xa5, 0xb7, 0x71, 0x5a, 0xa2, 0xf4, 0xae, 0x19, 0x5d, 0x9c, 0xc3, 0x8a, 0x5f, 0x1d,
|
||||||
0xbd, 0x94, 0x8c, 0xb2, 0xb5, 0xb2, 0x65, 0x5e, 0x60, 0x66, 0xce, 0xd2, 0xfd, 0x39, 0x5a, 0x16,
|
0x0a, 0x20, 0xb3, 0x94, 0x8a, 0xb2, 0xad, 0x51, 0xcb, 0xbc, 0xc0, 0x2c, 0x5d, 0x17, 0xfb, 0x73,
|
||||||
0x22, 0xf9, 0x59, 0x81, 0x69, 0x16, 0x2d, 0xc9, 0x2b, 0x67, 0x7a, 0x6a, 0xf5, 0xca, 0xf9, 0x6e,
|
0xf4, 0x54, 0x8a, 0x54, 0xa7, 0x04, 0x8e, 0x53, 0xb7, 0xa4, 0xae, 0x5c, 0xea, 0xa9, 0xf5, 0x2b,
|
||||||
0x5f, 0xbd, 0xb2, 0xae, 0x19, 0x3f, 0x80, 0x39, 0x37, 0xdb, 0xce, 0xa2, 0x15, 0x21, 0xa3, 0x6b,
|
0x57, 0xbb, 0x7d, 0xfd, 0xca, 0xa6, 0x66, 0xfc, 0x14, 0x9e, 0x04, 0xe5, 0x76, 0x16, 0x6d, 0x48,
|
||||||
0xad, 0xcd, 0xd5, 0xe2, 0xc5, 0x38, 0xa9, 0x65, 0x72, 0xca, 0xa4, 0x56, 0xdb, 0x33, 0x99, 0xd4,
|
0x19, 0x53, 0x6b, 0xed, 0x6c, 0xd6, 0x2f, 0x8a, 0xa4, 0x56, 0xc9, 0xa9, 0x92, 0x5a, 0x6f, 0xcf,
|
||||||
0xe9, 0x2e, 0x29, 0xe7, 0xcd, 0xa8, 0x35, 0x28, 0xf0, 0xa6, 0xe8, 0x65, 0x0a, 0xbc, 0x29, 0x7b,
|
0x54, 0x52, 0x17, 0xbb, 0xa4, 0x8a, 0x37, 0xb3, 0xd6, 0xa0, 0xc6, 0x9b, 0xb2, 0x97, 0xa9, 0xf1,
|
||||||
0x8a, 0x67, 0x30, 0xd5, 0x56, 0xd0, 0xb7, 0xcc, 0xf1, 0x0c, 0x7e, 0x97, 0x39, 0x9e, 0x85, 0xea,
|
0xa6, 0xea, 0x29, 0xde, 0x87, 0x85, 0x9e, 0x86, 0xbe, 0x55, 0x8e, 0x97, 0xf0, 0xbb, 0xca, 0xf1,
|
||||||
0x91, 0xe3, 0xba, 0x69, 0x4c, 0x2b, 0x1d, 0x97, 0x47, 0xce, 0xd2, 0x71, 0x1a, 0x18, 0x8c, 0xde,
|
0x32, 0x54, 0xcf, 0x1c, 0xd7, 0x2f, 0x62, 0x5a, 0xe5, 0xb8, 0x2a, 0x72, 0x56, 0x8e, 0x33, 0xc0,
|
||||||
0x43, 0xb5, 0xa5, 0xc3, 0xc8, 0x68, 0x3d, 0xa9, 0xa9, 0x05, 0x78, 0xdc, 0xdc, 0x28, 0x67, 0x88,
|
0x60, 0xf4, 0x39, 0x34, 0xbb, 0x26, 0x8c, 0x8c, 0xb6, 0xf3, 0x9a, 0x5a, 0x83, 0xc7, 0x9d, 0x9d,
|
||||||
0x2d, 0x2e, 0xb5, 0x94, 0x16, 0x57, 0x31, 0xb3, 0xb4, 0x78, 0x0a, 0x18, 0x47, 0xb7, 0xcb, 0xe8,
|
0xd1, 0x0c, 0xc2, 0xe2, 0x4a, 0x4b, 0x65, 0x71, 0x1d, 0x33, 0x2b, 0x8b, 0x17, 0x80, 0x71, 0x76,
|
||||||
0x24, 0x6f, 0x97, 0xc7, 0xdd, 0xf2, 0x76, 0x1a, 0x88, 0x2d, 0x6a, 0xa1, 0x0e, 0x5d, 0xaa, 0xb5,
|
0xbb, 0x92, 0x4e, 0xea, 0x76, 0x55, 0xdc, 0xad, 0x6e, 0x67, 0x80, 0xd8, 0xb2, 0x16, 0x9a, 0xd0,
|
||||||
0xb0, 0x00, 0xf9, 0xaa, 0xb5, 0xb0, 0x10, 0xa0, 0xc6, 0xd1, 0x91, 0xc1, 0x87, 0x6a, 0x74, 0xe4,
|
0xa5, 0x5e, 0x0b, 0x6b, 0x90, 0xaf, 0x5e, 0x0b, 0x6b, 0x01, 0xaa, 0x88, 0x8e, 0x12, 0x3e, 0xd4,
|
||||||
0xf1, 0xa6, 0x1a, 0x1d, 0x3a, 0x60, 0xf9, 0x01, 0x16, 0x99, 0x16, 0xac, 0xa3, 0x8d, 0x4c, 0xcd,
|
0xa3, 0xa3, 0x8a, 0x37, 0xf5, 0xe8, 0x30, 0x01, 0xcb, 0x2f, 0x60, 0x8d, 0x19, 0xc1, 0x3a, 0xda,
|
||||||
0xcf, 0xb5, 0x0d, 0xe6, 0x9d, 0x01, 0x1c, 0xb1, 0xc6, 0x2c, 0x07, 0xa9, 0xa4, 0xc6, 0x5a, 0x4c,
|
0x29, 0xd5, 0xfc, 0x4a, 0xdb, 0xe0, 0xbc, 0x39, 0x86, 0x43, 0x68, 0xcc, 0x2a, 0x90, 0x4a, 0x69,
|
||||||
0x2a, 0x35, 0xd6, 0x63, 0x31, 0xf4, 0x6b, 0x58, 0x70, 0x34, 0x20, 0x06, 0x65, 0xeb, 0x4f, 0x06,
|
0x6c, 0xc4, 0xa4, 0x4a, 0x63, 0x33, 0x16, 0x43, 0xbf, 0x86, 0x55, 0xdf, 0x00, 0x62, 0x50, 0xb9,
|
||||||
0xa8, 0x99, 0xeb, 0xa5, 0xeb, 0x71, 0x74, 0x6a, 0x71, 0x86, 0x8c, 0xce, 0x22, 0x54, 0x23, 0xa3,
|
0xfe, 0x94, 0x80, 0x9a, 0xb3, 0x3d, 0x72, 0x5d, 0x44, 0xa7, 0x11, 0x67, 0xa8, 0xe8, 0xac, 0x43,
|
||||||
0xb3, 0x10, 0xa6, 0xbc, 0x58, 0x7f, 0x7f, 0xfb, 0x90, 0x12, 0xef, 0x78, 0xaf, 0xa1, 0xfc, 0x55,
|
0x35, 0x2a, 0x3a, 0x6b, 0x61, 0xca, 0x87, 0xdb, 0x9f, 0x3f, 0x3b, 0xa3, 0x24, 0xba, 0x38, 0x6e,
|
||||||
0xca, 0x85, 0x7e, 0xc6, 0x7f, 0x4f, 0x26, 0x38, 0xe9, 0xf1, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff,
|
0x6b, 0x7f, 0x8c, 0x72, 0xa1, 0x9f, 0xf1, 0xdf, 0xcb, 0x39, 0x4e, 0x7a, 0xf9, 0xdf, 0x00, 0x00,
|
||||||
0x5e, 0xb6, 0x4c, 0x79, 0x9d, 0x1d, 0x00, 0x00,
|
0x00, 0xff, 0xff, 0x4a, 0x6c, 0x49, 0xeb, 0x8b, 0x1d, 0x00, 0x00,
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user