三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

SpringBoot2+Vue3+MySQL健身房管理系统源码 前后端分离实战项目

SpringBoot2+Vue3+MySQL健身房管理系统源码 前后端分离实战项目

一、项目简介

FitPro 智能健身房管理系统是一套基于 Spring Boot 2 + Vue 3 的前后端分离项目,面向健身房日常运营场景,覆盖会员卡管理、课程预约、教练排班、设备维护、训练计划、消费记录、数据统计等核心业务。系统内置管理员、前台、教练、会员四种角色,各角色拥有独立的功能入口与操作边界。后端提供 RESTful API 供前端调用,前端通过 Vue Router 管理路由、Vuex 管理全局状态,整体结构清晰,适合作为毕业设计、课程设计或 Java 全栈开发的学习与二次开发参考。

二、技术栈

技术说明
后端框架Spring Boot 2.x
ORMMyBatis Plus
权限认证JWT(无状态 Token 鉴权)
前端框架Vue 3(Composition API)
状态管理Vuex 4
前端构建Vue CLI / Vite
UI 组件库Element Plus
HTTP 客户端Axios
数据库MySQL 5.7+
文件存储本地文件上传(头像)
文档Swagger / Knife4j 接口文档

三、功能模块

管理员端

  • 仪表盘数据统计:展示会员总数、教练总数、总预约数、已确认预约数、设备总数、设备损坏数、设备维护中数、课程总数、有效会员卡数等核心运营指标,便于管理者快速掌握系统运行状态。
  • 人员管理:查看所有用户列表,支持按角色(ADMIN/STAFF/COACH/MEMBER)和关键词(姓名/用户名/手机号)筛选,分页展示;支持新增用户(检查用户名唯一性)、编辑用户(修改姓名、手机号、邮箱、角色等,不可改密码)、删除用户、启用/禁用用户(禁用后无法登录)。
  • 会员管理:按角色 MEMBER 筛选查看会员列表,支持关键词搜索;可延长指定会员卡的有效期,修改结束日期并将卡状态置为有效。
  • 设备管理:查看设备列表,支持按名称/分类关键词、设备状态(NORMAL/FAULT/MAINTENANCE)筛选;支持新增设备(填写名称、分类、位置、购买日期、维护周期)、编辑、删除设备。
  • 设备维护记录:按设备 ID 查看维护历史,按维护日期倒序展示维护内容、费用、操作人;添加维护记录时自动更新设备的上次/下次维护日期,并将设备状态置为 NORMAL。
  • 课程管理:查看课程列表,支持按课程类型、名称关键词筛选;支持新增课程(课程名称、类型、教练、封面、描述、最大人数、时长)、编辑课程。
  • 排班管理:查看所有课程排班,按日期和开始时间升序排列,展示课程名称与教练姓名;支持新增排班(选择课程、教练、日期、起止时间、最大人数,初始人数为 0,状态为 1)、编辑、删除排班。
  • 轮播图管理:查看轮播图列表,按排序字段升序;支持新增(标题、图片 URL、链接 URL、排序、状态)、编辑、删除轮播图,用于控制首页展示内容。

普通用户端

  • 首页轮播图展示:按状态与排序字段获取活跃轮播图,用于首页推广位展示。
  • 公开课程浏览:查看课程列表,支持按课程类型、名称关键词筛选,分页展示课程封面、简介、教练等信息。
  • 未来 7 天可预约排班:按日期范围筛选,仅显示状态为 1 的课程排班,供未登录用户了解近期课程安排。
  • 注册与登录:支持用户名密码注册,注册时自动赋予 MEMBER 角色,禁止注册管理员账号;登录后获取 JWT Token。
  • 个人信息管理:查看当前登录用户的基本资料、头像、角色;支持修改真实姓名、手机号、邮箱、性别等字段,不可修改密码与角色。
  • 修改密码:需验证原密码正确后,将密码更新为新密码。
  • 头像上传:通过文件上传接口上传图片,返回图片 URL 并更新用户头像字段。

会员端

  • 会员卡信息查看:获取当前有效的会员卡,展示卡类型、起止日期、金额、状态;另可查看所有历史会员卡记录,按创建时间倒序排列。
  • 课程排班浏览与预约:默认展示未来 7 天可预约排班,支持自定义日期范围;选择排班 ID 创建预约,成功后排班当前人数 +1,满员时排班状态自动置为 0(不可预约)。
  • 取消预约:仅允许取消自己未取消、未完成的预约,取消后排班人数 -1 并恢复状态为 1。
  • 我的预约记录:按创建时间倒序展示预约列表,含课程名称、教练姓名、排班日期、起止时间、状态(PENDING/CONFIRMED/COMPLETED/CANCELLED)。
  • 训练计划查看与反馈:查看教练为自己制定的训练计划列表(含教练姓名、计划标题、内容、反馈);可对指定计划提交文字反馈。
  • 消费记录查询:按创建时间倒序展示个人消费记录,含类型(CARD/COURSE/OTHER)、金额、描述、操作人。

教练端

  • 我的课程排班:按教练 ID 筛选查看自己的排班,支持按开始/结束日期范围查询,默认展示未来 14 天。
  • 我的课程列表:查看自己负责的课程,仅显示状态为 1 的课程。
  • 预约记录管理:查看与自己排班相关的预约记录,分页展示会员姓名、课程名称、预约状态、排班日期;可执行确认预约(PENDING → CONFIRMED)和完成预约(→ COMPLETED)操作。
  • 训练计划管理:查看自己制定的训练计划列表(按教练 ID 筛选,含会员姓名、标题、内容、反馈);支持创建训练计划(为指定会员设置标题、内容,状态默认为 1)、编辑已创建的计划。
  • 会员列表查看:按角色 MEMBER 筛选,支持按姓名/用户名/手机号关键词搜索,分页展示会员信息,便于教练选择训练计划对象。

前台端

  • 会员列表查看与注册:按角色 MEMBER 筛选查看会员,支持关键词搜索;可注册新会员,创建时自动赋予 MEMBER 角色并检查用户名唯一性。
  • 会员卡办理:为指定会员创建会员卡,填写卡类型、起止日期、金额;办理成功后自动生成一条消费记录(类型为 CARD,描述为“XX卡办理”)。
  • 会员卡续费:延长指定会员卡的有效期,增加卡内金额;续费成功后自动生成消费记录,描述为“会员卡续费”。
  • 会员卡列表查询:分页展示所有会员卡,含会员用户名、真实姓名、卡类型、起止日期、金额、状态。
  • 预约记录管理:分页查看所有预约记录,含会员姓名、课程名称、教练姓名、排班日期、预约状态;可确认预约(PENDING → CONFIRMED)。
  • 可预约排班查看:默认展示未来 7 天、状态为 1 的课程排班,供前台引导会员选课。

四、项目总结

本项目技术选型主流,Spring Boot 2 + MyBatis Plus + Vue 3 + Element Plus 的组合在中小型管理系统开发中非常典型。业务模块划分清晰,四种角色权限边界明确,覆盖了健身房运营的核心链路。代码结构上,后端按 Controller-Service-Mapper 分层,前端按视图组件 + Vuex 管理状态,适合初学者理解前后端交互、JWT 鉴权、文件上传、数据统计等常见开发场景。同时,项目内置了完整的业务逻辑(如预约满员自动置位、办卡自动生成消费记录、设备维护自动更新日期等),具备一定的业务深度,可直接作为课程设计或企业级项目的二次开发底座。

界面展示

交付内容

本项目为完整交付,包含:

  • 完整后端源码
  • 完整前端源码
  • 数据库初始化脚本(SQL)
  • 万字项目文档(设计文档 / 论文,可作课程设计、毕业设计参考)

获取完整源码

完整前后端源码 + 数据库脚本 + 万字项目文档见 Gitee 仓库:https://gitee.com/kangxihuang/src-K282

← 返回列表