根因:planting-service 发送的 contract.signed 消息为嵌套结构
{ eventName: 'contract.signed', data: { orderNo, userId, ... } }
但 reporting-service handleContractSigned 按扁平结构解析
message.userId → undefined → BigInt(undefined) → TypeError
导致 ~200 次/10分钟持续报错。
修复:
- 消息类型改为匹配实际嵌套格式 { eventName, data: { ... } }
- 解构 message.data 后再访问各字段
- 添加 userId 防御性检查,避免再次 BigInt 崩溃
- 与 referral-service ContractSigningHandler 消息结构保持一致
影响范围:仅 reporting-service 活动记录,不影响核心业务流程
(referral-service / reward-service 已正确处理嵌套格式)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| docs | ||
| prisma | ||
| src | ||
| test | ||
| .dockerignore | ||
| .env.development | ||
| .env.example | ||
| .gitignore | ||
| DEVELOPMENT_GUIDE.md | ||
| Dockerfile | ||
| Dockerfile.test | ||
| Makefile | ||
| deploy.sh | ||
| docker-compose.test.yml | ||
| nest-cli.json | ||
| package-lock.json | ||
| package.json | ||
| tsconfig.build.json | ||
| tsconfig.json | ||