基于SpringBoot的体育馆使用预约平台设计与实现(SpringBoot+Vue+MySQL)
面向综合性体育馆的场地预约平台:篮球场、足球场、羽毛球场等多类场地在线展示,用户按时段预约场地并在线支付,管理员统筹场地、公告与论坛内容。
一、前言
综合性体育馆同时运营篮球、足球、羽毛球等十几片场地,靠电话和前台登记根本管不过来:时段冲突、爽约无记录、收款对不上账。这个体育馆使用预约平台把"场地 — 时段 — 预约 — 支付"搬到了线上,用户按场次时间自助预约下单,管理员在后台统一管理场地与订单。
项目采用 SpringBoot + MyBatis-Plus 后端,管理端 Vue2 + ElementUI(已构建 dist),前台为商城式页面,共 10 张数据表。
二、技术栈与系统架构
| 层次 | 技术选型 |
|---|---|
| 后端框架 | SpringBoot 2.x + MyBatis-Plus,jar 部署 |
| 管理端 | Vue2 + ElementUI(已构建 dist) |
| 前台 | HTML + ElementUI + layui |
| 数据库 | MySQL(10 张表) |
| 鉴权 | Token + 拦截器统一校验 |
三、功能设计
用户端:场地浏览(按类型筛选、原价现价对比)、按时段预约下单、个人预约记录与取消、公告浏览、论坛发帖回帖、收藏场地。
管理端:场地管理(类型/价格/时段/上下架)、预约订单管理、公告管理、论坛管理、用户管理、轮播配置。
场地卡片展示原价/现价对比、可预约时段(如 8-10、10-12)与半全场标识,用户下单时按时段选择,避免时段冲突。
四、数据库设计
数据库共 10 张表:
| 表名 | 说明 |
|---|---|
| changdi | 场地(类型/原价/现价/时段/上下架/推荐) |
| changdi_order | 预约订单(时段/价格/状态:已预约-取消-已使用) |
| changdi_collection | 场地收藏 |
| yonghu / users | 用户与管理员 |
| dictionary | 数据字典(场地类型/帖子类型/订单状态等) |
| gonggao / forum | 公告与论坛 |
场地类型、订单状态等全部由 dictionary 表驱动,扩展新场地类型只加字典行;订单状态机(已预约→已使用/取消预约)覆盖了场地预约的核心流转。
五、系统演示
- 管理员登录后台,维护场地类型字典与新场地(价格、时段);
- 用户注册登录,浏览场地并按时段预约下单;
- 查看预约记录,演示取消预约;
- 管理员在订单管理中核销(标记已使用);
- 用户在论坛发帖交流,管理员审核内容。
六、小结
这套体育馆预约平台的看点在于"字典驱动的多类场地模型 + 时段预约订单流":dictionary 表让场地类型和状态机全部可配置,预约-核销的状态流转贴合真实场馆运营。SpringBoot + Vue 的组合也让前后端职责划分清晰,适合作为预约类系统的毕设参考。
完整资源已整理上传(含全部源码、数据库脚本与部署说明):
体育馆预约平台源码(SpringBoot+Vue,场地时段预约)
如果在实现类似系统时遇到问题,欢迎评论区交流。