| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- package msgTransfer
- import (
- "context"
- "fmt"
- "github.com/zeromicro/go-zero/core/logx"
- "paopaoimrpc/apps/client/paopaosocial"
- "paopaoimtask/internal/svc"
- "paopaoimtask/pkg/constants"
- "paopaoimws/websocket"
- "paopaoimws/ws"
- )
- 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 *ws.Push) error {
- var err error
- switch data.ChatType {
- case constants.SingleChatType:
- err = b.single(ctx, data)
- case constants.GroupChatType:
- err = b.group(ctx, data)
- }
- return err
- }
- func (b *baseMsgTransfer) single(ctx context.Context, data *ws.Push) error {
- return b.svcCtx.WsClient.Send(websocket.Message{
- FrameType: websocket.FrameData,
- Method: "push",
- FormID: constants.SYSTEM_ROOT_UID,
- Data: data,
- Id: data.MsgID,
- })
- }
- func (b *baseMsgTransfer) group(ctx context.Context, data *ws.Push) error {
- // 查询群用户
- fmt.Println("接收者id: ", data.RecvID)
- fmt.Println("发送者id: ", data.SendID)
- members, err := b.svcCtx.PaoPaoSocial.GetGroupMembers(ctx, &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 b.svcCtx.WsClient.Send(websocket.Message{
- FrameType: websocket.FrameData,
- Method: "push",
- FormID: constants.SYSTEM_ROOT_UID,
- Data: data,
- Id: data.MsgID,
- })
- }
|