chat-management-http.service.ts 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import { Injectable } from '@nestjs/common'
  2. import { ServiceResponse } from '@/response/response.interface'
  3. import { HttpClientService } from '@/shared/http-client/http-client.service'
  4. @Injectable()
  5. export class ChatManagementHttpService {
  6. private readonly baseUrl = 'http://192.168.206.189:8083/api'
  7. constructor(private readonly httpClientService: HttpClientService) {}
  8. private async makeRequest<T>(
  9. endpoint: string,
  10. params?: Record<string, any>
  11. ): Promise<ServiceResponse<T>> {
  12. const url = `${this.baseUrl}/${endpoint}`
  13. return this.httpClientService.get<T>(url, params)
  14. }
  15. async makeRequestPost<T>(
  16. endpoint: string,
  17. params?: Record<string, any>
  18. ): Promise<ServiceResponse<T>> {
  19. const url = `${this.baseUrl}/${endpoint}`
  20. return this.httpClientService.post<T>(url, params)
  21. }
  22. // 获取对话总览列表
  23. async getStaffSessionSummary(
  24. staff_id?: string,
  25. status?: string,
  26. page?: number,
  27. size?: number
  28. ): Promise<ServiceResponse<StaffSummary[]>> {
  29. return this.makeRequest<StaffSummary[]>('getStaffSessionSummary', {
  30. staff_id,
  31. status,
  32. page,
  33. size
  34. })
  35. }
  36. // 获取客服人员列表
  37. async getStaffList(
  38. page?: number,
  39. size?: number
  40. ): Promise<ServiceResponse<ChatStaff[]>> {
  41. return this.makeRequest<ChatStaff[]>('getStaffList', {
  42. page,
  43. size
  44. })
  45. }
  46. // 获取客服对话列表
  47. async getStaffSessionList(
  48. staff_id: string,
  49. page_id?: number,
  50. page_size?: number
  51. ): Promise<ServiceResponse<StaffSession[]>> {
  52. return this.makeRequest<StaffSession[]>('getStaffSessionList', {
  53. staff_id,
  54. page_id,
  55. page_size
  56. })
  57. }
  58. // 获取客服微信对话详情列表
  59. async getConversationList(
  60. user_id: string,
  61. staff_id: string,
  62. status?: number,
  63. page_id?: number
  64. ): Promise<ServiceResponse<ChatConversation[]>> {
  65. return this.makeRequest<ChatConversation[]>('getConversationList', {
  66. user_id,
  67. staff_id,
  68. status,
  69. page_id
  70. })
  71. }
  72. }