| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- package msgTransfer
- import (
- "context"
- "fmt"
- "slowwild/internal/constants"
- "slowwild/internal/svc"
- msgChat "git.banshen.xyz/huangguangrong/slow_wild_queue/types"
- "github.com/zeromicro/go-zero/core/logx"
- )
- type BaseMsgTransfer struct {
- svcCtx *svc.ServiceContext
- logx.Logger
- }
- func NewBaseMsgTransfer(svc *svc.ServiceContext) *BaseMsgTransfer {
- return &BaseMsgTransfer{
- svcCtx: svc,
- Logger: logx.WithContext(context.Background()),
- }
- }
- func (b *BaseMsgTransfer) Transfer(ctx context.Context, data *msgChat.Push) error {
- var err error
- switch data.ChatType {
- case msgChat.SingleChatType:
- err = b.single(ctx, data)
- case msgChat.GroupChatType:
- err = b.group(ctx, data)
- }
- return err
- }
- func (b *BaseMsgTransfer) single(ctx context.Context, data *msgChat.Push) error {
- // 重新投送回消息队列,消费者接到之后直接推送到客户端
- fmt.Println("single 推送消息队列")
- b.svcCtx.MsgPushToClientTransfer.Push(&msgChat.MessagePushData{
- FrameType: msgChat.FrameData,
- Id: data.MsgID,
- Method: "push",
- FormID: constants.SystemUserId,
- UserID: data.RecvID,
- Data: data,
- })
- return nil
- }
- func (b *BaseMsgTransfer) group(ctx context.Context, data *msgChat.Push) error {
- // 查询群用户
- // socialLogic := paopaosociallogic.NewGetGroupMembersLogic(ctx, b.svcCtx)
- // members, err := socialLogic.GetGroupMembers(&paopaosocial.GetGroupMembersReq{
- // GroupId: data.RecvID,
- // UserId: data.SendID,
- // })
- // if err != nil {
- // return err
- // }
- // data.RecvIDs = make([]int64, 0, members.Count)
- // for _, item := range members.List {
- // if item.UserId == data.SendID {
- // continue
- // }
- // data.RecvIDs = append(data.RecvIDs, item.UserId)
- // }
- // // 重新投送到消息队列,消费者接收到消息之后立即推送出去
- return nil
- }
|