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 的下划线格式转换为驼峰格式
|
* 将 Debezium outbox 的下划线格式转换为驼峰格式
|
||||||
*/
|
*/
|
||||||
private normalizeServiceEvent(data: any): Omit<ServiceEvent, 'sequenceNum' | 'sourceTopic'> {
|
private normalizeServiceEvent(data: any): Omit<ServiceEvent, 'sequenceNum' | 'sourceTopic'> {
|
||||||
// 如果已经是驼峰格式,直接返回
|
// 如果已经是驼峰格式(mining-wallet-service 直接发布的事件)
|
||||||
|
// 注意:mining-wallet-service 使用 eventId 而不是 id
|
||||||
if (data.eventType && data.aggregateType) {
|
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 格式转换
|
// Debezium outbox 格式转换
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue