playersendmsglogic.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package logic
  2. import (
  3. "context"
  4. "encoding/json"
  5. "time"
  6. "ylink/core/cmd/rpc/internal/svc"
  7. "ylink/core/cmd/rpc/pb"
  8. "github.com/zeromicro/go-zero/core/logx"
  9. )
  10. type PlayerSendMsgLogic struct {
  11. ctx context.Context
  12. svcCtx *svc.ServiceContext
  13. logx.Logger
  14. }
  15. type message struct {
  16. CreateTime string `json:"create_time"`
  17. Content string `json:"content"`
  18. Pic string `json:"pic"`
  19. ReceiverId string `json:"receiver_id"`
  20. SenderId string `json:"sender_id"`
  21. }
  22. func NewPlayerSendMsgLogic(ctx context.Context, svcCtx *svc.ServiceContext) *PlayerSendMsgLogic {
  23. return &PlayerSendMsgLogic{
  24. ctx: ctx,
  25. svcCtx: svcCtx,
  26. Logger: logx.WithContext(ctx),
  27. }
  28. }
  29. func (l *PlayerSendMsgLogic) PlayerSendMsg(in *pb.PlayerSendMsgReq) (*pb.PlayerSendMsgResp, error) {
  30. // todo 投递到对应客服的收件箱
  31. // todo 写入db
  32. msg, _ := json.Marshal(message{
  33. CreateTime: time.Now().Format("2006-01-02 15:04:05"),
  34. Content: in.Content,
  35. Pic: in.Pic,
  36. ReceiverId: "",
  37. SenderId: in.PlayerId,
  38. })
  39. //if err := l.svcCtx.ChatMsgProducerClient.Push(string(msg)); err != nil {
  40. // return nil, err
  41. //}
  42. pid, offset, err := l.svcCtx.ChatMsgProducer.SendMessage(string(msg), in.PlayerId)
  43. if err != nil {
  44. return nil, err
  45. }
  46. l.Logger.Infof("pid: %d", pid)
  47. l.Logger.Infof("offset: %d", offset)
  48. return &pb.PlayerSendMsgResp{}, nil
  49. }