This commit is contained in:
wangchuxiao
2023-02-03 12:16:48 +08:00
parent ff88f5d54a
commit b637a29348
45 changed files with 785 additions and 680 deletions
+24 -24
View File
@@ -8,7 +8,7 @@ import (
"Open_IM/pkg/common/db/cache"
"Open_IM/pkg/common/db/controller"
"Open_IM/pkg/common/db/relation"
"Open_IM/pkg/common/db/table"
relation2 "Open_IM/pkg/common/db/table/relation"
"Open_IM/pkg/common/db/unrelation"
"Open_IM/pkg/common/log"
"Open_IM/pkg/common/middleware"
@@ -76,7 +76,7 @@ func NewGroupServer(port int) *groupServer {
//mysql init
var mysql relation.Mysql
var mongo unrelation.Mongo
var groupModel table.GroupModel
var groupModel relation2.GroupModel
var redis cache.RedisClient
err = mysql.InitConn().AutoMigrateModel(&groupModel)
if err != nil {
@@ -192,8 +192,8 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR
if err := callbackBeforeCreateGroup(ctx, req); err != nil {
return nil, err
}
var group table.GroupModel
var groupMembers []*table.GroupMemberModel
var group relation2.GroupModel
var groupMembers []*relation2.GroupMemberModel
utils.CopyStructFields(&group, req.GroupInfo)
group.GroupID = genGroupID(ctx, req.GroupInfo.GroupID)
if req.GroupInfo.GroupType == constant.SuperGroup {
@@ -203,7 +203,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR
} else {
joinGroup := func(userID string, roleLevel int32) error {
user := userMap[userID]
groupMember := &table.GroupMemberModel{GroupID: group.GroupID, RoleLevel: roleLevel, OperatorUserID: tracelog.GetOpUserID(ctx), JoinSource: constant.JoinByInvitation, InviterUserID: tracelog.GetOpUserID(ctx)}
groupMember := &relation2.GroupMemberModel{GroupID: group.GroupID, RoleLevel: roleLevel, OperatorUserID: tracelog.GetOpUserID(ctx), JoinSource: constant.JoinByInvitation, InviterUserID: tracelog.GetOpUserID(ctx)}
utils.CopyStructFields(&groupMember, user)
if err := CallbackBeforeMemberJoinGroup(ctx, tracelog.GetOperationID(ctx), groupMember, group.Ex); err != nil {
return err
@@ -225,7 +225,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR
}
}
}
if err := s.GroupInterface.CreateGroup(ctx, []*table.GroupModel{&group}, groupMembers); err != nil {
if err := s.GroupInterface.CreateGroup(ctx, []*relation2.GroupModel{&group}, groupMembers); err != nil {
return nil, err
}
utils.CopyStructFields(resp.GroupInfo, group)
@@ -301,7 +301,7 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite
if err != nil {
return nil, err
}
memberMap := make(map[string]*table.GroupMemberModel)
memberMap := make(map[string]*relation2.GroupMemberModel)
for i, member := range members {
memberMap[member.GroupID] = members[i]
}
@@ -327,9 +327,9 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite
return nil, constant.ErrNoPermission.Wrap("not in group")
}
if !(member.RoleLevel == constant.GroupOwner || member.RoleLevel == constant.GroupAdmin) {
var requests []*table.GroupRequestModel
var requests []*relation2.GroupRequestModel
for _, userID := range req.InvitedUserIDs {
requests = append(requests, &table.GroupRequestModel{
requests = append(requests, &relation2.GroupRequestModel{
UserID: userID,
GroupID: req.GroupID,
JoinSource: constant.JoinByInvitation,
@@ -360,10 +360,10 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite
}
} else {
opUserID := tracelog.GetOpUserID(ctx)
var groupMembers []*table.GroupMemberModel
var groupMembers []*relation2.GroupMemberModel
for _, userID := range req.InvitedUserIDs {
user := userMap[userID]
var member table.GroupMemberModel
var member relation2.GroupMemberModel
utils.CopyStructFields(&member, user)
member.GroupID = req.GroupID
member.RoleLevel = constant.GroupOrdinaryUsers
@@ -471,7 +471,7 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou
if err != nil {
return nil, err
}
memberMap := make(map[string]*table.GroupMemberModel)
memberMap := make(map[string]*relation2.GroupMemberModel)
for i, member := range members {
memberMap[member.UserID] = members[i]
}
@@ -576,7 +576,7 @@ func (s *groupServer) GetGroupApplicationList(ctx context.Context, req *pbGroup.
if err != nil {
return nil, err
}
groupMap := make(map[string]*table.GroupModel)
groupMap := make(map[string]*relation2.GroupModel)
for i, group := range groups {
groupMap[group.GroupID] = groups[i]
}
@@ -649,7 +649,7 @@ func (s *groupServer) GroupApplicationResponse(ctx context.Context, req *pbGroup
return nil, err
}
groupRequest := getDBGroupRequest(ctx, req)
if err := (&table.GroupRequestModel{}).Update(ctx, []*table.GroupRequestModel{groupRequest}); err != nil {
if err := (&relation2.GroupRequestModel{}).Update(ctx, []*relation2.GroupRequestModel{groupRequest}); err != nil {
return nil, err
}
groupInfo, err := rocksCache.GetGroupInfoFromCache(ctx, req.GroupID)
@@ -665,7 +665,7 @@ func (s *groupServer) GroupApplicationResponse(ctx context.Context, req *pbGroup
if err != nil {
return nil, err
}
err = (&table.GroupMemberModel{}).Create(ctx, []*table.GroupMemberModel{member})
err = (&relation2.GroupMemberModel{}).Create(ctx, []*relation2.GroupMemberModel{member})
if err != nil {
return nil, err
}
@@ -719,7 +719,7 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq)
return nil, err
}
//to group member
groupMember := table.GroupMemberModel{GroupID: req.GroupID, RoleLevel: constant.GroupOrdinaryUsers, OperatorUserID: tracelog.GetOpUserID(ctx)}
groupMember := relation2.GroupMemberModel{GroupID: req.GroupID, RoleLevel: constant.GroupOrdinaryUsers, OperatorUserID: tracelog.GetOpUserID(ctx)}
utils.CopyStructFields(&groupMember, us)
if err := CallbackBeforeMemberJoinGroup(ctx, tracelog.GetOperationID(ctx), &groupMember, groupInfo.Ex); err != nil {
return nil, err
@@ -762,7 +762,7 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq)
return resp, nil
}
}
var groupRequest table.GroupRequestModel
var groupRequest relation2.GroupRequestModel
groupRequest.UserID = tracelog.GetOpUserID(ctx)
groupRequest.ReqMsg = req.ReqMessage
groupRequest.GroupID = req.GroupID
@@ -873,7 +873,7 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf
}
}
//only administrators can set group information
var groupInfo table.GroupModel
var groupInfo relation2.GroupModel
utils.CopyStructFields(&groupInfo, req.GroupInfoForSet)
if req.GroupInfoForSet.Notification != "" {
groupInfo.NotificationUserID = tracelog.GetOpUserID(ctx)
@@ -933,12 +933,12 @@ func (s *groupServer) TransferGroupOwner(ctx context.Context, req *pbGroup.Trans
return nil, err
}
groupMemberInfo := table.GroupMemberModel{GroupID: req.GroupID, UserID: req.OldOwnerUserID, RoleLevel: constant.GroupOrdinaryUsers}
groupMemberInfo := relation2.GroupMemberModel{GroupID: req.GroupID, UserID: req.OldOwnerUserID, RoleLevel: constant.GroupOrdinaryUsers}
err = relation.UpdateGroupMemberInfo(groupMemberInfo)
if err != nil {
return nil, err
}
groupMemberInfo = table.GroupMemberModel{GroupID: req.GroupID, UserID: req.NewOwnerUserID, RoleLevel: constant.GroupOwner}
groupMemberInfo = relation2.GroupMemberModel{GroupID: req.GroupID, UserID: req.NewOwnerUserID, RoleLevel: constant.GroupOwner}
err = relation.UpdateGroupMemberInfo(groupMemberInfo)
if err != nil {
return nil, err
@@ -1132,7 +1132,7 @@ func (s *groupServer) MuteGroupMember(ctx context.Context, req *pbGroup.MuteGrou
if err := rocksCache.DelGroupMemberInfoFromCache(ctx, req.GroupID, req.UserID); err != nil {
return nil, err
}
groupMemberInfo := table.GroupMemberModel{GroupID: req.GroupID, UserID: req.UserID}
groupMemberInfo := relation2.GroupMemberModel{GroupID: req.GroupID, UserID: req.UserID}
groupMemberInfo.MuteEndTime = time.Unix(int64(time.Now().Second())+int64(req.MutedSeconds), time.Now().UnixNano())
err = relation.UpdateGroupMemberInfo(groupMemberInfo)
if err != nil {
@@ -1167,7 +1167,7 @@ func (s *groupServer) CancelMuteGroupMember(ctx context.Context, req *pbGroup.Ca
return nil, err
}
groupMemberInfo := table.GroupMemberModel{GroupID: req.GroupID, UserID: req.UserID}
groupMemberInfo := relation2.GroupMemberModel{GroupID: req.GroupID, UserID: req.UserID}
groupMemberInfo.MuteEndTime = time.Unix(0, 0)
err = relation.UpdateGroupMemberInfo(groupMemberInfo)
if err != nil {
@@ -1266,7 +1266,7 @@ func (s *groupServer) SetGroupMemberNickname(ctx context.Context, req *pbGroup.S
return nil, err
}
nickName := cbReq.Nickname.Value
groupMemberInfo := table.GroupMemberModel{}
groupMemberInfo := relation2.GroupMemberModel{}
groupMemberInfo.UserID = req.UserID
groupMemberInfo.GroupID = req.GroupID
if nickName == "" {
@@ -1299,7 +1299,7 @@ func (s *groupServer) SetGroupMemberInfo(ctx context.Context, req *pbGroup.SetGr
if err := CallbackBeforeSetGroupMemberInfo(ctx, req); err != nil {
return nil, err
}
groupMember := table.GroupMemberModel{
groupMember := relation2.GroupMemberModel{
GroupID: req.GroupID,
UserID: req.UserID,
}