5.0 KiB
5.0 KiB
会议纪要 - 2026-03-10 | 小程序新旧版对比分析 & dashboard-stats 接口新增
基本信息
- 时间:2026-03-10
- 议题:Mycontent-temp vs miniprogram 小程序新旧版功能/样式对比;loadDashboardStats 移植;后端新增聚合接口
- 参与角色:小程序开发工程师、后端工程师、团队(乘风)
讨论过程
一、新旧版小程序对比分析
用户指出 Mycontent-temp/miniprogram 为新版(仅供预览),miniprogram 为旧版(线上正确版本)。
功能差异(旧版反而功能更完整):
| 功能 | 新版 (Mycontent-temp) | 旧版 (miniprogram) |
|---|---|---|
| 首页「我的阅读」进度卡 | ❌ 缺失 | ✅ 有(已读/待读/篇章/章节四统计) |
| 首页章数徽章/Banner篇章名 | ❌ 缺失 | ✅ 有 |
| 最新新增日期/描述 | ❌ 缺失 | ✅ 有 |
| 目录页 VIP 权限 | ❌ 无 isVip | ✅ 支持 isVip + isPremium 增值章节 |
| VIP 全局状态管理 | ❌ 不写 globalData | ✅ isVip/vipExpireDate 同步到 globalData + Storage |
| 阅读页 contentParagraphs fallback | ❌ 无 | ✅ 有降级渲染 |
| my.js 阅读统计 | ✅ loadDashboardStats(后端接口) | ❌ 本地缓存占位(随机时间/标题占位) |
样式差异(仅 2 处,全局 app.wxss 完全相同):
chapters.wxss:旧版多.tag-vip(金色增值标签样式)read.wxss:旧版.paragraph .mention多padding: 0 4rpx
结论:新版的亮点仅为 loadDashboardStats 后端接口调用,其余功能旧版更完整。
二、my.js loadDashboardStats 移植
将 Mycontent-temp 中的 loadDashboardStats() 移植到旧版 miniprogram/pages/my/my.js:
改动:
initUserStatus()改造:去掉本地缓存占位(随机时间、标题章节 ${id}),初始化清零后调loadDashboardStats()- 新增
loadDashboardStats()方法:调用/api/miniprogram/user/dashboard-stats?userId=xxx,同步readSectionIds到 globalData 和 Storage,获取真实recentChapters、readCount、totalReadMinutes、matchHistory
三、后端 dashboard-stats 接口新增
在 soul-api/internal/handler/user.go 新增 UserDashboardStats,路由注册:GET /api/miniprogram/user/dashboard-stats。
参考 Mycontent-temp 实现并优化了 3 处 bug:
- 去重:
seenRecentmap 防止同一章节重复出现在「最近阅读」 - 最小 1 分钟:阅读不足 60 秒时显示 1 分钟而非 0
- 错误状态码:DB 失败返回 500 而非 200+
success:false
编译通过,数据来源:
readSectionIds/readCount→reading_progress表totalReadMinutes→duration÷ 60(秒转分)recentChapters→reading_progressJOINchapters(最近 5 条去重)matchHistory→match_records计数
四、富文本渲染现状分析(未实施,待办)
两版均为纯文本渲染,TipTap HTML 格式(粗体、标题、列表、引用等)被 contentParser.js 全部剥除。
建议方案:用 <rich-text> 组件渲染 HTML,@mention 替换为带颜色 span,通过外层 bindtap + dataset 实现点击。本次未实施。
会议决议
- ✅ 旧版(miniprogram)为线上正确版本,新版仅供样式预览,不反向同步功能
- ✅ loadDashboardStats 已移植到旧版 my.js,阅读统计改为后端真实数据
- ✅ 后端 dashboard-stats 接口已实现并编译通过,可直接上线使用
- ⬜ 富文本渲染待后续迭代:用
<rich-text>替换当前纯文本渲染
待办事项
| 责任角色 | 任务 | 状态 |
|---|---|---|
| 小程序开发工程师 | 富文本渲染升级(rich-text 组件 + mention 处理) | 待实施 |
| 后端工程师 | dashboard-stats 接口上线验证 | 待验证 |
| 小程序开发工程师 | 首页阅读进度卡确认是否需要(新版没有,旧版有) | 待确认 |
问题与作答区
| 编号 | 问题 | 作答 |
|---|---|---|
| Q1 | 内容在 DB 中是纯文本还是 TipTap HTML?富文本渲染是否紧迫? | (待确认) |
| Q2 | 首页「我的阅读」进度卡是否保留?(新版已去掉) | (待确认) |
| Q3 | dashboard-stats 接口是否需要加缓存(高频调用场景)? | (待确认) |
各角色经验与业务理解更新
小程序开发工程师
my.js阅读统计来源改为后端接口,不再用本地缓存随机占位- 富文本渲染为当前技术债,
contentParser.js仅剥 HTML 无格式保留 - 新旧版对比方法论:批量 WXSS/JS 文件 diff 精确定位差异
后端工程师
- 新增聚合接口时,优先参考已有实现版本,对比后修复 bug(去重、min值、状态码)
dashboard-stats数据模型:reading_progress JOIN chapters + match_records count
团队
- Mycontent-temp 是预览分支,功能不及主线,不作为迁移基准
- 新旧版并存时,以功能更完整的主线版本为准,按需吸收新版的接口优化