diff --git a/.cursor/README.md b/.cursor/README.md index 39a14510..f5f6a8a1 100644 --- a/.cursor/README.md +++ b/.cursor/README.md @@ -15,7 +15,7 @@ ├── 经验库/ # 经验沉淀,用于自动升级 Skills │ ├── README.md │ ├── 经验清单.md -│ └── {小程序/管理端/后端/产品/助理橙子/团队}/ +│ └── {小程序/管理端/后端/产品/测试/助理橙子/团队}/ └── 会议记录/ # 多角色会议纪要(橙子生成) ├── README.md ├── _模板.md @@ -32,6 +32,7 @@ | 管理端开发工程师 | soul-admin/ | SKILL-管理端开发.md | | 后端开发 | soul-api/ | SKILL-API开发.md(说「后端」「API」也可触发) | | 产品经理 | 开发文档/1、需求/、临时需求池/ | SKILL-产品经理.md | +| 测试人员 | miniprogram、soul-admin、soul-api | SKILL-测试.md(说「测试」「QA」也可触发) | | 助理橙子 | 讨论后记录、经验升级 | SKILL-助理橙子-文档同步.md | **经验库**:每角色独立文件夹 + 团队(跨角色共享)。用户说「吸收经验」「升级 skills」→ 入库 + 升级 Skill;说「保存开发进度」「任务完成」「搞定了」→ 更新项目索引。详见 [经验库 README](./经验库/README.md)。 @@ -46,6 +47,7 @@ | soul-admin/ | `SKILL-管理端开发.md` | soul-admin-boundary | | soul-api/ | `SKILL-API开发.md` | soul-api | | 开发文档/1、需求/、临时需求池/ | `SKILL-产品经理.md` | product-manager | +| 测试、测试用例、回归测试、功能测试、QA | `SKILL-测试.md` | - | | 小橙、橙子、讨论完毕、记录、同步文档 | `SKILL-助理橙子-文档同步.md` | assistant-xiaofeng | | 吸收经验、升级 skills、保存开发进度、任务完成、搞定了 | `SKILL-助理橙子-文档同步.md` | assistant-xiaofeng | | 跨端功能开发 | `SKILL-角色流程控制.md` | - | @@ -80,6 +82,7 @@ | 管理端开发工程师 | SKILL-管理端开发 | 三端架构 → API开发 → 变更关联检查 | | 后端开发 | SKILL-API开发 | soul-api 规范 → 三端架构 → 变更关联检查 → MySQL直接操作 | | 产品经理 | SKILL-产品经理 | 需求汇总、运营与变更 | +| 测试人员 | SKILL-测试 | 变更关联检查、小程序/管理端/API 规范 | | 助理橙子 | SKILL-助理橙子-文档同步 | - | ### 场景 Skill @@ -99,7 +102,7 @@ | 文档 | 说明 | |------|------| -| [开发团队职责定义](./docs/开发团队职责定义.md) | 五角色职责、Skills 分配 | +| [开发团队职责定义](./docs/开发团队职责定义.md) | 六角色职责、Skills 分配 | | [三角色边界定义](./docs/三角色边界定义.md) | 开发三角色源码与业务边界 | | [角色驱动Skills分析](./docs/角色驱动Skills分析.md) | Skills 组织方式 | | [经验库 README](./经验库/README.md) | 经验入库、Skills 升级流程 | diff --git a/.cursor/docs/开发团队职责定义.md b/.cursor/docs/开发团队职责定义.md index 3bc8f5e1..2b33795a 100644 --- a/.cursor/docs/开发团队职责定义.md +++ b/.cursor/docs/开发团队职责定义.md @@ -1,6 +1,6 @@ # Soul 创业派对 - 开发团队职责定义 -> **开发团队**:2 前端 + 1 后端 + 1 产品 + 1 助理。按职责分配 Skills,有**经验库**用于根据经验自动升级 Skills。速查见 [.cursor/README.md](../README.md)。 +> **开发团队**:2 前端 + 1 后端 + 1 产品 + 1 测试 + 1 助理。按职责分配 Skills,有**经验库**用于根据经验自动升级 Skills。速查见 [.cursor/README.md](../README.md)。 --- @@ -12,6 +12,7 @@ | **管理端开发工程师** | React 管理后台 | soul-admin/ | SKILL-管理端开发.md | | **后端开发** | Go + Gin + GORM 接口服务 | soul-api/ | SKILL-API开发.md | | **产品经理** | 需求、验收、协调 | 开发文档/1、需求/、临时需求池/ | SKILL-产品经理.md | +| **测试人员** | 功能测试、回归测试、三端联调 | miniprogram、soul-admin、soul-api | SKILL-测试.md | | **助理橙子** | 讨论后记录、文档同步 | 触发词:小橙、橙子、讨论完毕 | SKILL-助理橙子-文档同步.md | --- @@ -63,7 +64,17 @@ | **主 Skill** | SKILL-产品经理.md | | **产出** | 需求汇总、需求分析、验收清单、项目推进表 | -### 3.2 助理橙子 +### 3.2 测试人员 + +| 项目 | 说明 | +|------|------| +| **职责** | 功能测试、回归测试、三端(小程序、管理端、API)联调验证 | +| **测试范围** | miniprogram、soul-admin、soul-api | +| **主 Skill** | SKILL-测试.md | +| **产出** | 测试用例、测试报告、Bug 列表 | +| **协同** | 与开发角色对接 Bug、验收前测试 | + +### 3.3 助理橙子 | 项目 | 说明 | |------|------| @@ -82,6 +93,7 @@ | 管理端开发工程师 | SKILL-管理端开发 | 三端架构、API开发、变更关联检查 | 角色流程控制 | | 后端开发 | SKILL-API开发 | soul-api 规范、三端架构、变更关联检查、MySQL直接操作 | 角色流程控制 | | 产品经理 | SKILL-产品经理 | 需求汇总、运营与变更 | - | +| 测试人员 | SKILL-测试 | 变更关联检查、小程序/管理端/API 规范 | - | | 助理橙子 | SKILL-助理橙子-文档同步 | - | - | ### 通用 / 场景 Skill(全员) @@ -103,6 +115,7 @@ | 编辑 soul-admin/** | 管理端开发工程师 | SKILL-管理端开发 + soul-admin-boundary | | 编辑 soul-api/** | 后端开发 | SKILL-API开发 + soul-api | | 编辑 开发文档/1、需求/、临时需求池/ | 产品经理 | SKILL-产品经理 | +| 说 测试、测试用例、回归测试、功能测试、QA | 测试人员 | SKILL-测试 | | 说 小橙、橙子、讨论完毕、记录、同步文档 | 助理橙子 | SKILL-助理橙子-文档同步 | --- @@ -111,7 +124,7 @@ | 项目 | 说明 | |------|------| -| **位置** | `.cursor/经验库/`,每角色独立文件夹(小程序/管理端/后端/产品/助理橙子) | +| **位置** | `.cursor/经验库/`,每角色独立文件夹(小程序/管理端/后端/产品/测试/助理橙子) | | **项目索引** | 每角色有 `项目索引.md`,根据开发进度做总结、保存进度,**每次保存写日期** | | **经验存储** | 按天存储,文件名 `YYYY-MM-DD.md`,在对应角色文件夹下 | | **用途** | 沉淀 bug 修复、最佳实践、决策、踩坑;根据经验**自动升级 Skills** | diff --git a/.cursor/rules/soul-project-boundary.mdc b/.cursor/rules/soul-project-boundary.mdc index f345762c..d99636ec 100644 --- a/.cursor/rules/soul-project-boundary.mdc +++ b/.cursor/rules/soul-project-boundary.mdc @@ -48,6 +48,7 @@ alwaysApply: true | 管理端、soul-admin、React、后台管理 | 管理端开发工程师 | `e:\Gongsi\Mycontent\.cursor\skills\SKILL-管理端开发.md` | | 小程序、miniprogram、C 端、微信小程序 | 小程序开发工程师 | `e:\Gongsi\Mycontent\.cursor\skills\SKILL-小程序开发.md` | | 产品、需求、验收、排期、需求文档 | 产品经理 | `e:\Gongsi\Mycontent\.cursor\skills\SKILL-产品经理.md` | +| 测试、测试用例、回归测试、功能测试、QA | 测试人员 | `e:\Gongsi\Mycontent\.cursor\skills\SKILL-测试.md` | ### 按场景触发词 diff --git a/.cursor/skills/SKILL-助理橙子-文档同步.md b/.cursor/skills/SKILL-助理橙子-文档同步.md index 855755e8..4057a13d 100644 --- a/.cursor/skills/SKILL-助理橙子-文档同步.md +++ b/.cursor/skills/SKILL-助理橙子-文档同步.md @@ -82,6 +82,7 @@ description: 开发团队文档同步与经验升级。小橙、橙子、讨论 | 管理端开发工程师 | `管理端` | `e:\Gongsi\Mycontent\.cursor\经验库\管理端\` | | 后端开发 | `后端` | `e:\Gongsi\Mycontent\.cursor\经验库\后端\` | | 产品经理 | `产品` | `e:\Gongsi\Mycontent\.cursor\经验库\产品\` | +| 测试人员 | `测试` | `e:\Gongsi\Mycontent\.cursor\经验库\测试\` | | 助理橙子 | `助理橙子` | `e:\Gongsi\Mycontent\.cursor\经验库\助理橙子\` | #### 5.2 跨端经验写入规则 diff --git a/.cursor/skills/SKILL-团队会议.md b/.cursor/skills/SKILL-团队会议.md index f5486f1a..6e233a15 100644 --- a/.cursor/skills/SKILL-团队会议.md +++ b/.cursor/skills/SKILL-团队会议.md @@ -32,7 +32,7 @@ description: Soul 创业派对开发团队多角色会议。语义化触发: → 宣布参会角色(根据议题自动判断:涉及哪些端就叫哪些角色) 第二步:各角色依次发言 - → 按【产品经理】→【后端开发】→【管理端开发工程师】→【小程序开发工程师】顺序 + → 按【产品经理】→【后端开发】→【管理端开发工程师】→【小程序开发工程师】→【测试人员】(验收/测试相关时)顺序 → 每个角色从自身专业视角对议题发表意见 → 格式:【角色名】:内容 @@ -79,6 +79,11 @@ description: Soul 创业派对开发团队多角色会议。语义化触发: - 支付/登录/场景值是否有特殊要求? - 与现有页面的衔接点? +### 【测试人员】关注点(验收、测试相关会议时参与) +- 测试用例覆盖哪些场景?边界条件? +- 三端联调(小程序↔API、管理端↔API)验证点? +- 回归测试清单?已知风险? + --- ## 4. 橙子会议收尾流程(会议结束后必须执行) @@ -100,6 +105,7 @@ description: Soul 创业派对开发团队多角色会议。语义化触发: | 后端开发 | 后端 | | 管理端开发工程师 | 管理端 | | 小程序开发工程师 | 小程序 | +| 测试人员 | 测试 | 对每个参会角色,执行: diff --git a/.cursor/skills/SKILL-测试.md b/.cursor/skills/SKILL-测试.md new file mode 100644 index 00000000..6de3822a --- /dev/null +++ b/.cursor/skills/SKILL-测试.md @@ -0,0 +1,72 @@ +--- +name: soul-tester +description: Soul 创业派对测试人员。功能测试、回归测试、三端(小程序、管理端、API)联调验证。Use when 测试, 测试用例, 回归测试, 功能测试, QA. +--- + +# Soul 创业派对 - 测试人员 Skill + +当你在**功能测试、回归测试、三端联调验证**时,使用本 Skill。测试人员负责小程序、管理端、API 的功能与集成测试,不参与源码编写。 + +--- + +## 1. 职责范围 + +| 职责 | 说明 | 产出 | +|------|------|------| +| 功能测试 | 按需求验证功能正确性 | 测试用例、通过/失败记录 | +| 回归测试 | 变更后验证原有功能未破坏 | 回归清单、测试报告 | +| 三端联调 | 小程序↔API、管理端↔API 数据流验证 | 联调记录 | +| Bug 反馈 | 复现步骤、环境、期望 vs 实际 | Bug 列表、复现说明 | + +--- + +## 2. 测试范围 + +| 端 | 目录 | API 路径 | 重点 | +|----|------|----------|------| +| 小程序 | miniprogram/ | /api/miniprogram/* | 登录、支付、推荐码、VIP、阅读、分享 | +| 管理端 | soul-admin/ | /api/admin/*、/api/db/* | 内容管理、用户、订单、提现、VIP 角色、推广设置 | +| API 后端 | soul-api/ | 全部 | 接口契约、鉴权、分润、支付回调 | + +--- + +## 3. 测试原则 + +- **路径隔离**:小程序只调 miniprogram;管理端只调 admin/db;不得混用。 +- **鉴权**:需登录接口需带 token;401 时正确跳转登录。 +- **数据流**:下单→支付→回调→分润;推荐码绑定→访问记录;VIP 资料保存→排行展示。 +- **变更检查**:开发完成变更后,可参考 soul-change-checklist 做关联检查,避免遗漏。 + +--- + +## 4. 常用测试场景 + +| 场景 | 验证点 | +|------|--------| +| 小程序登录 | 微信登录、手机号、token 持久化 | +| 购买与支付 | 下单、微信支付、回调更新、购买状态 | +| 推荐与分润 | 扫码/分享带 ref、绑定、分润计算 | +| VIP 功能 | 开通、资料填写、头像上传、保存、排行展示 | +| 管理端 CRUD | 列表、搜索、分页、新增、编辑、删除 | +| 提现 | 申请、审核、状态流转、到账确认 | + +--- + +## 5. 产出与协同 + +| 产出 | 说明 | +|------|------| +| 测试用例 | 场景、步骤、期望结果 | +| 测试报告 | 通过率、失败用例、环境信息 | +| Bug 列表 | 复现步骤、关联端、严重程度 | + +**协同**:发现 Bug 时与对应开发角色(小程序/管理端/后端)对接;验收前完成测试并输出报告。 + +--- + +## 6. 何时使用本 Skill + +- 编写或执行测试用例时 +- 做回归测试、功能验证时 +- 三端联调、接口契约验证时 +- 说「测试」「测试用例」「回归测试」「功能测试」「QA」时 diff --git a/.cursor/会议记录/README.md b/.cursor/会议记录/README.md index 3432d0aa..2a9dadca 100644 --- a/.cursor/会议记录/README.md +++ b/.cursor/会议记录/README.md @@ -27,13 +27,14 @@ YYYY-MM-DD_会议主题.md ## 基本信息 - **时间**:YYYY-MM-DD HH:mm - **议题**:xxx -- **参与角色**:产品经理、后端开发、管理端开发工程师、小程序开发工程师 +- **参与角色**:产品经理、后端开发、管理端开发工程师、小程序开发工程师、测试人员 ## 各角色发言 ### 【产品经理】... ### 【后端开发】... ### 【管理端开发工程师】... ### 【小程序开发工程师】... +### 【测试人员】...(验收/测试相关) ## 讨论过程 (关键讨论节点记录) diff --git a/.cursor/会议记录/_模板.md b/.cursor/会议记录/_模板.md index b6e6c1a2..f81f4fae 100644 --- a/.cursor/会议记录/_模板.md +++ b/.cursor/会议记录/_模板.md @@ -9,7 +9,7 @@ - **时间**:YYYY-MM-DD HH:mm - **议题**:{从用户消息提取} - **触发方式**:{语义化触发词} -- **参与角色**:{根据议题自动判断:产品经理、后端开发、管理端开发工程师、小程序开发工程师} +- **参与角色**:{根据议题自动判断:产品经理、后端开发、管理端开发工程师、小程序开发工程师、测试人员} --- @@ -33,6 +33,10 @@ (从 C 端用户体验、交互流程、接口依赖角度发言) +### 【测试人员】(验收/测试相关会议时) + +(从测试用例、三端联调、回归清单、已知风险角度发言) + --- ## 讨论过程 @@ -59,6 +63,7 @@ | 管理端开发工程师 | {任务} | 高/中/低 | {日期} | | 小程序开发工程师 | {任务} | 高/中/低 | {日期} | | 产品经理 | {任务} | 高/中/低 | {日期} | +| 测试人员 | {任务} | 高/中/低 | {日期} | --- @@ -82,6 +87,10 @@ - {从本次会议提炼的小程序相关经验} +### 测试人员 + +- {从本次会议提炼的测试相关经验} + ### 团队共享 - {跨角色共享的架构决策或业务规则} diff --git a/.cursor/经验库/README.md b/.cursor/经验库/README.md index b21b9a4c..45187554 100644 --- a/.cursor/经验库/README.md +++ b/.cursor/经验库/README.md @@ -22,6 +22,9 @@ ├── 产品/ │ ├── 项目索引.md │ └── YYYY-MM-DD.md +├── 测试/ +│ ├── 项目索引.md +│ └── YYYY-MM-DD.md ├── 助理橙子/ │ ├── 项目索引.md │ └── YYYY-MM-DD.md diff --git a/.cursor/经验库/测试/2026-02-27.md b/.cursor/经验库/测试/2026-02-27.md new file mode 100644 index 00000000..446cebba --- /dev/null +++ b/.cursor/经验库/测试/2026-02-27.md @@ -0,0 +1,65 @@ +# 测试 - 经验记录 - 2026-02-27 + +## 小程序静态审查报告 + +**测试时间**:2026-02-27 +**测试方式**:代码级静态分析 +**测试范围**:miniprogram 全目录(不含 backup 文件) + +--- + +### 一、API 路径隔离检查 ✅ 通过 + +| 检查项 | 结果 | 说明 | +|--------|------|------| +| 是否只调 /api/miniprogram/* | ✅ | 所有 app.request 均使用 miniprogram 路径 | +| 是否误调 /api/admin/*、/api/db/* | ✅ | 无违规调用 | +| wx.uploadFile URL | ✅ | 使用 baseUrl + /api/miniprogram/upload | + +**说明**:`read.js.backup` 中曾有 `/api/db/config`,该文件为备份,非线上代码。 + +--- + +### 二、主要页面与接口映射 + +| 页面/模块 | 主要接口 | 状态 | +|-----------|----------|------| +| 首页 index | vip/members、users、book/all-chapters | ✅ | +| 目录 chapters | book/all-chapters | ✅ | +| 阅读 read | book/chapter、purchase-status、pay、qrcode | ✅ | +| 我的 my | config、withdraw/*、earnings、user/update、vip/status | ✅ | +| VIP vip | vip/status、vip/profile、upload、pay | ✅ | +| 推广 referral | referral/data、qrcode、withdraw | ✅ | +| 匹配 match | match/config、match/users、ckb/join、ckb/match、pay | ✅ | +| 设置 settings | user/update、user/profile、phone、upload | ✅ | +| 地址 addresses | user/addresses | ✅ | +| 提现记录 | withdraw/records、confirm-info | ✅ | +| 购买记录 purchases | orders | ✅ | +| 会员详情 member-detail | vip/members、users | ✅ | +| 搜索 search | book/hot、book/search | ✅ | + +--- + +### 三、建议手工验证场景 + +| 场景 | 验证点 | 优先级 | +|------|--------|--------| +| 登录 | 微信登录、token 持久化、401 跳转 | 高 | +| VIP 购买 | 下单、支付、开通成功、资料填写、头像上传 | 高 | +| 推荐码 | 分享带 ref、扫码绑定、分润展示 | 高 | +| 超级个体 | 加载骨架、头像展示、点击进详情 | 中 | +| 朋友圈分享 | 所有页面右上角「分享到朋友圈」可点 | 中 | +| 提现 | 申请、记录、确认收款 | 中 | +| 地址管理 | 增删改查、默认地址 | 低 | + +--- + +### 四、发现与建议 + +1. **输入框规范**:VIP 等表单已按「view 包裹 input」规范实现,符合 SKILL-小程序开发 §6。 +2. **朋友圈分享**:各页面已启用 wx.showShareMenu + onShareTimeline,推荐码会随 query 传递。 +3. **超级个体**:已有 4 圆形骨架加载动画,加载完成后再展示内容或空态。 + +--- + +**结论**:小程序代码在 API 路径隔离、规范遵从方面**通过静态审查**。建议在真机/模拟器中按上表手工验证核心流程。 diff --git a/.cursor/经验库/测试/项目索引.md b/.cursor/经验库/测试/项目索引.md new file mode 100644 index 00000000..9c58f39b --- /dev/null +++ b/.cursor/经验库/测试/项目索引.md @@ -0,0 +1,22 @@ +# 测试 - 项目索引 + +> 测试人员经验与测试进度。**每次保存必须写日期**。 + +--- + +## 项目总结 + +测试人员负责小程序、管理端、API 的功能测试、回归测试与三端联调。主 Skill:SKILL-测试.md。 + +--- + +## 开发/测试进度 + +| 日期 | 进度摘要 | 状态 | +|------|----------|------| +| 2026-02-27 | 测试人员角色与 Skill 初始化 | 已完成 | +| 2026-02-27 | 小程序静态审查(API 路径、页面接口、手工验证建议) | 已完成 | + +--- + +**最后更新**:2026-02-27 diff --git a/.cursor/经验库/经验清单.md b/.cursor/经验库/经验清单.md index bb4f8b77..283a92d9 100644 --- a/.cursor/经验库/经验清单.md +++ b/.cursor/经验库/经验清单.md @@ -12,6 +12,7 @@ | 管理端 | [管理端/项目索引.md](./管理端/项目索引.md) | 管理端/YYYY-MM-DD.md | | 后端 | [后端/项目索引.md](./后端/项目索引.md) | 后端/YYYY-MM-DD.md | | 产品 | [产品/项目索引.md](./产品/项目索引.md) | 产品/YYYY-MM-DD.md | +| 测试 | [测试/项目索引.md](./测试/项目索引.md) | 测试/YYYY-MM-DD.md | | 助理橙子 | [助理橙子/项目索引.md](./助理橙子/项目索引.md) | 助理橙子/YYYY-MM-DD.md | | 团队(跨角色共享) | [团队/项目索引.md](./团队/项目索引.md) | 团队/YYYY-MM-DD.md | diff --git a/.gitignore b/.gitignore index 9c035ca9..8050feeb 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ soul-api/wechat/info.log next-project soul-admin/node_modules +soul-api +soul-api.exe \ No newline at end of file diff --git a/miniprogram/app.js b/miniprogram/app.js index 1a92cf58..0744f09c 100644 --- a/miniprogram/app.js +++ b/miniprogram/app.js @@ -9,8 +9,8 @@ App({ globalData: { // API基础地址 - 连接真实后端 // baseUrl: 'https://soulapi.quwanzhi.com', - // baseUrl: 'https://souldev.quwanzhi.com', - baseUrl: 'http://localhost:8080', + baseUrl: 'https://souldev.quwanzhi.com', + // baseUrl: 'http://localhost:8080', // 小程序配置 - 真实AppID diff --git a/soul-api/dev_dev.py b/soul-api/dev_dev.py index 48b11b6d..4bb97bae 100644 --- a/soul-api/dev_dev.py +++ b/soul-api/dev_dev.py @@ -3,7 +3,7 @@ """ soul-api Go 项目一键部署到宝塔,重启的是宝塔里的 soulDev 项目 - 本地交叉编译 Linux 二进制 -- 上传到 /www/wwwroot/自营/soul-dev +- 上传到 /www/wwwroot/self/soul-dev - 重启 soulDev:优先宝塔 API(需配置),否则 SSH 下 setsid nohup 启动 宝塔 API 重启(可选):在环境变量或 .env 中设置 @@ -44,7 +44,7 @@ except ImportError: # ==================== 配置 ==================== -DEPLOY_PROJECT_PATH = "/www/wwwroot/自营/soul-dev" +DEPLOY_PROJECT_PATH = "/www/wwwroot/self/soul-dev" DEFAULT_SSH_PORT = int(os.environ.get("DEPLOY_SSH_PORT", "22022")) diff --git a/soul-api/devlop.py b/soul-api/devlop.py index 94faaf1b..1e3404d7 100644 --- a/soul-api/devlop.py +++ b/soul-api/devlop.py @@ -3,7 +3,7 @@ """ soulApp (soul-api) Go 项目一键部署到宝塔 - 本地交叉编译 Linux 二进制 -- 上传到 /www/wwwroot/自营/soul-api +- 上传到 /www/wwwroot/self/soul-api - 重启:优先宝塔 API(需配置),否则 SSH 下 setsid nohup 启动 宝塔 API 重启(可选):在环境变量或 .env 中设置 @@ -44,7 +44,7 @@ except ImportError: # ==================== 配置 ==================== -DEPLOY_PROJECT_PATH = "/www/wwwroot/自营/soul-api" +DEPLOY_PROJECT_PATH = "/www/wwwroot/self/soul-api" DEFAULT_SSH_PORT = int(os.environ.get("DEPLOY_SSH_PORT", "22022")) diff --git a/soul-api/soul-api b/soul-api/soul-api index b3f81de2..efa49458 100755 Binary files a/soul-api/soul-api and b/soul-api/soul-api differ diff --git a/开发文档/6、后端/管理端鉴权设计.md b/开发文档/6、后端/管理端鉴权设计.md index 53cf9add..da90e194 100644 --- a/开发文档/6、后端/管理端鉴权设计.md +++ b/开发文档/6、后端/管理端鉴权设计.md @@ -1,6 +1,6 @@ # soul-api 管理端登录判断与权限校验 -> 来源:soul-api/管理端鉴权设计.md +> 来源:soul-api/管理端鉴权设计.md。已整理至开发文档。 --- diff --git a/开发文档/8、部署/商家转账.md b/开发文档/8、部署/商家转账.md index dc2e15cb..b5b7d01f 100644 --- a/开发文档/8、部署/商家转账.md +++ b/开发文档/8、部署/商家转账.md @@ -1,6 +1,6 @@ # 商家转账 PowerWeChat 调用示例 -> 来源:soul-api/商家转账.md。完整实现见 [提现功能完整技术文档](提现功能完整技术文档.md)。 +> 来源:soul-api/商家转账.md。已整理至开发文档。完整实现见 [提现功能完整技术文档](提现功能完整技术文档.md)。 --- diff --git a/开发文档/8、部署/宝塔反向代理说明.md b/开发文档/8、部署/宝塔反向代理说明.md new file mode 100644 index 00000000..099d80d2 --- /dev/null +++ b/开发文档/8、部署/宝塔反向代理说明.md @@ -0,0 +1,87 @@ +# soul-api 域名 404 原因与解决 + +> 来源:soul-api/宝塔反向代理说明.txt + +## 原因 + +域名请求先到 Nginx,若没有把请求转发到本机 8080 的 Go,或站点用了 root/静态目录,就会 404。 + +--- + +## 一、先确认 Go 是否在跑(必做) + +在宝塔终端或 SSH 里执行: + +``` +curl -s http://127.0.0.1:8080/health +``` + +- 若返回 `{"status":"ok"}`:说明 Go 正常,问题在 Nginx,看下面第二步。 +- 若连接被拒绝或超时:说明 8080 没在监听。去 宝塔 → Go项目管理 → soulApi → 服务状态,看是否「运行中」;看「项目日志」是否有报错。 + +--- + +## 二、Nginx 必须「整站走代理」,不能走 root + +添加了反向代理仍 404,多半是: + +- 站点默认有 `location / { root ...; index ...; }`,请求被当成静态文件处理,`/health` 找不到就 404; +- 或反向代理只绑在了子路径(如 `/api`),`/` 和 `/health` 没被代理。 + +**做法**:让 soulapi.quwanzhi.com 的**所有路径**都走 8080,不要用 root。 + +在宝塔:网站 → soulapi.quwanzhi.com → 设置 → 配置文件,找到该站点的 `server { ... }`,按下面两种方式之一改。 + +### 方式 A:只保留一个 location /(推荐) + +把 server 里**原来的** `location / { ... }`(含 root、index 的那段)**删掉或注释掉**,只保留下面这一段: + +```nginx +location / { + proxy_pass http://127.0.0.1:8080; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; +} +``` + +保存 → 重载 Nginx(或 宝塔 里点「重载配置」)。 + +### 方式 B:整站用下面这一整段 server(HTTPS 示例) + +若你希望整站只做反向代理、不混静态,可以把该站点的 server 块整体替换成下面内容(把 your_ssl_cert 等换成你实际的证书路径;没有 SSL 就只用 listen 80 那段): + +```nginx +server { + listen 80; + listen 443 ssl http2; + server_name soulapi.quwanzhi.com; + # SSL 证书路径按宝塔实际填写,例如: + # ssl_certificate /www/server/panel/vhost/cert/soulapi.quwanzhi.com/fullchain.pem; + # ssl_certificate_key /www/server/panel/vhost/cert/soulapi.quwanzhi.com/privkey.pem; + + location / { + proxy_pass http://127.0.0.1:8080; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } +} +``` + +保存并重载 Nginx。 + +--- + +## 三、改完后自测 + +- 本机:`curl -s https://soulapi.quwanzhi.com/health` +- 或浏览器打开:https://soulapi.quwanzhi.com/health + +应看到:`{"status":"ok"}` + +- 打开 https://soulapi.quwanzhi.com/ 应看到「部署成功」页面。 diff --git a/开发文档/8、部署/订阅消息.md b/开发文档/8、部署/订阅消息.md index 924640e1..933d56f2 100644 --- a/开发文档/8、部署/订阅消息.md +++ b/开发文档/8、部署/订阅消息.md @@ -1,6 +1,6 @@ # 提现订阅消息(PowerWeChat) -> 来源:soul-api/订阅消息.md。提现成功后向用户发送订阅消息。 +> 来源:soul-api/订阅消息.md。提现成功后向用户发送订阅消息。已整理至开发文档。 --- diff --git a/开发文档/README.md b/开发文档/README.md index 22b5194c..9e4e46b1 100644 --- a/开发文档/README.md +++ b/开发文档/README.md @@ -38,10 +38,12 @@ | 文档 | 说明 | |------|------| | [5、接口/API接口完整文档](5、接口/API接口完整文档.md) | API 完整文档 | +| [6、后端/管理端鉴权设计](6、后端/管理端鉴权设计.md) | soul-api 管理端 JWT 鉴权、路由分层 | | [8、部署/部署总览](8、部署/部署总览.md) | 部署入口、分销与流程 | +| [8、部署/宝塔反向代理说明](8、部署/宝塔反向代理说明.md) | soul-api 域名 404 排查、Nginx 反向代理配置 | | [8、部署/提现功能完整技术文档](8、部署/提现功能完整技术文档.md) | 微信支付商家转账到零钱 API 集成 | | [8、部署/分销提现流程图](8、部署/分销提现流程图.md) | 提现业务流程图 | -| [8、部署/订阅消息](8、部署/订阅消息.md) | 提现成功订阅消息 | +| [8、部署/订阅消息](8、部署/订阅消息.md) | 提现成功订阅消息(PowerWeChat) | | [8、部署/商家转账](8、部署/商家转账.md) | PowerWeChat 商家转账示例 | ### 临时需求池