Files
lislgosms/api/src/operations/operations.service.ts
T

159 lines
6.1 KiB
TypeScript

import { Injectable } from '@nestjs/common';
import { PrismaService } from '../prisma/prisma.service';
import type { DownstreamDeliveryDashboardQuery, DownstreamDeliveryQuery, DownstreamRecoveryStatusQuery, GatewaySubmitDeadLetterQuery, MessageQuery, MessageSegmentAuditQuery, OperationLogQuery, ReceiptAnomalyQuery, SignatureQualityQuery, TraceQuery } from './operations.contracts';
import { OperationsMessageQueries } from './queries/messages.queries';
import { OperationsUplinkQueries } from './queries/uplink.queries';
import { OperationsDashboardQueries } from './queries/dashboard.queries';
import { OperationsQualityQueries } from './queries/quality.queries';
import { OperationsLogQueries } from './queries/logs.queries';
import { OperationsDownstreamQueries } from './queries/downstream.queries';
import { OperationsTraceQueries } from './queries/trace.queries';
export * from './operations.contracts';
@Injectable()
export class OperationsService {
private readonly messagesQueries: OperationsMessageQueries;
private readonly uplinkQueries: OperationsUplinkQueries;
private readonly dashboardQueries: OperationsDashboardQueries;
private readonly qualityQueries: OperationsQualityQueries;
private readonly logsQueries: OperationsLogQueries;
private readonly downstreamQueries: OperationsDownstreamQueries;
private readonly traceQueries: OperationsTraceQueries;
constructor(prisma: PrismaService) {
this.messagesQueries = new OperationsMessageQueries(prisma);
this.uplinkQueries = new OperationsUplinkQueries(prisma);
this.dashboardQueries = new OperationsDashboardQueries(prisma);
this.qualityQueries = new OperationsQualityQueries(prisma);
this.logsQueries = new OperationsLogQueries(prisma);
this.downstreamQueries = new OperationsDownstreamQueries(prisma);
this.traceQueries = new OperationsTraceQueries(prisma);
}
// Stable controller facade: routes and public method signatures remain unchanged.
listBatchTasks(query: { tenantId?: string; status?: string }) {
return this.messagesQueries.listBatchTasks(query);
}
async listClientBatchTasks(query: { tenantId?: string; status?: string }) {
return this.messagesQueries.listClientBatchTasks(query);
}
listMessages(query: MessageQuery) {
return this.messagesQueries.listMessages(query);
}
async listMessagesPage(query: MessageQuery) {
return this.messagesQueries.listMessagesPage(query);
}
async exportMessages(query: MessageQuery) {
return this.messagesQueries.exportMessages(query);
}
async listClientMessages(query: MessageQuery) {
return this.messagesQueries.listClientMessages(query);
}
async listClientMessagesPage(query: MessageQuery) {
return this.messagesQueries.listClientMessagesPage(query);
}
listUplinkMessages(query: { tenantId?: string; channelId?: string; applicationId?: string; phoneNumber?: string; keyword?: string; startTime?: string; endTime?: string; page?: number; pageSize?: number }) {
return this.uplinkQueries.listUplinkMessages(query);
}
async listClientUplinkMessages(query: { tenantId?: string; applicationId?: string; phoneNumber?: string; keyword?: string; startTime?: string; endTime?: string; page?: number; pageSize?: number }) {
return this.uplinkQueries.listClientUplinkMessages(query);
}
async listUplinkMessagesPage(query: { tenantId?: string; channelId?: string; applicationId?: string; phoneNumber?: string; keyword?: string; startTime?: string; endTime?: string; page?: number; pageSize?: number }, clientView = false) {
return this.uplinkQueries.listUplinkMessagesPage(query, clientView);
}
async monitor(query: { tenantId?: string; channelId?: string }) {
return this.uplinkQueries.monitor(query);
}
async dashboard(query: { tenantId?: string }) {
return this.dashboardQueries.dashboard(query);
}
pendingAudits(tenantId?: string) {
return this.dashboardQueries.pendingAudits(tenantId);
}
async clientDashboard(query: { tenantId?: string }) {
return this.dashboardQueries.clientDashboard(query);
}
async statistics(query: { tenantId?: string; groupBy?: string }) {
return this.qualityQueries.statistics(query);
}
async sendQuality(date?: string) {
return this.qualityQueries.sendQuality(date);
}
async signatureQuality(query: SignatureQualityQuery) {
return this.qualityQueries.signatureQuality(query);
}
async auditLogs(query: { tenantId?: string; userId?: string; page?: number; pageSize?: number }) {
return this.logsQueries.auditLogs(query);
}
async systemLogs(query: OperationLogQuery) {
return this.logsQueries.systemLogs(query);
}
async exportSystemLogs(query: OperationLogQuery, clientUserId?: string) {
return this.logsQueries.exportSystemLogs(query, clientUserId);
}
async listGatewaySubmitDeadLetters(query: GatewaySubmitDeadLetterQuery) {
return this.downstreamQueries.listGatewaySubmitDeadLetters(query);
}
async listReceiptAnomalies(query: ReceiptAnomalyQuery) {
return this.downstreamQueries.listReceiptAnomalies(query);
}
async listDownstreamDeliveries(query: DownstreamDeliveryQuery) {
return this.downstreamQueries.listDownstreamDeliveries(query);
}
async downstreamDeliveryDashboard(query: DownstreamDeliveryDashboardQuery) {
return this.downstreamQueries.downstreamDeliveryDashboard(query);
}
async listDownstreamRecoveryStatuses(query: DownstreamRecoveryStatusQuery) {
return this.downstreamQueries.listDownstreamRecoveryStatuses(query);
}
async listMessageSegmentAudits(query: MessageSegmentAuditQuery) {
return this.downstreamQueries.listMessageSegmentAudits(query);
}
async getDownstreamRecoveryStatus(id: string) {
return this.downstreamQueries.getDownstreamRecoveryStatus(id);
}
async exportDownstreamRecoveryStatuses(query: DownstreamRecoveryStatusQuery) {
return this.downstreamQueries.exportDownstreamRecoveryStatuses(query);
}
auditSummary(query: { tenantId?: string }) {
return this.traceQueries.auditSummary(query);
}
async trace(query: TraceQuery) {
return this.traceQueries.trace(query);
}
async reconciliation(query: { tenantId?: string; taskId?: string }) {
return this.traceQueries.reconciliation(query);
}
}