Files
wwjcloud-nest-v1/.trae/documents/严格对齐 Java 权威的迁移与校验计划.md

54 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 对齐原则
- 以 Java 项目为唯一权威:路由、参数、响应结构、状态码、事务、副作用严格一致
- 数据一致TypeORM 实体字段与现有数据库一致,不修改表名/字段/索引;禁用 schema 同步
- 禁止占位与过度设计:每次改动先查阅 Java 对应文件并逐行迁移
## 执行方法
- 逐接口迁移按域分组adminapi/api为每个接口建立 Java→Nest 对照清单Controller→Service→DTO→Entity
- DTO/VO 严格对齐:以 Java 方法签名与校验逻辑为准,生成/修正 NestJS DTO/VO响应包装与国际化保持一致
- 事务与副作用:迁移 Java 事务边界、队列事件、副作用写入(日志、统计、缓存失效),保证一致性
- TypeORM 使用规范:统一 `findOne({where})`、非空分支更新、QueryBuilder 替代不支持用法;实体映射严格按库字段
## 模块迁移顺序
1. sys配置/菜单/区域/附件/协议/打印/调度):优先修复公共基础契约
2. site站点/分组/账户日志/用户):统一 `site_id` 上下文
3. member会员/等级/标签/地址/账户日志/签到/提现):对齐状态机与事务
4. pay支付/退款/转账/渠道):通知路由与签名校验一致
5. upload上传/存储):各模型与通道配置
6. wechat/weapp公众号/小程序):回调入口、登录/注册/JSSDK、扫码登录
7. diy/diy_form页面/表单配置与数据
8. addon插件安装/升级/备份/日志
9. notice/sms模板/记录与驱动加载
10. channel多端渠道配置与场景域名
11. auth/verify登录/验证码/核销
## 数据一致性策略
- 实体与库字段对齐:字段名、类型、索引一致;不新增/修改库结构
- 禁用 `synchronize`;迁移仅在代码层面实现,不触碰数据库结构
- 所有 JSON 配置按 Java 的序列化/反序列化格式处理(大小写/驼峰与存储保持一致)
## 工具归一与清理
- 公共工具统一在 boot 层 `vendor/utils`core 层仅保留域专用(如 `request-utils``json-module-loader`
- 扫描并替换 core/common/utils 的公共工具引用为 `@wwjBoot`,完成后删除重复文件
- 严格避免双份实现与临时占位,逐文件对齐 Java 行为
## 契约与测试
- 路由契约测试:基于前端路由与 Java 控制器,逐端点比对请求/响应结构与状态码
- 事务与副作用测试:覆盖写入、事件、缓存失效与日志记录
- e2e 测试:登录、站点、会员、支付、上传、微信路径全链路;构建 k6 冒烟脚本
- 错误码与异常消息:与 Java 一致(包括 message 与 code
## 构建与 Docker 自测
- 编译零错误后,构建 Docker 镜像与 composeAPI+MySQL+Redis前端 `.env.production` 指向后端服务地址
- 冒烟:关键端点 200/401/400/500 行为与 Java 一致;记录性能与错误日志
## 里程碑与时间表
- D1工具替换与目录清理完成 100% 引用替换与重复文件删除);修复 sys/site 的契约与编译
- D2member/pay/upload/wechat/weapp 的接口与事务对齐;完成编译零错误与 Docker 冒烟
- D3diy/addon/notice/channel/auth/verify 的契约测试与边缘场景修复;输出最终差异报告与自测结果
## 交付物
- 对照清单Java→Nest与迁移日志
- 编译通过的代码、契约与 e2e 测试报告
- Docker 自测结果与前端无改动运行说明
- 重复与废弃文件的清理清单(实际删除记录)