Files
zt-closet-wxmini-frontend/.codebuddy/plans/前后端业务逻辑一致性检查报告_1d1a6eb4.md
T
2026-09-11 01:45:04 +08:00

7.1 KiB
Raw Blame History

name, overview, todos
name overview todos
前后端业务逻辑一致性检查报告 全量比对后端 Go 服务(zt-closet-backend)与微信小程序前端(zt-closet-wxmini-frontend)的业务逻辑,逐模块核对接口路径、请求/响应字段、枚举值、状态机、错误码的一致性,最终产出一份差异清单报告(不改任何代码)。
id content status
explore-backend 用 [subagent:code-explorer] 探索后端 dto/service/errcode/constants,提取权威契约清单 completed
id content status
explore-frontend 用 [subagent:code-explorer] 探索前端 pages/utils/types,提取实际调用契约清单 completed
id content status dependencies
compare-core 对比用户/额度/运势/衣物模块,记录差异与严重程度 completed
explore-backend
explore-frontend
id content status dependencies
compare-social 对比穿搭/AI推荐/衣柜分享/收藏点赞/通知模块,记录差异与严重程度 completed
explore-backend
explore-frontend
id content status dependencies
compare-trade 对比商品/订单/虚拟支付模块,并全表核对错误码与枚举 completed
explore-backend
explore-frontend
id content status dependencies
gen-report 汇总生成《前后端业务逻辑一致性检查报告》 completed
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)体量较大,使用该子代理跨目录、多文件并行探索,高效提取接口契约与调用点,避免主上下文被大量源码淹没。
  • 预期结果:产出后端权威契约清单(接口字段/枚举/错误码/状态机)与前端实际调用契约清单(路径/字段/枚举/错误码映射/业务规则处理),作为逐模块比对的输入。