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:
parent
0a199ae3b5
commit
86c8ede198
|
|
@ -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 格式转换
|
||||
|
|
|
|||
Loading…
Reference in New Issue