Files
soul-yongping/.cursor/meeting/2026-03-10_小程序新旧版对比与dashboard接口新增.md

5.0 KiB
Raw Blame History

会议纪要 - 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 完全相同):

  1. chapters.wxss:旧版多 .tag-vip(金色增值标签样式)
  2. read.wxss:旧版 .paragraph .mentionpadding: 0 4rpx

结论:新版的亮点仅为 loadDashboardStats 后端接口调用,其余功能旧版更完整。

二、my.js loadDashboardStats 移植

将 Mycontent-temp 中的 loadDashboardStats() 移植到旧版 miniprogram/pages/my/my.js

改动:

  1. initUserStatus() 改造:去掉本地缓存占位(随机时间、标题 章节 ${id}),初始化清零后调 loadDashboardStats()
  2. 新增 loadDashboardStats() 方法:调用 /api/miniprogram/user/dashboard-stats?userId=xxx,同步 readSectionIds 到 globalData 和 Storage获取真实 recentChaptersreadCounttotalReadMinutesmatchHistory

三、后端 dashboard-stats 接口新增

soul-api/internal/handler/user.go 新增 UserDashboardStats,路由注册:GET /api/miniprogram/user/dashboard-stats

参考 Mycontent-temp 实现并优化了 3 处 bug

  1. 去重seenRecent map 防止同一章节重复出现在「最近阅读」
  2. 最小 1 分钟:阅读不足 60 秒时显示 1 分钟而非 0
  3. 错误状态码DB 失败返回 500 而非 200+success:false

编译通过,数据来源:

  • readSectionIds/readCountreading_progress
  • totalReadMinutesduration ÷ 60秒转分
  • recentChaptersreading_progress JOIN chapters(最近 5 条去重)
  • matchHistorymatch_records 计数

四、富文本渲染现状分析(未实施,待办)

两版均为纯文本渲染TipTap HTML 格式(粗体、标题、列表、引用等)被 contentParser.js 全部剥除。

建议方案:用 <rich-text> 组件渲染 HTML@mention 替换为带颜色 span通过外层 bindtap + dataset 实现点击。本次未实施。


会议决议

  1. 旧版miniprogram为线上正确版本,新版仅供样式预览,不反向同步功能
  2. loadDashboardStats 已移植到旧版 my.js阅读统计改为后端真实数据
  3. 后端 dashboard-stats 接口已实现并编译通过,可直接上线使用
  4. 富文本渲染待后续迭代:用 <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 是预览分支,功能不及主线,不作为迁移基准
  • 新旧版并存时,以功能更完整的主线版本为准,按需吸收新版的接口优化