53 lines
3.5 KiB
Markdown
53 lines
3.5 KiB
Markdown
## 目标
|
||
- 修复现存编译错误,确保所有接口与 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.5–2 天 |