Selaa lähdekoodia

docs: 更新开发计划v20260602

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
liaoxg 3 kuukautta sitten
vanhempi
sitoutus
2d0844d9d3
1 muutettua tiedostoa jossa 236 lisäystä ja 0 poistoa
  1. 236 0
      docs/development-plan-v20260602.md

+ 236 - 0
docs/development-plan-v20260602.md

@@ -0,0 +1,236 @@
+# 开发计划 v20260602.1
+
+**制定日期:** 2026-06-02
+**制定依据:** `docs/requirements-changelog.md` (v20260601.1) + `docs/test-coverage-report.md`
+**当前版本:** v20260601.1
+
+---
+
+## 一、BUG 修复(优先级 P0)
+
+### 1.1 VIP 用户身份显示问题(已修复,待验证)
+
+**问题描述:** 付费用户在我的页面显示为"普通用户",角色标签错误。
+
+**根本原因:** `ProfileController.getInfo()` 未返回 `vipType` 字段。
+
+**修复内容:** `ProfileController.java` 第52行后添加 `info.put("vipType", user.getVipType());`
+
+**验证步骤:**
+1. 重启后端服务器
+2. 以付费用户身份登录
+3. 进入我的页面 → 用户卡角色标签应显示"能量师 🌟" 或 "C端会员"
+4. 订阅页应显示"您已是能量师"(practitioner)或"仅显示升级能量师入口"(annual)
+
+**状态:** ✅ 代码已提交(`dd79a27`),需重启后端验证
+
+---
+
+### 1.2 "两个付费标签"问题(待确认)
+
+**问题描述:** 付费用户页面出现两个付费相关标签。
+
+**可能来源:**
+- `.seed-badge`(🌱 种子价专属会员)在 practitioner 用户的 VIP 卡上方显示
+- `.user-card__tag`(能量师 🌟)在用户卡片中显示
+- VIP 状态卡(vip-card)也显示了角色名称
+
+**验证步骤:** 重启后端后确认是预期行为(多标签分层展示)还是重复标签 bug。
+
+---
+
+## 二、本次会话新增功能(优先级 P1)
+
+### 2.1 订阅页 VIP 方案过滤
+
+**需求:** 能量师(practitioner)进入订阅页只能看到"已是能量师"提示,不能再购买能量师方案;C端会员(annual)只能看到"升级能量师"入口。
+
+**已实现:**
+- `visiblePlans` computed:根据 `userStore.vipType` 过滤 `['annual', 'practitioner']`
+- `watch` 自动调整 `selectedPlan` 当选中的方案被过滤时
+- `already-vip` 空状态样式(practitioner 用户)
+- `onPay()` 导航到 payment 页
+
+**待验证:** 重启后端 + VIP 显示修复后,订阅页过滤是否正确生效。
+
+---
+
+### 2.2 支付页定价统一
+
+**需求:** 能量师方案在订阅页显示 ¥1,314(standardPrice),付费页也显示 ¥1,314,不应显示 ¥1,986(upgradePrice)。
+
+**已实现:** `payment/index.vue` 的 `onMounted` 中先调用 `pricingApi.current()` 获取基础定价,再 overlay `upgrade()` 的升级字段。
+
+**待验证:** 选择能量师方案时,支付金额应为 ¥1,314(非升级场景)。
+
+---
+
+### 2.3 生成推广海报
+
+**需求:** 用户点击"生成推广海报",后端返回二维码,前端 Canvas 绘制精美海报并保存到相册。
+
+**已实现:**
+- `GET /api/profile/qrcode` 后端端点(ZXing 生成 QR 码)
+- `client/utils/api.js` 新增 `profileApi.qrcode()`
+- `client/pages/profile/index.vue` 实现 `generatePoster()`:下载头像+二维码→Canvas绘制→保存相册
+- `getCurrentInstance` 从 `vue` 导入(修复 LSP 错误)
+
+**待验证:**
+1. 重启后端
+2. 能量师用户点击"生成推广海报"
+3. 检查是否正确生成并保存到相册
+
+**已知限制:** Canvas 绘制在微信小程序中有尺寸限制(375×670),海报为固定尺寸。
+
+---
+
+## 三、Phase 1 剩余功能(优先级 P2)
+
+### 3.1 管理后台完善
+
+**当前状态:** 已有 27 个 AdminController API 测试通过,但管理后台 UI 可能不完整。
+
+**待检查清单:**
+- [ ] 系统配置管理(US-8.1):定价参数、佣金比例、种子价名额等
+- [ ] 订单管理:查看所有订单、订单状态
+- [ ] 用户管理:查看用户列表、VIP 状态
+- [ ] 种子价配置:`seed_period_end` 日期选择器
+
+**涉及文件:**
+- `client/pages/admin/`(如有独立管理后台页面)
+- `num-server/.../AdminController.java`
+
+---
+
+### 3.2 分销面板(佣金面板)
+
+**当前状态:** 已有推广码卡片和复制功能,佣金统计 API 存在。
+
+**待实现清单(US-6.5 / US-6.6):**
+- [ ] 佣金统计卡片:累计收益、可用余额、待结算
+- [ ] 佣金明细列表:一级/二级佣金记录
+- [ ] 团队数据:直接推广用户列表
+- [ ] "提现即将开放"提示
+
+**涉及文件:**
+- `client/pages/commission/index.vue`
+- `client/pages/profile/index.vue`(推广工具区域)
+
+---
+
+### 3.3 C 端分销功能
+
+**当前状态:** 佣金计算逻辑存在于 `OrderService`,但 C 端推广海报/分享流程可能不完整。
+
+**待验证:**
+- [ ] C 端年费(¥131)的分销佣金计算:40% 一级 + 5% 二级
+- [ ] 佣金到账时机(支付成功后立即 vs 结算后)
+- [ ] 升级场景:annual 用户升级到 practitioner 的佣金补差逻辑(US-4.4 / US-6.4)
+
+**涉及文件:**
+- `OrderService.handleAnnualCommission()`
+- `OrderService.handlePractitionerCommission()`
+
+---
+
+### 3.4 升级定价计算(US-4.4)
+
+**需求:** 年费会员(annual)升级到能量师时,应按已用时间折算扣除费用。
+
+**当前状态:** `PricingController.upgrade()` 返回 `upgradePrice`(已实现),但前端未调用此接口计算显示。
+
+**待实现:**
+- [ ] 订阅页 annual 用户点击"升级能量师" → 调用 `pricingApi.upgrade()`
+- [ ] 显示折算后的价格(原付费年费中未使用时间的折算)
+- [ ] 升级流程完整串联(subscribe → payment → 支付 → VIP 类型变更)
+
+---
+
+## 四、EPIC 9 剩余功能(优先级 P3)
+
+### 4.1 学业方向 AI(US-9.1)
+
+**状态:** `DifyService.interpretAcademicOrientation()` 存在,部分实现。
+
+**待完成:**
+- [ ] 前端入口(我的服务→学业方向)
+- [ ] Dify 专用 Workflow 接入
+- [ ] 学业方向报告展示页面
+
+---
+
+### 4.2 人工方案完整流程(US-9.2 ~ US-9.6)
+
+**当前状态:** 实体、仓库、部分服务代码存在。
+
+**待完成:**
+- [ ] 能量师工作台:查看客户的方案申请(`client/pages/plan/workbench.vue`)
+- [ ] 方案价格协商:proposal/counter/accept 流程
+- [ ] 方案付费与交付:平台佣金计算
+- [ ] 人工介入 AI 会话:`ChatIntervention` 实时注入
+
+---
+
+## 五、技术债务(优先级 P4)
+
+| # | 问题 | 解决方案 | 涉及文件 |
+|---|---|---|---|
+| T1 | `List.of()` 在 Java 8 不支持 | 全量替换为 `Arrays.asList()` | `DifyService.java`(已修复)|
+| T2 | 前端 E2E 测试缺失 | 微信小程序环境限制,建议手动测试覆盖 | — |
+| T3 | ExportService 无单元测试 | 补充单元测试 | `ExportServiceTest.java` |
+| T4 | `getCurrentInstance` 导入错误 | 从 `vue` 而非 `@dcloudio/uni-app` 导入 | `profile/index.vue`(已修复)|
+
+---
+
+## 六、执行计划
+
+### Sprint 1(本次会话,1-2天)
+
+**目标:** 修复 VIP 显示核心 bug + 验证本次会话新增功能
+
+| # | 任务 | 依赖 | 状态 |
+|---|---|---|---|
+| 1 | 重启后端,验证 VIP 显示修复 | 后端重启 | ⏳ 待验证 |
+| 2 | 验证"两个付费标签"是否为 bug | 步骤1 | ⏳ 待确认 |
+| 3 | 验证订阅页 VIP 过滤 | 步骤1 | ⏳ 待验证 |
+| 4 | 验证支付页定价统一(¥1,314) | 步骤1 | ⏳ 待验证 |
+| 5 | 测试推广海报生成 | 后端 QR 端点 | ⏳ 待验证 |
+| 6 | 推送本次所有代码到远程 | 步骤1-5 | ⏳ 待推送 |
+
+### Sprint 2(1-2天)
+
+**目标:** Phase 1 功能收尾
+
+| # | 任务 | 优先级 |
+|---|---|---|
+| 7 | 管理后台配置卡片完善(定价/佣金/种子价) | P2 |
+| 8 | 分销面板佣金统计+明细列表 | P2 |
+| 9 | C 端分销佣金计算验证 | P2 |
+| 10 | 升级定价前端串联(annual→practitioner) | P2 |
+
+### Sprint 3(2-3天)
+
+**目标:** EPIC 9 收尾
+
+| # | 任务 | 优先级 |
+|---|---|---|
+| 11 | 学业方向 AI 完整接入 | P3 |
+| 12 | 人工方案工作台 + 协商流程 | P3 |
+| 13 | 人工介入 AI 会话 | P3 |
+
+---
+
+## 七、重启后端检查清单
+
+```
+□ 1. 付费用户登录 → 我的页面 → 角色标签显示"能量师 🌟" 或 "C端会员"
+□ 2. 订阅页(practitioner 用户)→ 显示"您已是能量师"
+□ 3. 订阅页(annual 用户)→ 只显示"升级能量师"入口
+□ 4. 能量师方案价格 = ¥1,314(非升级场景)
+□ 5. 点击"生成推广海报" → 正确保存到相册
+□ 6. 控制台无 Error 日志
+```
+
+---
+
+*最后更新:2026-06-02 by Sisyphus*