健身房私教课小程序需求规格说明书

目录

1. 业务目标

  • 线上化拓客与转化:通过小程序实现私教课程(1v1、1v2)的在线展示与售卖,缩短交易链路,沉淀用户到"课时卡"资产。
  • 履约流程自动化:将传统的"微信群约课"转化为系统化排课与预约,降低沟通成本,避免撞单和漏签。
  • 闭环评价体系:通过学员评分和评价机制,量化教练服务质量。
  • 数据驱动运营:为管理层提供全景数据仪表盘(财务收入、课时消耗、教练绩效),辅助精细化门店运营决策。

2. 角色定义

  1. 学员 (Student):小程序端的核心用户,购买课程、预约教练、上课签到、课后评价。
  2. 教练 (Trainer):小程序端/管理端的执行者,设置排课计划、接收预约通知、确认上课、核销课时。
  3. 老板/管理员 (Admin/Owner):管理后台的使用者,统筹人员配置、课程上架、查看全局业务数据和财务报表。

3. 核心业务流程

  1. 商品转化流:学员浏览课程详情 -> 下单支付 -> 转化生成学员个人的"课时卡"(含总课时与剩余课时)。
  2. 预约履约流:教练发布可用时间段 (Schedule) -> 学员选择可用时间预约 (Booking) -> 扣减冻结单次课时 -> 系统通知教练。
  3. 上课核销流:到达上课时间 -> 教练端点击"开始上课" -> 学员端进行"在线签到" -> 课时正式扣除(核销完成)。
  4. 评价反馈流:课程状态变更为已完成 -> 学员收到评价推送 -> 提交星级评分与评语 -> 沉淀至教练考核数据。

4. 用户故事

  • 作为学员,我希望能在小程序上看到自己还剩多少节私教课,以便及时安排接下来的锻炼计划。
  • 作为学员,我希望能直观地看到我的教练本周哪些时间段有空,只需点击几下就能锁定上课时间。
  • 作为教练,我希望在学员预约成功后能收到自动通知,并且能在日历视图中看到我每天的排期,以免遗漏课程。
  • 作为老板,我希望在管理后台能看到每个教练本月的上课总数和平均评分,以便于计算绩效和薪资。
  • 作为老板,我希望每天能看到系统的总收入和课时消耗情况,以掌握健身房的真实运营健康度。

5. 功能描述

5.1 用户端(微信小程序)

5.1.1 工作台/首页

课程商城

  • 展示 1v1、1v2 私教课程列表、价格、教练介绍
  • 点击课程卡片进入详情页,可查看课程详细介绍、教练信息、包含课时数、价格等

立即购买

  • 课程详情页提供"立即购买"按钮
  • 进入订单确认页面,可选择优惠方式(新用户优惠、满减优惠等)
  • 确认后进入支付流程

支付功能

  • 支持微信支付、支付宝等多种支付方式
  • 支付成功后生成订单并跳转到支付成功页面

我的课时卡

  • 展示已购买的课时卡,包含:总课时、剩余课时、有效期
  • 在"课时记录"页面可查看充值记录(购买课程)和课消记录(上课签到)

消息通知

  • 系统通知中心,显示约课情况、上课提醒、订单状态变更等消息

5.1.2 预约排课

健身教练列表

  • 展示所有健身教练的基本信息,包括头像、姓名、职称、评分、专长、认证等
  • 支持按专长筛选和搜索

教练详情

  • 查看教练详细信息,包括个人简介、从业年限、擅长领域、学员评价等

教练课表浏览

  • 按日期展示所选教练的"可用"时间段列表
  • 显示课程名称、时间、地点、剩余名额

发起预约

  • 选定时间段并发起预约,系统进行课时余额校验
  • 预约成功后跳转到预约成功页面

预约列表管理

  • 在"我的课程"页面以日历视图查看自己的约课信息
  • 点击课程在下方显示约课列表
  • 支持取消预约(课前规定时间内)和上课签到

5.1.3 上课履约

签到功能

  • 到达上课时间后,学员可在"我的课程"页面点击"签到"按钮完成上课签到
  • 系统自动扣除课时

预约成功提示

  • 预约成功后显示预约详情,包括课程名称、教练、时间、地点、签到码等信息

5.1.4 用户中心


用户注册/登录

  • 未注册用户显示注册引导页面
  • 点击注册进入注册页面,填写姓名、手机号、验证码、密码等信息完成注册
  • 已登录用户显示个人信息和会员等级

个人资料编辑

  • 支持修改头像、姓名、手机号等个人信息


我的订单

  • 查看所有订单记录,按状态筛选(全部、待支付、已支付、已取消)
  • 显示订单详情

客服与联系我们

  • 提供客服入口和联系我们功能(预留接口)

底部导航

  • 首页、预约、消息、我的四个主要入口

5.2 管理端(Web 管理后台)

5.2.1 数据大盘

核心指标看板

  • 实时展示:今日营收、累计营收、本月课时消耗总数、今日预约数、活跃学员数、总课时数

营收趋势图

  • 近7日营收趋势柱状图,显示每日营收金额

出勤趋势图

  • 近7日出勤趋势折线图,显示每日预约和签到人数

销售排行

  • 课程销量排行榜(热销课程Top5)

5.2.2 课程管理

课程商品管理

  • 新建/编辑课程信息(名称、类型1v1/1v2、售价、包含课时数、图文详情)
  • 支持上架/下架操作

课程列表

  • 展示所有课程,包括状态、价格、课时数、已售数量等信息

5.2.3 教练管理

教练档案维护

  • 添加/编辑教练信息,包括姓名、职称、手机号、邮箱、从业年限、专长、认证、个人简介、工作地点等

教练状态管理

  • 设置教练在职/离职状态,控制是否在前端展示

教练列表

  • 展示所有教练的基本信息、评分、学员数、课程数等统计

5.2.4 排课管理

课程排课

  • 为课程安排具体的时间段,选择日期、时间、教练、地点、最大容量

排课日历

  • 按日期查看当天的所有排课,显示时间、课程、教练、地点、预约情况

预约管理

  • 查看每个排课的预约学员名单,包括学员信息、预约时间、签到状态
  • 支持手动签到

排课状态

  • 排课状态包括:待开始、进行中、已结束、已取消

5.2.5 学员管理

学员档案

  • 查看所有学员的基本信息,包括姓名、手机号、会员等级、会员号、注册时间、状态

课时管理

  • 查看学员的课时卡信息,包括总课时、已用课时、剩余课时、累计消费

预约记录

  • 查看学员的预约历史,包括课程名称、教练、时间、状态

订单记录

  • 查看学员的购买记录,包括课程名称、金额、支付状态

课时记录

  • 查看学员的充值记录(购买课程)和课消记录(上课签到)

5.2.6 订单管理

订单列表

  • 展示所有订单,包括订单号、学员信息、课程信息、金额、状态、支付方式、下单时间

订单筛选

  • 按状态筛选(全部、待支付、已支付、已取消、已退款)

订单操作

  • 查看订单详情、确认收款、取消订单

订单统计

  • 统计订单总数、总营收、待支付订单数、今日订单数

5.2.7 支出管理

支出记录

  • 记录健身房各项支出,包括类别、金额、日期、描述、收款方、支付方式、状态

支出分类

  • 支出类别包括:教练工资、场地租金、水电费、设备维护、办公用品、其他支出

分类统计

  • 按类别统计支出金额,显示每个类别的总支出

支出操作

  • 新增支出、编辑支出、删除支出、标记为已支付

5.2.8 财务报表

收支概览

  • 统计总收入、总支出、净利润、利润率、本月营收及增长率

月度收支趋势

  • 过去12个月的收入和支出对比柱状图

净利润趋势

  • 月度净利润变化折线图

收入构成

  • 收入来源占比饼图(私教课程、团课、会员卡、其他)

支出构成

  • 支出占比饼图(教练工资、场地租金、设备维护、水电费、其他)

交易明细

  • 近期交易记录列表,显示收入/支出类型、金额、分类、日期

报表导出

  • 支持导出财务报表(预留功能)

5.2.9 评价管理

评价列表

  • 展示所有学员评价,包括学员信息、教练信息、课程名称、评分、评价内容

评价筛选

  • 按评分筛选(1-5星)、按状态筛选(显示中/已隐藏/被举报)

评价操作

  • 查看详情、回复评价、隐藏/显示评价、删除评价

评价统计

  • 统计总评价数、平均评分、五星好评数、待处理举报数

举报处理

  • 查看被举报的评价及举报原因,支持处理举报

5.2.10 优惠券管理

优惠券列表

  • 展示所有优惠券活动,包括优惠码、名称、类型、金额/折扣、有效期、使用进度

优惠券筛选

  • 按状态筛选(进行中/已暂停/已过期)、按类型筛选(固定金额/百分比折扣)

新建优惠券

  • 创建优惠券,设置优惠码、名称、描述、类型、金额/比例、使用门槛、发放总量、每人限领、有效期、适用范围

编辑优惠券

  • 修改优惠券信息

优惠券操作

  • 暂停/恢复发放、删除优惠券、复制优惠码

优惠券统计

  • 统计优惠券总数、进行中数量、已发放数量、已使用数量

5.2.11 提成管理

提成记录

  • 展示所有教练提成记录,包括教练信息、订单信息、提成金额、状态

提成筛选

  • 按状态筛选(待确认/已确认/已结算/已取消)、按类型筛选(课程/会员卡/商品)

提成确认

  • 确认待处理的提成记录

提成结算

  • 对已确认的提成进行结算支付

提成规则

  • 管理提成规则,包括规则名称、适用类型、提成比例、固定金额、最低/最高提成限制

提成统计

  • 统计提成总额、待确认金额、已结算金额、提成记录数

5.2.12 教练排班

排班看板

  • 全局日历视图,老板可纵览所有教练的排班情况

6. 核心数据表结构

User (用户表 - 包含学员、教练、管理员)

统一鉴权与身份管理。

字段名 类型 说明
id UUID (PK) 主键
role Enum 角色:STUDENT / TRAINER / ADMIN
name String 姓名
phone String 手机号,唯一
email String 邮箱
avatar String 头像URL
password String 密码哈希
member_level String 会员等级:普通会员/黄金会员/钻石会员
member_no String 会员号,唯一
status Enum 状态:ACTIVE / INACTIVE / SUSPENDED
created_at DateTime 创建时间
updated_at DateTime 更新时间

Course (课程商品表)

老板在后台上架的商品SKU。

字段名 类型 说明
id UUID (PK) 主键
title String 课程名称,如"增肌塑形 1v1 季卡"
type Enum 课程类型:1_ON_1 / 1_ON_2 / GROUP
price Decimal 售卖价格
original_price Decimal 原价,用于显示优惠
total_sessions Int 包含的总课时数
duration Int 单次课程时长(分钟)
description Text 课程描述
image String 课程图片URL
coach_id FK 关联教练ID(可选)
status Enum 状态:ACTIVE / INACTIVE
sales_count Int 已售数量
created_at DateTime 创建时间
updated_at DateTime 更新时间

CourseCard (学员课时卡表)

订单转化后的资产表。

字段名 类型 说明
id UUID (PK) 主键
student_id FK 学员ID
course_id FK 课程ID
order_id FK 关联订单ID
total_sessions Int 初始总课时
used_sessions Int 已使用课时
remaining_sessions Int 当前剩余有效课时
valid_start Date 有效期开始
valid_end Date 有效期结束
status Enum 状态:VALID / EXPIRED / EXHAUSTED / REFUNDED
created_at DateTime 创建时间
updated_at DateTime 更新时间

Order (订单表)

字段名 类型 说明
id UUID (PK) 主键
order_no String 订单号,唯一
student_id FK 学员ID
course_id FK 课程ID
course_name String 课程名称(冗余)
original_price Decimal 原价
discount_amount Decimal 优惠金额
final_price Decimal 实付金额
sessions Int 购买课时数
status Enum 状态:PENDING / PAID / CANCELLED / REFUNDED
payment_method String 支付方式
pay_time DateTime 支付时间
remark String 备注
created_at DateTime 创建时间
updated_at DateTime 更新时间

TrainerSchedule (教练排班表)

教练放出自己可被预约的"坑位"。

字段名 类型 说明
id UUID (PK) 主键
trainer_id FK 教练ID
course_id FK 课程ID
date Date 排班日期
start_time Time 开始时间
end_time Time 结束时间
location String 上课地点
capacity_total Int 总容量:1v1为1,1v2为2,团课为N
capacity_booked Int 已预约人数
status Enum 状态:SCHEDULED / IN_PROGRESS / COMPLETED / CANCELLED
created_at DateTime 创建时间
updated_at DateTime 更新时间

Booking (预约履约表)

承载单次上课的生命周期,是系统的核心枢纽表。

字段名 类型 说明
id UUID (PK) 主键
booking_no String 预约号,唯一
student_id FK 学员ID
course_card_id FK 课时卡ID
schedule_id FK 排班ID
course_name String 课程名称(冗余)
coach_name String 教练名称(冗余)
date Date 上课日期
start_time Time 开始时间
end_time Time 结束时间
location String 上课地点
status Enum 状态:UPCOMING / COMPLETED / CANCELLED / NO_SHOW
check_in_time DateTime 签到时间
is_deducted Boolean 是否已扣除课时
created_at DateTime 创建时间
updated_at DateTime 更新时间

SessionRecord (课时记录表)

记录课时的充值和消耗流水。

字段名 类型 说明
id UUID (PK) 主键
student_id FK 学员ID
course_card_id FK 课时卡ID
type Enum 类型:RECHARGE(充值)/ CONSUME(消费)
sessions Int 课时数量,正数为充值,负数为消费
course_name String 关联课程名称
booking_id FK 关联预约ID(消费时)
order_id FK 关联订单ID(充值时)
remark String 备注
created_at DateTime 创建时间

Expense (支出表)

记录健身房各项支出。

字段名 类型 说明
id UUID (PK) 主键
expense_no String 支出单号,唯一
category Enum 类别:SALARY / RENT / UTILITIES / MAINTENANCE / SUPPLIES / OTHER
amount Decimal 金额
date Date 支出日期
description String 支出描述
payee String 收款方
payment_method String 支付方式
status Enum 状态:PAID / PENDING / CANCELLED
receipt_no String 收据/凭证号
remark String 备注
created_by FK 创建人ID
created_at DateTime 创建时间
updated_at DateTime 更新时间

Review (课程评价表)

字段名 类型 说明
id UUID (PK) 主键
booking_id FK 预约ID,唯一
student_id FK 学员ID
trainer_id FK 教练ID
course_id FK 课程ID
rating Int 1-5 星级评分
comment Text 文字评语
is_visible Boolean 是否显示
is_reported Boolean 是否被举报
report_reason String 举报原因
helpful_count Int 觉得有用的人数
reply_content Text 教练回复内容
reply_at DateTime 回复时间
created_at DateTime 创建时间

Coupon (优惠券表)

字段名 类型 说明
id UUID (PK) 主键
code String 优惠码,唯一
name String 优惠券名称
description String 优惠券描述
type Enum 类型:AMOUNT(固定金额)/ PERCENT(百分比折扣)
value Decimal 优惠金额或折扣比例
min_order_amount Decimal 最低订单金额
max_discount_amount Decimal 最高优惠金额(百分比类型)
total_quantity Int 发放总量
used_quantity Int 已使用数量
valid_start Date 有效期开始
valid_end Date 有效期结束
status Enum 状态:ACTIVE / INACTIVE / EXPIRED
scope Enum 适用范围:ALL / COURSE / MEMBERSHIP
applicable_courses JSON 适用课程ID列表(可选)
per_user_limit Int 每人限领数量
created_by FK 创建人ID
created_at DateTime 创建时间
updated_at DateTime 更新时间

UserCoupon (用户优惠券表)

字段名 类型 说明
id UUID (PK) 主键
user_id FK 用户ID
coupon_id FK 优惠券ID
status Enum 状态:UNUSED / USED / EXPIRED
used_at DateTime 使用时间
order_id FK 关联订单ID(使用时)
created_at DateTime 领取时间

CommissionRule (提成规则表)

字段名 类型 说明
id UUID (PK) 主键
name String 规则名称
type Enum 适用类型:COURSE / MEMBERSHIP / PRODUCT
rate Decimal 提成比例(%)
fixed_amount Decimal 固定提成金额(可选)
min_amount Decimal 最低提成金额
max_amount Decimal 最高提成金额
applicable_to JSON 适用范围:ALL 或 具体ID列表
status Enum 状态:ACTIVE / INACTIVE
created_at DateTime 创建时间
updated_at DateTime 更新时间

CommissionRecord (提成记录表)

字段名 类型 说明
id UUID (PK) 主键
commission_no String 提成单号,唯一
trainer_id FK 教练ID
order_id FK 关联订单ID
order_type Enum 订单类型:COURSE / MEMBERSHIP / PRODUCT
order_amount Decimal 订单金额
commission_rate Decimal 提成比例
commission_amount Decimal 提成金额
status Enum 状态:PENDING / CONFIRMED / PAID / CANCELLED
created_at DateTime 创建时间
confirmed_at DateTime 确认时间
paid_at DateTime 结算时间
confirmed_by FK 确认人ID
paid_by FK 结算人ID

Message (消息通知表)

字段名 类型 说明
id UUID (PK) 主键
user_id FK 接收人ID
type Enum 类型:SYSTEM / BOOKING / ORDER / REMINDER
title String 消息标题
content String 消息内容
is_read Boolean 是否已读
related_id String 关联业务ID
created_at DateTime 创建时间
相关推荐
浩冉学编程1 天前
微信小程序中基于java后端实现官方的文本内容安全识别msgSecCheck
java·前端·安全·微信小程序·小程序·微信公众平台·内容安全审核
程序鉴定师2 天前
如何选择合适的深圳小程序开发公司?
大数据·小程序
代码不加糖2 天前
从零手写简易 Taro:20 行 JSX 如何变成小程序?(硬核实战)
小程序·taro
云云只是个程序马喽3 天前
AI漫剧创作系统开发定制指南
人工智能·小程序·php
蔡俊锋4 天前
AI是一面镜子
人工智能·ai·规格说明书·ai是一面镜子
cosinmz4 天前
图片太多太乱怎么整理?分享一个我最近常用的图片转 PDF方法
经验分享·小程序·pdf
科技互联.4 天前
2026年小程序定制市场:个性化需求激增,技术深度成竞争关键
人工智能·小程序
小羊Yveesss5 天前
2026年小程序商城的现状和发展趋势
小程序
智慧景区与市集主理人5 天前
五一市集分账混乱?巨有科技智慧市集小程序实现统一收款、自动分账
大数据·科技·小程序