悦动健身--连锁会员小程序系统(UniApp+NodeJS 签到/约课/购课/约教练)产品系统

我要开发同款
胡涛2026年09月23日
6阅读

技术信息

语言技术
TypeScriptNode.jsMySQLuniappLinux
系统类型
小程序轻应用H5Linux
行业分类
企业服务生活旅游

作品详情

行业场景

连锁健身房通常有多个门店,面临会员到店靠纸质登记、团课私教靠微信口头预约、次卡/课包消课靠人工对账、教练排班与场地冲突难同步等问题。悦动健身面向连锁场馆,做一套会员自助小程序+门店后台:会员在线查课、买月卡/次卡/私教包、预约团课或私教、到店扫码/前台核销签到;总部和门店通过后台统一维护课程、教练、场地、会员卡和营业报表。后端用 NodeJS+TS 快速迭代业务接口,UniApp 一套代码出微信小程序并保留 H5/App 扩展能力,MySQL 存业务数据,Redis 处理登录态、热点课表、预约锁和实时计数。

功能介绍

01.多门店与账号:总部/区域/门店结构,微信登录获取 openid,手机号绑定;角色分会员、教练、前台、店长、总部管理员,RBAC 权限。
02.会员与卡包:会员档案、体测基础信息;月卡/季卡/年卡/次卡/私教课包/储值卡,卡状态有效/过期/冻结,余次、有效期、续费与消费明细。
03.课程中心:团课分类(瑜伽/动感单车/普拉提/搏击等)与排期,课程容量、剩余名额、教练、场地、时间;私教课展示资质、擅长、评分、可约时段。
04.查课与约课:小程序按门店/日期/类型/教练筛选课表;团课预约、取消、候补;私教按日历选时段并做会员时间冲突、教练时间冲突、场地冲突校验。
05.买课与支付:卡种/课包下单,微信支付下单与回调,订单、发票申请、退款审批;优惠券/新人体验价可扩展。
06.签到核销:到店二维码/小程序码扫码签到,前台或教练端核销;团课按预约核销、私教按课节核销,自动扣次/扣课包。
07.教练管理:教练资料、资质标签、排班、可约时段、我的课表、学员名单、课后评价与训练反馈;门店端看课时业绩基础数据。
08.通知与提醒:订阅消息发预约成功、课前提醒、取消/候补递补、到期续费、消课汇总;WebSocket 给前台/教练端推新预约和核销事件。
09.门店与总部后台:门店、场地、课程库、卡种、教练、会员、订单、签到、退款、营销活动配置;会员活跃、课程热度、教练出勤。
10.风控与运维:JWT 鉴权、敏感接口限流、手机号/实名脱敏、操作日志、异常预约补偿、Linux+Nginx 部署与日志切割。

项目实现

前端用 UniApp+Vue3+TS 开发微信小程序,按会员端、教练/前台端、管理后台 H5 组织页面;统一封装请求拦截器、Token 刷新、错误兜底,使用 Pinia 管理用户、门店、购物车/预约草稿等状态。课表、卡包、订单、个人中心按组件拆分,长列表做分页/虚拟化处理,小程序按分包降低首屏体积,manifest 配置合法域名与微信权限。

后端用 Node.js+TS,按 controller/service/repository 分层;NestJS 场景可拆 auth、member、store、course、booking、order、pay、coach、report、admin 等模块。RESTful 接口供小程序和后台调用,Swagger 出文档;JWT 做登录态,RBAC 中间件按角色和门店数据范围鉴权,关键操作写审计日志。

业务核心在预约与消课一致性:课程排期表存场地、教练、开始/结束时间、总名额、已约名额;约课请求先校验会员卡可用范围、课程未开始、取消规则,再用事务+行锁或 Redis 分布式锁控制名额扣减。低并发可用 MySQL SELECT … FOR UPDATE 锁排期行,判断余量后插入预约并自增已约数,取消/候补释放名额;抢课高峰用 Redis 对 scheduleId 加锁或原子计数预处理,数据库最终落盘保证不超卖。 私教预约额外校验教练时段不重叠、会员同一时间不重复约、场地不被其他课程占用。

数据层用 MySQL 存门店、用户、角色、会员卡、课程、排期、预约、订单、支付、消课、体测、评价、操作日志等结构化数据;Redis 缓存热门课表、门店信息、登录 Token、验证码、限流计数、当日签到/预约实时数,并对

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论