- AGENTS.md: 新增 §20 工具脚本复用 / §21 分析结论复用 / §22 Flaky 门禁,更新文档配置表
- .pi/: 新增 settings.json、rules/guardrails.md、prompts/{debug,review,ship}-gym-manage.md
- .agents/: 新增 Hook 配置与 4 个 Hook 脚本(session-start/pre-agent-check/check-completeness/stop-check)
及 protocols/systematic-debugging.md(check-completeness 含接口链缺口检测)
- scripts/flaky-scan.sh: vitest shuffle 稳定性扫描(gym-manage-web)
- .gitignore: 追踪 AGENTS.md 与 .pi 配置,忽略运行时缓存(todos/taskflows-runs/tokenomy/sessions)
42 lines
2.1 KiB
Markdown
42 lines
2.1 KiB
Markdown
---
|
||
description: 健身房管理系统专用系统调试 — 跨 Java API + Vue3 Web + UniApp 小程序排查
|
||
---
|
||
Gym Manage(SpringBoot 多模块后端 + Vue3 管理后台 + UniApp 双小程序)系统化调试协议:
|
||
|
||
## 1. 复现确认
|
||
- 确认最小复现步骤(单测试 / 单操作 / 单输入)
|
||
- 区分环境:本地 Dev(`pnpm dev`,端口 3002)vs Docker(`docker-compose logs -f backend/frontend/postgres`)vs 微信开发者工具(小程序)
|
||
|
||
## 2. 分层隔离
|
||
按以下顺序定位故障层:
|
||
|
||
| 层级 | 检查点 | 快速验证 |
|
||
|------|--------|---------|
|
||
| 后端 Java | Controller / Service / Mapper、参数校验、异常处理 | `cd gym-manage-api && mvn compile` / `mvn test` |
|
||
| Gateway 路由 | `/api/**` → 8084 转发、CORS、鉴权过滤器 | Gateway 控制台日志 |
|
||
| Web 前端 | `gym-manage-web/src/api/*.api.ts` 请求层、views 组件、store | `cd gym-manage-web && pnpm test` / 浏览器 DevTools Network |
|
||
| UniApp 小程序 | `gym-manage-uniapp/api/*.js`、pages 页面 | 微信开发者工具控制台(`urlCheck: false` 已关闭) |
|
||
| 数据库 | SQL 错误、数据不一致 | `psql -U novalon -d manage_system -p 55432` |
|
||
|
||
## 3. 二分排查
|
||
- 对 Java 逻辑:加日志(SLF4J DEBUG)或单测缩小范围
|
||
- 对接口联调:用 Swagger(`:8084/swagger-ui.html`)直接调接口,确认后端返回 → 再查前端请求参数
|
||
- 对 UI:Vue DevTools 组件树 + Network 标签比对请求/响应
|
||
|
||
## 4. 检查最近变更
|
||
```bash
|
||
git diff --name-only HEAD~5 # 最近 5 次提交变更
|
||
git log --oneline -10 # 最近 10 条提交
|
||
```
|
||
|
||
## 5. 运行受影响测试
|
||
```bash
|
||
cd gym-manage-api && mvn test -pl <受影响模块> -am # 后端
|
||
cd gym-manage-web && pnpm test # Web 前端
|
||
cd gym-manage-web && pnpm test:e2e # Web E2E(Playwright)
|
||
```
|
||
|
||
## 6. 确认根因后才提修复方案
|
||
- 记录完整的复现路径与根因证据
|
||
- 修复后走完整验证:受影响单测 + 类型检查(`vue-tsc`)+ 真实后端联调(Mock 通过 ≠ 功能可用,见 AGENTS.md §13)
|