8.0 KiB
8.0 KiB
dev 分支需求分析与 yongxu 迁移方案
基于用户反馈:dev 分支只改了样式,未考虑后端/API/小程序三端协调,导致 bug 或功能不全;yongxu 分支功能完善。本文档分析 dev 需求、识别三端缺口,并给出「新功能迁入 yongxu + 补全功能」的执行方案。
一、dev 分支变更概览
1.1 变更性质(用户结论)
- dev 侧重:管理端 UI/样式、新页面布局
- 问题:未同步考虑 soul-api、miniprogram 的接口与逻辑,导致:
- 管理端新页面调用的接口在 yongxu 的 soul-api 中不存在或不全
- 小程序端与 dev 管理端配置/数据模型不一致
- 三端联调时出现 bug 或功能不全
1.2 dev 相对 yongxu 的增量(按模块)
| 模块 | dev 新增/改动 | 依赖的 API/能力 |
|---|---|---|
| soul-admin | ContentPage 大改、ChapterTree、RichEditor、@提及、persons、link-tags 配置 | /api/db/book(含 section-orders)、/api/db/persons、/api/db/link-tags、/api/db/config/full?key=xxx |
| soul-admin | FindPartnerPage + 多 Tab(CKBConfigPanel、CKBStatsTab、MatchPoolTab 等) | /api/db/config/full?key=ckb_config、/api/db/ckb-leads |
| soul-admin | UsersPage 大改、UserDetailModal 扩展 | /api/db/users 已有,可能需扩展字段 |
| soul-admin | ChaptersPage 新增、DashboardPage 调整 | 依赖 db/book、db/users 等 |
| soul-admin | DistributionPage、SettingsPage 等样式调整 | 现有 admin 接口 |
| soul-api | admin_dashboard、admin_rfm、admin_shensheshou、admin_user_rules | 新增 handler |
| soul-api | db_person、db_book 扩展(section-orders、move-sections) | 扩展 db_book action |
| soul-api | ckb 扩展、match/match_records 扩展 | 扩展 ckb、match handler |
| miniprogram | 部分页面简化/样式调整 | 与 yongxu 的 @提及、推荐码等可能冲突 |
二、三端缺口分析(yongxu 当前缺失)
2.1 soul-api 缺口(管理端新页面依赖)
| 接口/能力 | dev 管理端调用 | yongxu 是否已有 | 缺口说明 |
|---|---|---|---|
GET/POST/DELETE /api/db/persons |
ContentPage @提及人物配置 | ❌ 无 | 需新增 persons 表、model、handler |
GET/POST/DELETE /api/db/link-tags |
ContentPage 链接标签配置 | ❌ 无 | 需新增 link_tags 表、model、handler |
GET /api/db/book?action=section-orders&id=xxx |
ContentPage 章节内排序 | ❌ 无 | 需在 db_book 中扩展 action |
PUT /api/db/book action=move-sections |
ContentPage 跨章移动 | ❌ 无 | 需在 db_book 中扩展 |
GET /api/db/config/full?key=article_ranking_weights |
ContentPage | ✅ 有 | DBConfigGet 已支持 |
GET /api/db/config/full?key=pinned_section_ids |
ContentPage | ✅ 有 | 同上 |
GET /api/db/config/full?key=unpaid_preview_percent |
ContentPage | ✅ 有 | 同上 |
GET /api/db/config/full?key=ckb_config |
FindPartnerPage CKBConfigPanel | ✅ 有 | 同上 |
GET /api/db/ckb-leads?mode=submitted&page=1&pageSize=50 |
FindPartnerPage 存客宝线索 | ❌ 无 | 需新增 ckb_leads 相关接口 |
| admin_dashboard、admin_rfm、admin_shensheshou、admin_user_rules | Dashboard、神奢手等 | ❌ 无 | 可选,按业务需要 |
2.2 小程序端
- yongxu 已完善:@提及、推荐码、baseUrl、goBackOrToHome、一键收款、免费章节、存客宝限频、退款等
- 策略:保留 yongxu 小程序全部逻辑,不引入 dev 对 miniprogram 的简化(dev 可能删减了功能)
2.3 管理端(soul-admin)
- yongxu 已有:ContentPage、ChapterTree、UsersPage、DashboardPage 等基础版本
- dev 增量:更丰富的 ContentPage(persons、link-tags、RichEditor @提及)、FindPartnerPage 整页、UsersPage 扩展
- 策略:在 soul-api 补全接口后,再选择性迁入 dev 的页面组件
三、迁移原则
- 基准分支:yongxu(功能完善、三端协调良好)
- 不引入:dev 对 miniprogram 的改动(避免覆盖 yongxu 的 @提及、推荐码等)
- 分阶段:先补 soul-api 缺口 → 再迁入 soul-admin 新页面/组件
- 三端协调:每迁入一个管理端功能,必须确保 soul-api 已有对应接口,且小程序若依赖该配置则已对齐
四、执行方案(按优先级)
阶段 1:soul-api 补全(必须)
| 序号 | 任务 | 说明 |
|---|---|---|
| 1.1 | 新增 db/persons |
model.Person、表 persons,GET/POST/DELETE,供 ContentPage @提及人物配置 |
| 1.2 | 新增 db/link-tags |
model.LinkTag、表 link_tags,GET/POST/DELETE,供 ContentPage 链接标签 |
| 1.3 | 扩展 db/book |
增加 action=section-orders、action=move-sections(若 ContentPage 需要) |
| 1.4 | 新增 db/ckb-leads |
若存在 ckb_leads 表,GET 支持 mode=submitted/contact 分页;否则先建表再实现 |
阶段 2:soul-admin 迁入(在阶段 1 完成后)
| 序号 | 任务 | 说明 |
|---|---|---|
| 2.1 | ContentPage 增强 | 从 dev 迁入 persons、link-tags 配置区,RichEditor @提及(需 persons 接口) |
| 2.2 | FindPartnerPage | 从 dev 迁入整页 + Tab(CKBConfigPanel、CKBStatsTab 等),需 ckb_config、ckb-leads 接口 |
| 2.3 | UsersPage 扩展 | 从 dev 迁入 UserDetailModal 等扩展(若字段与 yongxu 的 db/users 一致) |
| 2.4 | 菜单与路由 | 在 AdminLayout、App.tsx 中增加 FindPartner 入口(若尚未有) |
阶段 3:可选(按业务需要)
| 序号 | 任务 | 说明 |
|---|---|---|
| 3.1 | admin_dashboard、admin_rfm 等 | 若 Dashboard 需要新统计维度,再补充 |
| 3.2 | dev 的 scripts、飞书导出等 | 与三端功能无直接关系,可单独评估 |
五、补全功能清单(可直接用于开发)
5.1 soul-api 必须补全
[ ] 1. persons 表 + model + GET/POST/DELETE /api/db/persons
[ ] 2. link_tags 表 + model + GET/POST/DELETE /api/db/link-tags
[ ] 3. db_book 扩展:GET ?action=section-orders&id=xxx
[ ] 4. db_book 扩展:PUT action=move-sections(若 ContentPage 需要)
[ ] 5. ckb_leads 表(若无)+ GET /api/db/ckb-leads?mode=xxx&page=1&pageSize=50
5.2 soul-admin 迁入(依赖 5.1)
[ ] 6. ContentPage:persons 配置区、link-tags 配置区
[ ] 7. ContentPage:RichEditor @提及(调用 persons)
[ ] 8. FindPartnerPage + Tabs(CKBConfigPanel、CKBStatsTab、FindPartnerTab 等)
[ ] 9. AdminLayout:增加「找伙伴」菜单项(若尚无)
[ ] 10. UsersPage:UserDetailModal 扩展(按需)
5.3 小程序
[ ] 无需变更,保留 yongxu 全部逻辑
六、迁移操作建议
6.1 不推荐直接 merge devlop
- dev 与 yongxu 在 miniprogram、部分 soul-api 上存在冲突
- 直接 merge 会覆盖 yongxu 的完善功能
6.2 推荐方式
- 保持当前在 yongxu 分支
- 按阶段 1:在 yongxu 上直接开发 soul-api 补全(persons、link-tags、db_book 扩展、ckb-leads)
- 按阶段 2:用
git show devlop:path/to/file取出 dev 的 soul-admin 文件,手工合并到 yongxu,并确认调用的接口已在 soul-api 中存在 - 每完成一个功能:过 soul-change-checklist,做三端联调验证
6.3 冲突文件处理(若必须 diff 参考)
miniprogram/*:以 yongxu 为准,不采纳 dev 的改动soul-admin/*:选择性采纳 dev 的 UI/组件,确保调用的 API 已在 yongxu 的 soul-api 中实现soul-api/*:以 yongxu 为基础,缺什么补什么(persons、link-tags、ckb-leads 等)
七、总结
| 项目 | 结论 |
|---|---|
| 基准 | yongxu |
| dev 价值 | 管理端 UI 增强(ContentPage、FindPartnerPage、UsersPage) |
| dev 问题 | 未配套 soul-api 的 persons、link-tags、ckb-leads 等,导致功能不全 |
| 迁移路径 | 先补 soul-api → 再迁入 soul-admin 新页面 |
| 小程序 | 不改动,保留 yongxu |
文档生成:2026-03-09 | 供开发执行参考