Files
soul-yongping/.cursor/meeting/2026-02-28_文章类型普通版增值版需求分析.md

154 lines
7.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 会议纪要 - 2026-02-28 | 文章增加类型(普通版 / 增值版)需求分析
> 本文件由**助理橙子**在会议结束后自动生成。
---
## 基本信息
- **时间**2026-02-28
- **议题**:文章增加类型(普通版 / 增值版),增值版后 N 章额外付费、按章累加计价
- **触发方式**:开个会议分析需求
- **参与角色**:产品经理、后端开发、管理端开发工程师、小程序开发工程师、测试人员
---
## 各角色发言
### 【产品经理】
**需求理解**
1. **普通版**:全书 9.9 元,一次性买断,与现有 fullbook 逻辑一致。
2. **增值版**:基础价 + 「后 N 章」N 可配置,如 10需额外付费每多看一章价格 = 已付金额 + 该章单价,按章累加。
3. **两者关系**:普通版与增值版是**分开的、互斥的两套产品**,用户购买其一,非叠加关系。
**待澄清**
- 「后 N 章」是指全书最后 N 个 section还是最后 N 个 chapter
- 增值版基础价是否仍为 9.9,还是单独定价?
**用户价值**:用阶梯付费降低首购门槛,提升付费转化;增值版满足深度阅读用户需求。
---
### 【后端开发】
**现状**
- `chapters` 表:`id``part_id``chapter_id``section_title``price` 等;现有按 section 购买、fullbook 9.9。
- `orders` 表:`product_type``section``fullbook``vip``product_id` 存 section id 或 `fullbook`
**技术方案建议**
1. **书/产品类型**:增加 `book_edition``product_edition` 概念:
- `standard`普通版9.9 买断
- `premium`:增值版,基础价 + 增值章节按章付费
2. **配置**`system_config` 增加 `premium_config`
- `premium_base_price`:增值版基础价
- `premium_chapter_count`:后 N 章section 数量或 chapter 数量需与产品约定)
- `premium_section_ids`:或直接配置增值章节 id 列表(灵活)
3. **接口**
- `GET /api/miniprogram/user/purchase-status`:需区分普通版 / 增值版购买态,返回 `editionType``premiumPurchasedSections`
- 支付:`product_type` 扩展 `section_premium` 或沿用 `section``product_id` 为 section id金额按章节 price 累加
4. **权限**:普通版权限独立;增值版权限 = 增值版基础价已购 + 该 section 已单独付费;两者互斥。
---
### 【管理端开发工程师】
**管理端需求**
1. **书籍/版本配置**:支持选择「普通版 / 增值版」或为同一本书配置两种版本。
2. **增值章节配置**:配置「后 N 章」的 N或勾选具体 section 作为增值章节。
3. **章节单价**:增值章节的单价在章节编辑中维护(现有 `chapters.price`)。
4. **价格展示**:在书籍/章节管理列表中区分普通版、增值版及增值章节。
**接口依赖**:需 `GET/POST /api/db/chapters` 支持 `is_premium` 或类似标记;`/api/db/config``/api/admin/settings` 支持 premium_config。
---
### 【小程序开发工程师】
**C 端体验**
1. **选购**:目录/书籍页区分「普通版 9.9」与「增值版 基础价 + 增值章节按章付费」。
2. **阅读**:进入增值章节时,未购则展示「该章需额外 ¥X.X 解锁」或类似提示,点击发起支付。
3. **支付流程**:与现有一致,`product_type``product_id``amount` 由后端计算并返回。
4. **权限**:依赖 `purchase-status` 返回的 `editionType``premiumPurchasedSections` 等判断是否可读。
**接口**:需 `miniprogram` 组下的 `purchase-status``pay` 支持增值版逻辑。
---
### 【测试人员】
**测试重点**
1. 普通版 9.9 买断,全书可读。
2. 增值版:基础价购买后,后 N 章仍锁定;逐章购买,价格累加正确。
3. 边界N=0、N=全书、章节无单价时的降级逻辑。
4. 三端:管理端配置 → API 返回 → 小程序展示、支付、阅读权限。
---
## 讨论过程
**产品经理**:建议「后 N 章」先按 section 数量实现,便于与现有 `chapters` 结构对齐;后续可扩展为按 chapter。
**后端开发**:同意;建议 `premium_chapter_count` 表示「最后 N 个 section」section 顺序按 `sort_order``id` 排序。
**管理端开发工程师**:需在章节列表中标注「是否增值章节」,并在书籍级配置中设置 N。
---
## 会议决议
1. **版本类型**支持「普通版」9.9 买断)与「增值版」(基础价 + 后 N 章按章付费);**两者分开、互斥**,用户只能购买其一。
2. **增值章节**:「后 N 章」指全书最后 N 个 **section**(与 chapters 表结构一致N 为可配置参数。
3. **计价规则**:增值版基础价可配置(默认建议 9.9);增值章节单价取自 `chapters.price`;每购一章,实付 = 该章 price。
4. **订单**`product_type` 保留 `section``fullbook`;普通版用 `fullbook`;增值版用 `fullbook_premium`(基础价)和 `section`(增值章);增值章节购买用 `product_type=section``product_id=section_id`
5. **待确认项**:增值版基础价是否固定 9.9N 默认值。
---
## 待办事项
| 责任角色 | 任务 | 优先级 | 截止建议 |
|---------|------|--------|---------|
| 产品经理 | 输出增值版 MRD基础价、N 默认值、与普通版关系 | 高 | 需求定稿前 |
| 后端开发 | 设计 premium_config、扩展 purchase-status / pay | 高 | 方案评审后 |
| 管理端开发工程师 | 增值章节配置 UI、书籍版本选择 | 中 | 接口就绪后 |
| 小程序开发工程师 | 增值版选购与章节解锁流程、支付衔接 | 中 | 接口就绪后 |
| 测试人员 | 编写增值版测试用例、边界场景 | 中 | 开发完成前 |
---
## 问题与作答区
| # | 问题 | 责任角色 | 作答 |
|---|------|---------|------|
| 1 | 「后 N 章」按 section 还是 chapter 计数? | 产品经理 | 决议:按 section |
| 2 | 增值版基础价是否固定 9.9 | 产品经理 | (待补充) |
| 3 | 普通版与增值版是否互斥?用户能否同时拥有? | 产品经理 | **已确认:分开、互斥**,用户购买其一 |
| 4 | N 的默认值建议?(如 10 | 产品经理 | (待补充) |
---
## 各角色经验与业务理解更新
### 产品经理
- 文章/书籍可区分为普通版与增值版,增值版采用「基础价 + 增值章节按章付费」模式。
### 后端开发
- 增值版需新增 `premium_config`,含 `premium_chapter_count`(后 N 个 section`premium_base_price`;增值章节购买沿用 `section` 订单。
### 管理端开发工程师
- 需支持「增值版配置」与「增值章节」的 N、单价维护。
### 小程序开发工程师
- 增值版需在目录与阅读页区分普通/增值,未购增值章节时展示解锁与支付入口。
### 测试人员
- 增值版需覆盖:基础价购买、逐章购买、价格累加、权限边界、配置 N=0/全书的异常场景。
### 团队共享
- 增值版计价规则:基础价 + Σ(增值章节单价),按章购买、按章累加。
---
*会议纪要由助理橙子生成 | 各角色经验已同步至 `agent/{角色}/evolution/2026-02-28.md`*