## 目标 - 修复现存编译错误,确保所有接口与 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(...)` 构造 ### 登录与渠道(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 天