一、项目介绍
本项目基于 Spring Boot 和 Vue 3 等技术,构建了一个现代化的健身房管理系统。系统采用前后端分离架构,旨在为健身房提供一个便捷、高效、智能的管理平台,支持管理员、教练和会员三大角色的不同功能需求,实现健身房运营的数字化转型。
系统整体分为三个层面:管理端、教练端与会员端,三种角色权限不同,具体功能如下:
- 管理端:实现会员管理、教练管理、课程管理、器材管理、公告管理、充值管理等功能,提升管理效率。
- 教练端:实现课程管理、预约审核、个人信息管理等功能,帮助教练更好地开展工作。
- 会员端:实现课程预约、健身打卡、个人信息管理、订单查询等功能,优化用户体验。
二、软件架构
系统架构
系统采用前后端分离架构:
- 后端技术:Java、SpringBoot、MyBatis Plus
- 前端技术:Vue3、ElementUI、ECharts
- 数据库:MySQL 8.0
- 开发工具:IntelliJ IDEA、Navicat
三、系统功能
3.1 管理员功能
个人信息管理:查看和修改个人信息,包括姓名、联系方式等基本信息。
密码管理:修改登录密码,保障账号安全。
健身房信息管理:维护健身房基本信息,包括名称、会员数、教练数、联系方式、地址等,信息同步至用户端首页展示。
教练管理:对教练进行增删改查操作,启用/停用教练账号、重置密码等。
会员管理:对会员用户进行增删改查操作,包括查看会员信息、编辑会员信息、启用/停用会员账号、重置密码等。
健身知识管理:发布、编辑、删除健身知识文章,丰富平台内容。
课程类型管理:对课程类型进行字典值管理,新增、编辑、删除课程类型。
健身课程管理:新增、编辑、删除健身课程,为课程分配教练,查看课程预约情况,对预约申请进行审核,查看课程的点赞、收藏数据,查看并管理课程评论。
器材类型管理:对器材类型进行字典值管理。
健身器材管理:管理健身房内的健身器材,包括新增、编辑、删除器材信息,查看器材状态等。
用户充值:给用户钱包进行充值操作,查看所有用户的充值记录。
公告管理:新增、编辑、查看公告详情,对公告进行启用、停用操作,控制公告的展示状态。
3.2 教练功能
个人信息管理:查看和修改个人信息,包括姓名、联系方式、从业经验、擅长项目等基本信息。
密码管理:修改登录密码,保障账号安全。
健身知识查看:查看管理员发布的健身知识文章。
健身课程管理:查看自己的课程信息,包括课程名称、时间、地点、难度等信息;查看课程的预约情况,对预约申请进行审核(同意/拒绝预约、同意/拒绝取消预约);查看课程的点赞、收藏数据;查看并删除课程评论。
健身器材查看:查看健身房内的器材信息和状态。
公告查看:查看管理员发布的公告信息。
3.3 会员功能
注册和登录:通过账号密码注册和登录会员端系统。
个人信息管理:查看和修改个人信息,包括姓名、联系方式等基本信息,支持上传个人头像。
密码管理:修改登录密码,保障账号安全。
首页:查看健身房的基本信息,包括健身房名称、会员数量、教练数量、联系方式及详细地址等。
健身知识:查看管理员发布的健身知识文章,学习健身知识和技巧。
健身器材:查看健身房内的器材信息,了解器材的使用方法和注意事项。
教练团队:查看所有教练的信息,包括教练的姓名、照片、专业领域、教学风格等。
健身课程:查看所有课程信息,包括课程名称、教练、时间、难度、类型等;对感兴趣的课程可以进行预约操作;可以对课程进行点赞、收藏和留言操作。
健身打卡:在日历上进行健身打卡,记录每次健身的心率、消耗的卡路里等信息;打卡可以与课程关联;系统会统计打卡信息并以折线图等形式展示。
公告:查看管理员发布的公告。
个人中心:
我的钱包:查看钱包余额、查看充值记录和消费记录。
我的订单:查看自己的课程预约订单、取消订单、查看订单状态。
四、课程预约流程说明
课程预约是系统的核心功能之一,流程如下:
预约前检查:
- 判断该课程是否需要预约(如果不需要预约,直接可参与课程)
- 判断用户是否已预约过该课程,避免重复预约
- 判断用户钱包余额是否足够支付课程费用
- 判断课程预约名额是否已满
- 判断是否超过最迟预约时间
预约状态流转:
- 已预约:用户预约课程并付款成功后,订单进入"已预约"状态
- 预约成功:管理员或教练同意预约后,订单进入"预约成功"状态
- 已拒绝:管理员或教练拒绝预约后,订单进入"已拒绝"状态,费用原路退还
- 已取消:用户取消预约或教练同意取消后,订单进入"已取消"状态,费用原路退还
- 线下处理:教练不同意取消预约时,订单进入"线下处理"状态