fix(mining-admin): 修复 CDC 事件 eventId 解析问题

mining-wallet-service 发布的事件使用 eventId 字段而不是 id,
导致 normalizeServiceEvent 返回的对象没有 id 属性。

修复:在驼峰格式事件处理中,优先使用 data.id,回退到 data.eventId

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
hailin 2026-01-20 22:41:55 -08:00
parent 0a199ae3b5
commit 86c8ede198
1 changed files with 10 additions and 2 deletions

View File

@ -317,9 +317,17 @@ export class CdcConsumerService implements OnModuleInit, OnModuleDestroy {
* Debezium outbox 线
*/
private normalizeServiceEvent(data: any): Omit<ServiceEvent, 'sequenceNum' | 'sourceTopic'> {
// 如果已经是驼峰格式,直接返回
// 如果已经是驼峰格式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 格式转换