From 86c8ede198dd8e59ae37b25f4e31b7ccbe4e488e Mon Sep 17 00:00:00 2001 From: hailin Date: Tue, 20 Jan 2026 22:41:55 -0800 Subject: [PATCH] =?UTF-8?q?fix(mining-admin):=20=E4=BF=AE=E5=A4=8D=20CDC?= =?UTF-8?q?=20=E4=BA=8B=E4=BB=B6=20eventId=20=E8=A7=A3=E6=9E=90=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit mining-wallet-service 发布的事件使用 eventId 字段而不是 id, 导致 normalizeServiceEvent 返回的对象没有 id 属性。 修复:在驼峰格式事件处理中,优先使用 data.id,回退到 data.eventId Co-Authored-By: Claude Opus 4.5 --- .../src/infrastructure/kafka/cdc-consumer.service.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/backend/services/mining-admin-service/src/infrastructure/kafka/cdc-consumer.service.ts b/backend/services/mining-admin-service/src/infrastructure/kafka/cdc-consumer.service.ts index 7611818f..b4d792d4 100644 --- a/backend/services/mining-admin-service/src/infrastructure/kafka/cdc-consumer.service.ts +++ b/backend/services/mining-admin-service/src/infrastructure/kafka/cdc-consumer.service.ts @@ -317,9 +317,17 @@ export class CdcConsumerService implements OnModuleInit, OnModuleDestroy { * 将 Debezium outbox 的下划线格式转换为驼峰格式 */ private normalizeServiceEvent(data: any): Omit { - // 如果已经是驼峰格式,直接返回 + // 如果已经是驼峰格式(mining-wallet-service 直接发布的事件) + // 注意:mining-wallet-service 使用 eventId 而不是 id if (data.eventType && data.aggregateType) { - return data; + return { + id: data.id ?? data.eventId, + eventType: data.eventType, + aggregateType: data.aggregateType, + aggregateId: data.aggregateId, + payload: data.payload, + createdAt: data.createdAt, + }; } // Debezium outbox 格式转换