feat: densify sms records and improve uplink matching

This commit is contained in:
hectorzhao
2026-08-27 10:15:08 +08:00
parent 898471423f
commit a280b4bb22
25 changed files with 859 additions and 154 deletions
@@ -118,6 +118,7 @@ export interface GatewayUplinkEventDto {
eventId?: string;
traceId?: string;
messageId?: string;
gatewayMessageId?: string;
channelId: string;
sequenceId?: number;
phoneNumber: string;
@@ -3749,6 +3749,7 @@ describe('SendChainService', () => {
});
await service.handleUplink({
messageId: 'MSG-1',
gatewayMessageId: '8412634832294102675',
channelId: 'channel-1',
sequenceId: 8,
phoneNumber: '13800000001',
@@ -3761,7 +3762,7 @@ describe('SendChainService', () => {
data: expect.objectContaining({ receiptStatus: 'delivered', rawStatus: 'DELIVRD', messageRecordId: 'record-1' }),
});
expect(prisma.smsUplinkMessage.create).toHaveBeenCalledWith({
data: expect.objectContaining({ tenantId: 'tenant-1', channelId: 'channel-1', content: 'TD' }),
data: expect.objectContaining({ tenantId: 'tenant-1', channelId: 'channel-1', gatewayMessageId: '8412634832294102675', content: 'TD' }),
});
});
@@ -45,6 +45,7 @@ export class SendDownstreamDeliveryService {
messageRecordId: match.messageRecordId,
channelId: data.channelId,
messageId: data.messageId,
gatewayMessageId: data.gatewayMessageId,
sequenceId: data.sequenceId,
phoneNumber: data.phoneNumber,
destId: data.destId,