4.5 KiB
4.5 KiB
修复总结
已修复的错误 (27个)
1. Prisma Schema 缺失表定义
✅ 已修复: 在 prisma/schema.prisma 中添加了:
DeadLetterEvent模型 - 用于死信队列事件存储SmsCode模型 - 用于短信验证码存储
2. DTO 命名不一致
✅ 已修复:
SubmitKycDto-> 添加了SubmitKYCDto别名导出UserProfileDto-> 添加了UserProfileResponseDto别名导出DeviceDto-> 添加了DeviceResponseDto别名导出
3. 领域模块导入路径错误
✅ 已修复: wallet-generator.service.ts
- 将
@domain/...修改为@/domain/... - 将
@shared/...修改为@/shared/...
4. ethers.js 类型错误
✅ 已修复: wallet-generator.service.ts:172
- 将
Uint8Array私钥转换为十六进制字符串格式 - 添加
0x前缀以符合 ethers.js 要求
5. Kafka 事件发布接口缺失
✅ 已修复: event-publisher.service.ts
- 添加了
DomainEventMessage接口定义(包含 aggregateType 字段) - 添加了
IDENTITY_TOPICS常量导出 - 为
publish方法添加了重载,支持两种调用方式:publish(event: DomainEvent)- 发布领域事件publish(topic: string, message: DomainEventMessage)- 直接发布到指定主题(用于重试)
6. @nestjs/schedule 依赖移除
✅ 已修复: event-retry.service.ts
- 移除了
@Cron装饰器和CronExpression导入 - 保留了重试逻辑,可通过 API 手动触发
7. Kafka 模块重复导出
✅ 已修复: event-publisher.service.ts
- 删除了文件末尾错误的
KafkaModule类定义 - 保留了
kafka.module.ts中的正确定义
8. package.json 缺失依赖
✅ 已修复: package.json
- 添加了
@nestjs/passport: ^10.0.0 - 添加了
@nestjs/schedule: ^4.0.0 - 添加了
passport-jwt: ^4.0.1 - 添加了
@types/passport-jwt: ^4.0.0
接下来需要做的步骤
1. 安装依赖
npm install
2. 生成 Prisma Client
npm run prisma:generate
3. 运行数据库迁移(如果需要)
npm run prisma:migrate
4. 启动开发服务器
npm run start:dev
注意事项
-
数据库迁移: 由于修改了 Prisma Schema,添加了两个新表,你需要:
- 如果是开发环境:运行
npm run prisma:migrate创建并应用迁移 - 如果是生产环境:运行
npm run prisma:migrate:prod应用迁移
- 如果是开发环境:运行
-
环境变量: 确保
.env文件中配置了所有必需的环境变量:DATABASE_URL=postgresql://... JWT_SECRET=... JWT_ACCESS_EXPIRES_IN=2h JWT_REFRESH_EXPIRES_IN=30d REDIS_HOST=localhost REDIS_PORT=6379 KAFKA_BROKERS=localhost:9092 WALLET_ENCRYPTION_SALT=... -
定时任务:
EventRetryService的定时任务功能已移除。如果需要自动重试失败事件,你可以:- 使用外部调度器(如 cron、Kubernetes CronJob)调用相应的 API
- 或者重新添加
@Cron装饰器(需要在 AppModule 中导入 ScheduleModule)
-
passport-jwt: 如果你的项目使用了 JWT 认证策略,确保
JwtStrategy正确配置在SharedModule或AuthModule中。
文件修改清单
- ✏️ prisma/schema.prisma
- ✏️ src/api/dto/request/submit-kyc.dto.ts
- ✏️ src/api/dto/response/user-profile.dto.ts
- ✏️ src/api/dto/response/device.dto.ts
- ✏️ src/infrastructure/external/blockchain/wallet-generator.service.ts
- ✏️ src/infrastructure/kafka/event-publisher.service.ts
- ✏️ src/infrastructure/kafka/event-retry.service.ts
- ✏️ package.json
验证修复
运行以下命令验证所有错误已修复:
# 编译检查
npm run build
# 运行测试
npm run test
# 启动开发服务器
npm run start:dev
如果编译成功且没有错误,说明所有问题都已解决!