first commit

This commit is contained in:
2026-09-11 01:45:04 +08:00
commit 0a8d60d87f
145 changed files with 40978 additions and 0 deletions
@@ -0,0 +1,129 @@
---
name: 前后端业务逻辑一致性检查报告
overview: 全量比对后端 Go 服务(zt-closet-backend)与微信小程序前端(zt-closet-wxmini-frontend)的业务逻辑,逐模块核对接口路径、请求/响应字段、枚举值、状态机、错误码的一致性,最终产出一份差异清单报告(不改任何代码)。
todos:
- id: explore-backend
content: 用 [subagent:code-explorer] 探索后端 dto/service/errcode/constants,提取权威契约清单
status: completed
- id: explore-frontend
content: 用 [subagent:code-explorer] 探索前端 pages/utils/types,提取实际调用契约清单
status: completed
- id: compare-core
content: 对比用户/额度/运势/衣物模块,记录差异与严重程度
status: completed
dependencies:
- explore-backend
- explore-frontend
- id: compare-social
content: 对比穿搭/AI推荐/衣柜分享/收藏点赞/通知模块,记录差异与严重程度
status: completed
dependencies:
- explore-backend
- explore-frontend
- id: compare-trade
content: 对比商品/订单/虚拟支付模块,并全表核对错误码与枚举
status: completed
dependencies:
- explore-backend
- explore-frontend
- id: gen-report
content: 汇总生成《前后端业务逻辑一致性检查报告》
status: completed
dependencies:
- compare-core
- compare-social
- compare-trade
---
## 用户需求
检查后端业务服务全量代码(`~/zt-closet-backend`),确保前端微信小程序与后端业务逻辑一致。
## 已确认的处理方式
1. **仅输出不一致报告**:以差异清单形式呈现(接口路径、字段、枚举值、状态机、错误码等),**不修改任何前后端代码**。
2. **不核对后端《接口文档.md》**:本次只关注「前端代码」与「后端源码」的一致性,以 `/root/zt-closet-backend` 的 Go 源码为权威基准。
## 核心产出
产出一份《前后端业务逻辑一致性检查报告》,按业务模块(用户 / 额度 / 运势 / 衣物 / 穿搭 / AI 推荐 / 衣柜分享 / 收藏点赞 / 通知 / 商品 / 订单支付)分类,逐项列出:
- 不一致位置(前端文件:行 + 后端文件:行)
- 差异描述
- 严重程度(阻断 / 高风险 / 低风险 / 建议)
- 建议修复方向
## 技术栈
- 后端(权威基准,只读分析):Go + Gin,位于 `/root/zt-closet-backend`
- 前端(被检查方,只读分析):微信小程序原生 + TypeScript,位于 `/root/zt-closet-wxmini-frontend/miniprogram`
- 比对方法:静态源码契约提取 + 逐模块交叉比对,不涉及运行时
## 实现方案
### 核心策略
采用「契约提取—交叉比对」方法:
1. **提取后端权威契约**:以 `internal/routers/router.go` 注册的 42 个接口为主线,通读 `internal/routers/api/v1/`、`internal/dto/`、`internal/service/`、`pkg/errcode/`,提取每个接口的路径、HTTP 方法、请求字段(名称/必填/类型/枚举)、响应字段(名称/类型/单位)、枚举值、状态机规则、错误码。
2. **提取前端实际契约**:通读 17 个页面 `.ts` 与 `utils/request.ts`、`utils/config.ts`、`utils/auth.ts`、`types/models.ts`、`typings/index.d.ts`,提取实际调用的接口路径、请求体字段名、响应字段名、枚举常量定义、错误码映射表、关键业务规则处理(轮询/幂等/额度回退/惰性过期等)。
3. **逐模块交叉比对**:后端契约 vs 前端契约,识别字段名不一致、枚举值缺失/错位、错误码遗漏、单位换算缺失、状态机处理缺失等问题。
### 比对维度(关键决策)
- 接口路径与 HTTP 方法是否一致
- 请求字段名 / 必填性 / 类型 / 枚举取值是否一致
- 响应字段名 / 类型 / 单位(金额分、时间秒)是否一致
- 枚举常量值与状态机定义是否一致
- 错误码映射表是否完整且值正确
- 关键业务规则前端是否实现(上传轮询、支付后轮询订单、点赞乐观更新、分享惰性过期、AI 推荐额度不退还提示等)
### 严重程度分级
- **阻断**:导致功能不可用或数据错误(如字段名错误、请求路径错误、枚举值错位)
- **高风险**:特定场景下功能出错或体验严重受损(如单位未换算、错误码遗漏导致误提示)
- **低风险**:边缘场景或文案差异
- **建议**:非功能性优化建议
## 实现要点
- **不修改任何代码**,唯一新增物为报告文件 `/root/zt-closet-wxmini-frontend/前后端业务逻辑一致性检查报告.md`。
- 以后端源码为唯一权威,前端为被检查对象。
- 重点核对项:
- 虚拟支付链路:`/order/virtual` + `wx.requestVirtualPayment`,字段 `sign_data`/`pay_sig`/`signature`、`platform` 枚举 `android|ios|harmony|windows`、`mode` 取值,对照后端 `dto/order.go`、`service/virtualpay.go`。
- 易错字段:主颜色请求字段 `color` vs 响应 `color_main`;通知 `is_read` 1=未读/2=已读;`/like/:targetUUID` 路径参数驼峰;AI 推荐响应字段 `outfit_item`(单数)。
- 额度与状态机:上传/删除回退规则、公开扣额度、AI 生成失败回退、衣柜分享惰性过期。
- 错误码全表:前端 `ERROR_MESSAGES` 与后端 `pkg/errcode` 逐项核对,确认缺失与值错误。
- 疑似缺口:前端未调用 `/ad-reward/grant`(广告激励额度发放)入口,需确认是否属功能缺失。
## 目录结构
本次任务不修改现有代码,仅新增一份报告文件;以下为报告产出位置与需要通读的源码范围。
```
/root/zt-closet-wxmini-frontend/
└── 前后端业务逻辑一致性检查报告.md # [NEW] 唯一产出物,按业务模块分类记录差异清单
只读分析范围(后端):
/root/zt-closet-backend/
├── internal/routers/router.go # 42 个接口注册主线
├── internal/routers/api/v1/ # 13 个 handler
├── internal/dto/ # 14 个请求/响应 DTO
├── internal/service/ # 18 个业务逻辑(含 virtualpay/constants)
└── pkg/errcode/ # 10 个错误码文件
只读分析范围(前端):
/root/zt-closet-wxmini-frontend/miniprogram/
├── pages/ # 17 个页面 .ts
├── utils/request.ts / config.ts / auth.ts # 请求封装 / 枚举与错误码 / Token
├── types/models.ts # 前端实体类型
└── typings/index.d.ts # 全局类型声明
```
## 推荐使用的 Agent 扩展
### SubAgent
- **code-explorer**
- 用途:后端(dto/service/errcode/constants 等 60+ 文件)与前端(17 页面 + utils + types)体量较大,使用该子代理跨目录、多文件并行探索,高效提取接口契约与调用点,避免主上下文被大量源码淹没。
- 预期结果:产出后端权威契约清单(接口字段/枚举/错误码/状态机)与前端实际调用契约清单(路径/字段/枚举/错误码映射/业务规则处理),作为逐模块比对的输入。