Files
wwjcloud-nest-v1/.trae/documents/批次二修复计划:编译零错误与Java接口全面对齐.md

53 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 实体字段与数据库一致;不改表结构/索引
- 完成工具归一替换并删除重复文件,目录保持干净
## 待修复清单(按模块)
### DIY 模块
- 枚举迁移:从 Java 复制 `TemplateEnum``PagesEnum``libs/wwjcloud-core/src/enums/`
- DTO 属性风格统一:将 `DiyInfoParam/DiyTabbarParam/DiyTabbarListParam/DiyShareParam``siteId()/memberId()` 改为属性访问,字段与 Java 对齐
- 日志打印:将 `JsonUtils.stringify(...)` 改为 `JSON.stringify(...)`(或在工具中补齐 `stringify`,参考 Java 的 JSON 输出位置)
- 返回包装:统一使用项目已有返回构造,替换不匹配的 `Result<T>(...)` 构造
### 登录与渠道auth/login/channel
- 注入与导入修正:补充 `Site` 实体与 `CoreSiteServiceImpl/CoreH5ServiceImpl/CorePcServiceImpl` 的注入与导入
- 枚举迁移:复制 Java 的 `SiteStatusEnum/ChannelEnum``enums/` 并按值一致
- DTO 字段:`MemberInfoParam` 使用属性风格 `memberId/siteId`
### 会员模块member
- `memberId` 非空校验:在提现、地址、信息修改、签到等接口赋值/查询前统一校验未登录;抛出与 Java 一致的错误消息
- 空值更新路径:所有 `update/save` 的入参做严格非空判定,避免 `null` 传入(对齐 Java 空分支逻辑)
- JSON 校验:替代 `JsonUtils.isJson` 为安全解析或在工具内按 Java 行为实现
### 验证与核销captcha/verify
- Captcha 工具已兼容 `ResponseModel` 字段;对调用方统一读取 `isSuccess/repData/repMsg`,移除不兼容字段
- Verify 查询:`SysVerifyRecordsParam` 属性访问统一;移除 `take: 1`;补充 `createVerifyCode` 相关的 `memberId` 非空校验
### TypeORM 用法与空值
- 全仓移除 `findOne({ take: 1 })`,统一 `findOne({ where })` 或 QueryBuilder
- 所有可能为 `null` 的对象在更新前进行非空收窄;与 Java 分支一致的抛错或新建/返回逻辑
### 工具归一与清理
- 将剩余约 16 处 `core/common/utils` 引用替换为 `@wwjBoot/vendor/utils`qrcode/collect/distance/ip/tree/language/wechat/notice
- 删除重复工具文件:`core/common/utils/system-utils.ts``core/common/utils/captcha-utils.ts` 及其他迁移后的公共工具
- 保留域专用:`request-utils.ts``json/json-module-loader.ts`
## 对齐依据Java 源文件)
- 公众号/小程序 Serve`ServeController.java``ServeServiceImpl.java`
- jscode2session/手机号:`WeappServiceImpl.java`login/register 流程)
- 验证码:`CoreCaptchaImgServiceImpl.java`ResponseModel 字段读取)
- 短信驱动:`SmsLoader.java``BaseSms.java`forName 驱动加载)
- 插件安装列表 VO`InstallAddonListVo.java`icon/cover/supportApp 等字段)
- DIY 表单配置:`CoreDiyFormConfigServiceImpl.java`(编辑/提交配置与空值逻辑)
## 验证与交付
- 编译:确保零错误
- 契约:逐端点比对 Java 响应结构与状态码;事务与副作用对齐(日志/缓存失效/事件)
- Docker构建 API+MySQL+Redis前端 `.env.production` 指向后端;执行 k6 冒烟与路由契约测试
- 清理:输出已删除与替换清单,确认目录干净
## 时间表
- D1完成工具替换与重复文件删除修复 DIY/登录 的编译与契约
- D2修复会员/验证/TypeORM 用法与空值路径;完成编译零错误与 Docker 冒烟
- 并行:枚举/DTO 迁移与接口对齐同步进行,压缩至 1.52 天