Files
mp-pilates/docs/member-care.md
richarjiang 139882d7a1 feat: 支持课后评价与成长档案
完成后即可评价并订阅提醒,馆主可记录体测、笔记与成长照片,首页展示匿名星级均分。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-09 15:55:48 +08:00

2.8 KiB
Raw Permalink Blame History

课后评价与成长档案

入口:预约详情评价、个人中心「我的成长档案」、管理中心「课后评价」与会员档案「成长档案」。评价归属 booking 模块,档案归属 user 模块。共享契约在 packages/shared/src/types/member-care.ts

产品口径

  • 课程变为 COMPLETED 后即可评价,没有 24 小时截止。完成后 24 小时只提醒仍未评价的预约。
  • 同一预约只能评价一次。提醒状态写在 Booking 上,定时任务原子领取;发送结果未知或失败不自动重发。
  • 星级均分与 NPS 分开。NPS 只用可选的 010 推荐意愿910 推荐者、06 贬损者),按中国自然月聚合并展示样本数。
  • 教练私密笔记只在服务端过滤。课程批注必须属于该学员的已完成预约。
  • 体测允许缺项,缺项不按 0 计算。累计课时含有效补录,里程碑为 10 / 30 / 50 节。
  • 成长照片仅用于学员与馆主之间的档案,不用于公开宣传。学员本人授权或撤回,馆主不能代授权。误传或学员主动删除会同时删除数据库记录和 COS 对象。

部署配置

新增环境变量(见 packages/server/.env.example

变量 作用
WX_SUBSCRIBE_TEMPLATE_CLASS_REVIEW 课后评价订阅消息模板 ID

成长照片与馆图共用 COS_BUCKETCOS_SECRET_IDCOS_SECRET_KEYCOS_REGION。对象写在 progress/{userId}/ 下,上传带私有 ACL读取用约 60 秒签名 URL不落库公共链接。小程序合法域名沿用现有 COS 域名即可。

评价提醒模板字段由服务端按预约填充:thing1 课程名称(工作室名)、thing2 课程教练Iristime3 课程时间、thing4 温馨提示。未配置模板 ID 时定时任务不领取预约。

回退:先回退应用代码。新增表可保留;progress/ 下对象不会被旧代码读取。不要在生产直接 DROP TABLE

迁移

目录 packages/server/prisma/migrations/20260909120000_member_care/migration.sql。发布时先 prisma migrate deploy,再发布后端,最后发布小程序。

验收清单

  • 学员在 CONFIRMED 或 COMPLETED 且未评价时都可以订阅提醒;核销后仍能订阅。
  • 完成后可立即评价;重复提交返回已评价。
  • 首页匿名均分不含评论文案管理端趋势按中国自然月NPS 与星级分开展示。
  • 私密笔记学员不可见;馆主在学员授权前不能读取照片,授权后可看,撤回后不能再签发。
  • 误传照片可删除,删除后档案和 COS 对象都不再保留。
  • 体测可只填一项,柔韧度允许负值;累计课时含未撤销补录。
  • 未配置评价模板时,定时任务不领取预约。
  • 小程序真机确认可上传、可用签名链接预览成长照片。