headerNotice.ts 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. import httpApi from "@/api/indexApi";
  2. /** 通知列表请求参数(与原有通知页面逻辑一致) */
  3. export interface GetNoticeListParams {
  4. pageNum: number;
  5. pageSize: number;
  6. receiverId: string;
  7. noticeType: number;
  8. }
  9. /** 通知列表项 */
  10. export interface NoticeRecord {
  11. id: number;
  12. title?: string;
  13. createdTime?: string;
  14. context?: string;
  15. content?: string;
  16. isRead?: boolean;
  17. }
  18. /** 通知列表响应 */
  19. export interface GetNoticeListRes {
  20. records?: NoticeRecord[];
  21. list?: NoticeRecord[];
  22. total?: number;
  23. }
  24. /**
  25. * 头部通知弹窗 - 系统通知列表(独立接口,不修改原有 homeEntry)
  26. * GET /alienStorePlatform/notice/getNoticeList
  27. */
  28. export const getNoticeListForHeader = (params: GetNoticeListParams) => {
  29. return httpApi.get<GetNoticeListRes>(`/alienStorePlatform/notice/getNoticeList`, params, {
  30. loading: false
  31. });
  32. };
  33. /**
  34. * 标记通知已读(alien-store 服务)
  35. * GET /alienStore/notice/readNoticeById?id=xxx
  36. */
  37. export const readNoticeById = (params: { id: number | string }) => {
  38. return httpApi.get<unknown>(`/alienStore/notice/readNoticeById`, params, {
  39. loading: false
  40. });
  41. };
  42. /**
  43. * 按类型查询未读通知数量
  44. * GET /alienStore/notice/countUnreadByType?noticeType=0|1|2&receiverId=xxx(alien-store)
  45. * noticeType: 0-与我相关 1-系统通知 2-订单提醒
  46. */
  47. export const getCountUnreadByType = (params: { noticeType: number; receiverId: string }) => {
  48. return httpApi.get<number>(`/alienStore/notice/countUnreadByType`, params, {
  49. loading: false
  50. });
  51. };
  52. /** 未关注人消息单条(getNoFriendMessage 返回 data 项) */
  53. export interface NoFriendMessageItem {
  54. id?: number;
  55. senderId?: string | null;
  56. senderName?: string | null;
  57. receiverId?: string | null;
  58. content?: string;
  59. type?: string;
  60. isRead?: number;
  61. createdTime?: string;
  62. userName?: string | null;
  63. userImage?: string | null;
  64. storeImg?: string | null;
  65. senderImg?: string | null;
  66. notReadCount?: number;
  67. [key: string]: any;
  68. }
  69. /**
  70. * 未关注人消息列表
  71. * GET /message/getNoFriendMessage?receiverId=xxx(alien-store)
  72. */
  73. export const getNoFriendMessage = (params: { receiverId: string }) => {
  74. return httpApi.get<NoFriendMessageItem | NoFriendMessageItem[]>(`/alienStore/message/getNoFriendMessage`, params, {
  75. loading: false
  76. });
  77. };
  78. /**
  79. * 消息列表(返回结构与 getNoFriendMessage 一致)
  80. * GET /message/getMessageList?receiverId=xxx&friendType=0
  81. */
  82. export const getMessageList = (params: { receiverId: string; friendType?: number }) => {
  83. const { receiverId, friendType = 0 } = params;
  84. return httpApi.get<NoFriendMessageItem | NoFriendMessageItem[]>(
  85. `/alienStore/message/getMessageList`,
  86. {
  87. receiverId,
  88. friendType
  89. },
  90. {
  91. loading: false
  92. }
  93. );
  94. };