messagegetlastlogic.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package logic
  2. import (
  3. "app.yhyue.com/moapp/MessageCenter/api/internal/svc"
  4. "app.yhyue.com/moapp/MessageCenter/api/internal/types"
  5. "app.yhyue.com/moapp/MessageCenter/rpc/messageclient"
  6. "context"
  7. "github.com/zeromicro/go-zero/core/logx"
  8. )
  9. type MessageGetLastLogic struct {
  10. logx.Logger
  11. ctx context.Context
  12. svcCtx *svc.ServiceContext
  13. }
  14. func NewMessageGetLastLogic(ctx context.Context, svcCtx *svc.ServiceContext) MessageGetLastLogic {
  15. return MessageGetLastLogic{
  16. Logger: logx.WithContext(ctx),
  17. ctx: ctx,
  18. svcCtx: svcCtx,
  19. }
  20. }
  21. func (l *MessageGetLastLogic) MessageGetLast(req types.MessageGetLastReq) (*types.MessageGetLastRes, error) {
  22. result := &types.MessageGetLastRes{}
  23. lsi := l.svcCtx.MessageCenter
  24. resp, err := lsi.GetLastMessage(l.ctx, &messageclient.GetLastMessageReq{
  25. MsgType: req.MsgType,
  26. Appid: req.AppId,
  27. UserId: req.UserId,
  28. IsRead: req.IsRead,
  29. })
  30. if err != nil {
  31. return nil, err
  32. }
  33. result.Code = resp.Code
  34. result.Message = resp.Message
  35. if resp.Data != nil {
  36. result.Data = map[string]interface{}{
  37. "id": resp.Data.Id,
  38. "appid": resp.Data.Appid,
  39. "receive_name": resp.Data.ReceiveName,
  40. "send_userid": resp.Data.SendUserId,
  41. "send_name": resp.Data.SendName,
  42. "createtime": resp.Data.Createtime,
  43. "title": resp.Data.Title,
  44. "msg_type": resp.Data.MsgType,
  45. "link": resp.Data.Link,
  46. "cite_id": resp.Data.CiteId,
  47. "content": resp.Data.Content,
  48. "isRead": resp.Data.IsRead,
  49. "msgLogId": resp.Data.MsgLogId,
  50. }
  51. }
  52. return result, nil
  53. }