|
@@ -0,0 +1,110 @@
|
|
|
|
+import { Injectable } from '@nestjs/common'
|
|
|
|
+
|
|
|
|
+import { IChatManagementService } from '@/interface/chat-management.interface'
|
|
|
|
+import { ServiceResponse } from '@/response/response.interface'
|
|
|
|
+import { BusinessCode, HttpStatusCode } from '@/response/status-code.enum'
|
|
|
|
+
|
|
|
|
+import { ChatManagementHttpService } from './chat-management-http.service'
|
|
|
|
+
|
|
|
|
+@Injectable()
|
|
|
|
+export class ChatManagementService implements IChatManagementService {
|
|
|
|
+ constructor(private readonly httpService: ChatManagementHttpService) {}
|
|
|
|
+ // 获取对话总览列表
|
|
|
|
+ async getStaffSessionSummary(
|
|
|
|
+ staffId?: string,
|
|
|
|
+ status?: string,
|
|
|
|
+ page?: number,
|
|
|
|
+ size?: number
|
|
|
|
+ ): Promise<ServiceResponse<StaffSummary[]>> {
|
|
|
|
+ const { code, data, msg } = await this.httpService.getStaffSessionSummary(
|
|
|
|
+ staffId,
|
|
|
|
+ status,
|
|
|
|
+ page,
|
|
|
|
+ size
|
|
|
|
+ )
|
|
|
|
+ if (code !== HttpStatusCode.OK) {
|
|
|
|
+ return {
|
|
|
|
+ code: BusinessCode.BAD_REQUEST,
|
|
|
|
+ msg: msg || '获取列表失败',
|
|
|
|
+ data: null
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return {
|
|
|
|
+ code: BusinessCode.SUCCESS,
|
|
|
|
+ msg: '获取列表成功',
|
|
|
|
+ data: data
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 获取客服列表
|
|
|
|
+ async getStaffList(
|
|
|
|
+ page?: number,
|
|
|
|
+ size?: number
|
|
|
|
+ ): Promise<ServiceResponse<ChatStaff[]>> {
|
|
|
|
+ const { code, data, msg } = await this.httpService.getStaffList(page, size)
|
|
|
|
+ if (code !== HttpStatusCode.OK) {
|
|
|
|
+ return {
|
|
|
|
+ code: BusinessCode.BAD_REQUEST,
|
|
|
|
+ msg: msg || '获取客服列表失败',
|
|
|
|
+ data: null
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return {
|
|
|
|
+ code: BusinessCode.SUCCESS,
|
|
|
|
+ msg: '获取客服列表成功',
|
|
|
|
+ data: data
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 获取微信对话列表
|
|
|
|
+ async getStaffSessionList(
|
|
|
|
+ staffId: string,
|
|
|
|
+ page?: number,
|
|
|
|
+ pageSize?: number
|
|
|
|
+ ): Promise<ServiceResponse<StaffSession[]>> {
|
|
|
|
+ const { code, data, msg } = await this.httpService.getStaffSessionList(
|
|
|
|
+ staffId,
|
|
|
|
+ page,
|
|
|
|
+ pageSize
|
|
|
|
+ )
|
|
|
|
+ if (code !== HttpStatusCode.OK) {
|
|
|
|
+ return {
|
|
|
|
+ code: BusinessCode.BAD_REQUEST,
|
|
|
|
+ msg: msg || '获取微信对话列表失败',
|
|
|
|
+ data: null
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return {
|
|
|
|
+ code: BusinessCode.SUCCESS,
|
|
|
|
+ msg: '获取微信对话列表成功',
|
|
|
|
+ data: data
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 获取微信对话详情
|
|
|
|
+ async getConversationList(
|
|
|
|
+ customerId: string,
|
|
|
|
+ staffId: string,
|
|
|
|
+ status?: number,
|
|
|
|
+ page?: number
|
|
|
|
+ ): Promise<ServiceResponse<ChatConversation[]>> {
|
|
|
|
+ const { code, data, msg } = await this.httpService.getConversationList(
|
|
|
|
+ customerId,
|
|
|
|
+ staffId,
|
|
|
|
+ status,
|
|
|
|
+ page
|
|
|
|
+ )
|
|
|
|
+ if (code !== HttpStatusCode.OK) {
|
|
|
|
+ return {
|
|
|
|
+ code: BusinessCode.BAD_REQUEST,
|
|
|
|
+ msg: msg || '获取微信对话详情失败',
|
|
|
|
+ data: null
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return {
|
|
|
|
+ code: BusinessCode.SUCCESS,
|
|
|
|
+ msg: '获取微信对话详情成功',
|
|
|
|
+ data: data
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|