当前位置: 首页 > news >正文

体育馆场地管理系统

体育馆场地管理系统

**下载地址:**https://download.csdn.net/download/qq_24428851/91940376

项目简介

这是一个完整的体育馆场地管理系统,采用前后端分离架构,包含用户前端、管理后台和后端服务。系统支持场地预约、用户管理、预约管理、数据统计等功能,为体育馆提供现代化的场地管理解决方案。

技术栈

后端

  • Java 11- 编程语言
  • Spring Boot 2.7.18- 应用框架
  • MyBatis Plus 3.5.3.1- ORM框架
  • MySQL 8.0+- 数据库
  • Spring Security- 安全框架
  • JWT- 身份认证
  • Maven- 项目管理工具

前端

  • Vue 3.3.4- 前端框架
  • Element Plus 2.3.8- UI组件库
  • Vite 4.4.5- 构建工具
  • Axios 1.4.0- HTTP客户端
  • Pinia 2.1.6- 状态管理
  • Vue Router 4.2.4- 路由管理
  • ECharts 5.4.2- 图表库(管理端)

项目结构

gym-management-system/ ├── backend/ # 后端SpringBoot项目 │ ├── src/main/java/com/gym/management/ │ │ ├── entity/ # 实体类 │ │ │ ├── User.java # 用户实体 │ │ │ ├── Venue.java # 场地实体 │ │ │ ├── VenueType.java # 场地类型实体 │ │ │ └── Booking.java # 预约实体 │ │ ├── mapper/ # MyBatis Mapper │ │ ├── service/ # 业务逻辑层 │ │ ├── controller/ # 控制器 │ │ │ ├── AuthController.java # 认证控制器 │ │ │ ├── UserController.java # 用户管理控制器 │ │ │ ├── VenueController.java # 场地管理控制器 │ │ │ ├── VenueTypeController.java # 场地类型控制器 │ │ │ └── BookingController.java # 预约管理控制器 │ │ ├── config/ # 配置类 │ │ │ ├── SecurityConfig.java # 安全配置 │ │ │ ├── MybatisPlusConfig.java # MyBatis配置 │ │ │ └── GlobalExceptionHandler.java # 全局异常处理 │ │ ├── util/ # 工具类 │ │ │ ├── JwtUtil.java # JWT工具 │ │ │ ├── PasswordUtil.java # 密码工具 │ │ │ └── JwtAuthenticationFilter.java # JWT过滤器 │ │ └── dto/ # 数据传输对象 │ │ ├── Result.java # 统一返回结果 │ │ ├── LoginRequest.java # 登录请求 │ │ ├── LoginResponse.java # 登录响应 │ │ └── RegisterRequest.java # 注册请求 │ ├── src/main/resources/ │ │ ├── application.yml # 配置文件 │ │ ├── application-dev.yml # 开发环境配置 │ │ └── sql/ │ │ ├── schema.sql # 数据库脚本 │ │ ├── update_booking_status.sql # 数据库更新脚本 │ │ └── manual_update.sql # 手动更新脚本 │ └── pom.xml # Maven配置 └── frontend/ ├── user-frontend/ # 用户前端 │ ├── src/ │ │ ├── views/ # 页面组件 │ │ │ ├── Home.vue # 首页 │ │ │ ├── Login.vue # 登录页 │ │ │ ├── Register.vue # 注册页 │ │ │ ├── Venues.vue # 场地列表 │ │ │ ├── Booking.vue # 预约页面 │ │ │ └── MyBookings.vue # 我的预约 │ │ ├── router/ # 路由配置 │ │ ├── store/ # 状态管理 │ │ └── utils/ # 工具函数 │ ├── public/ # 静态资源 │ │ └── default-venue.svg # 默认场地图片 │ ├── package.json # 依赖配置 │ └── vite.config.js # Vite配置 └── admin-frontend/ # 管理后台 ├── src/ │ ├── views/ # 页面组件 │ │ ├── Dashboard.vue # 仪表盘 │ │ ├── Login.vue # 登录页 │ │ ├── VenueManagement.vue # 场地管理 │ │ ├── BookingManagement.vue # 预约管理 │ │ └── UserManagement.vue # 用户管理 │ ├── router/ # 路由配置 │ ├── store/ # 状态管理 │ └── utils/ # 工具函数 ├── package.json # 依赖配置 └── vite.config.js # Vite配置

快速开始

1. 环境要求

  • Java 11+
  • Node.js 16+
  • MySQL 8.0+
  • Maven 3.6+

2. 数据库准备

  1. 安装MySQL 8.0或更高版本
  2. 创建数据库:
    CREATEDATABASEgym_managementDEFAULTCHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ci;
  3. 执行数据库脚本:
    mysql-uroot-pgym_management<gym-management-system/backend/src/main/resources/sql/schema.sql

3. 后端启动

  1. 进入后端目录:

    cdgym-management-system/backend
  2. 修改数据库配置(如需要):
    编辑src/main/resources/application-dev.yml中的数据库连接信息

  3. 启动后端服务:

    mvn spring-boot:run

    或者使用IDE直接运行GymManagementApplication.java

  4. 后端服务将在http://localhost:8080启动

4. 前端启动

用户前端
  1. 进入用户前端目录:

    cdgym-management-system/frontend/user-frontend
  2. 安装依赖:

    npminstall
  3. 启动开发服务器:

    npmrun dev
  4. 用户前端将在http://localhost:5173启动

管理后台
  1. 进入管理后台目录:

    cdgym-management-system/frontend/admin-frontend
  2. 安装依赖:

    npminstall
  3. 启动开发服务器:

    npmrun dev
  4. 管理后台将在http://localhost:5174启动

默认账号

管理员账号

  • 用户名:admin
  • 密码:123456

用户账号

用户可以通过注册页面创建新账号,或使用管理员账号登录用户端。

功能特性

用户端功能

  • 用户认证:用户注册、登录、退出
  • 场地浏览:按类型筛选场地、搜索场地
  • 场地预约:选择日期和时间段进行预约
  • 预约管理:查看我的预约、取消预约
  • 响应式设计:支持移动端和桌面端

管理后台功能

  • 仪表盘:数据统计、图表展示、最近预约
  • 场地管理:场地增删改查、场地类型管理
  • 预约管理:查看所有预约、确认/拒绝预约
  • 用户管理:用户列表、用户状态管理
  • 数据统计:预约趋势、场地使用率分析

API接口

认证接口

  • POST /auth/login- 用户登录
  • POST /auth/register- 用户注册

场地接口

  • GET /venue-type/list- 获取场地类型列表
  • GET /venue/list- 获取场地列表
  • GET /venue/list/{typeId}- 根据类型获取场地
  • GET /venue/{id}- 获取场地详情
  • POST /venue- 添加场地(管理员)
  • PUT /venue- 更新场地(管理员)
  • DELETE /venue/{id}- 删除场地(管理员)

预约接口

  • POST /booking- 创建预约
  • GET /booking/my- 获取我的预约
  • PUT /booking/{id}/cancel- 取消预约
  • GET /booking/venue/{venueId}/date/{date}- 获取场地某日预约情况
  • GET /booking/all- 获取所有预约(管理员)
  • PUT /booking/{id}/confirm- 确认预约(管理员)
  • PUT /booking/{id}/approve- 通过预约(管理员)
  • PUT /booking/{id}/reject- 拒绝预约(管理员)

用户管理接口

  • GET /user/list- 获取用户列表(管理员)
  • GET /user/stats- 获取用户统计(管理员)
  • PUT /user/{id}/status- 更新用户状态(管理员)
  • DELETE /user/{id}- 删除用户(管理员)

数据库设计

用户表 (user)

  • id- 用户ID(主键)
  • username- 用户名(唯一)
  • password- 密码(加密)
  • email- 邮箱
  • phone- 手机号
  • real_name- 真实姓名
  • role- 角色(USER/ADMIN)
  • status- 状态(0-禁用,1-启用)
  • create_time- 创建时间
  • update_time- 更新时间
  • deleted- 逻辑删除标记

场地类型表 (venue_type)

  • id- 类型ID(主键)
  • name- 类型名称
  • description- 类型描述
  • create_time- 创建时间
  • update_time- 更新时间
  • deleted- 逻辑删除标记

场地表 (venue)

  • id- 场地ID(主键)
  • name- 场地名称
  • type_id- 场地类型ID(外键)
  • description- 场地描述
  • capacity- 容纳人数
  • price_per_hour- 每小时价格
  • image_url- 场地图片URL
  • status- 状态(0-不可用,1-可用)
  • create_time- 创建时间
  • update_time- 更新时间
  • deleted- 逻辑删除标记

预约表 (booking)

  • id- 预约ID(主键)
  • user_id- 用户ID(外键)
  • venue_id- 场地ID(外键)
  • booking_date- 预约日期
  • start_time- 开始时间
  • end_time- 结束时间
  • total_price- 总价格
  • status- 状态(PENDING/CONFIRMED/CANCELLED/COMPLETED/REJECTED)
  • remark- 备注
  • create_time- 创建时间
  • update_time- 更新时间
  • deleted- 逻辑删除标记

开发说明

后端开发

  1. 使用MyBatis Plus进行数据库操作,支持代码生成
  2. 使用Spring Security进行权限控制,支持JWT认证
  3. 使用统一返回结果格式(Result类)
  4. 支持跨域请求,前后端分离
  5. 使用逻辑删除,数据安全
  6. 支持数据验证和异常处理

前端开发

  1. 使用Vue 3 Composition API,代码更简洁
  2. 使用Element Plus UI组件库,界面美观
  3. 使用Pinia进行状态管理,替代Vuex
  4. 使用Axios进行HTTP请求,支持拦截器
  5. 使用Vite构建工具,开发体验更好
  6. 支持响应式设计,适配多端

部署说明

后端部署

  1. 打包项目:

    mvn clean package-DskipTests
  2. 运行jar包:

    java-jartarget/gym-management-system-1.0.0.jar

前端部署

  1. 构建生产版本:

    npmrun build
  2. 将dist目录部署到Web服务器(如Nginx)

Docker部署(可选)

# 后端Dockerfile FROM openjdk:11-jre-slim COPY target/gym-management-system-1.0.0.jar app.jar EXPOSE 8080 ENTRYPOINT ["java", "-jar", "/app.jar"]

系统截图

感谢使用体育馆场地管理系统!

http://www.jsqmd.com/news/927300/

相关文章:

  • STM32H7 ADC+DMA数据采集实战:从Cache配置到环形FIFO,一个完整项目的避坑指南
  • 别再写满屏的if-else了!用Mybatis-Plus的QueryWrapper和UpdateWrapper重构你的业务代码(附实战案例)
  • 2026年评价高的山东壁挂式水表箱/SMC水表箱/山东SMC水表箱/山东户外水表箱高口碑品牌推荐 - 行业平台推荐
  • Kylin Server-10 SP1安装VMTools报错‘Device or resource busy’?手把手教你排查与修复
  • 写论文总担心重复率?书匠策AI免费查重,这个工具你必须知道!
  • 一根网线搞定!零显示器用Windows笔记本SSH连接树莓派5的保姆级避坑指南
  • [STM8] 把 STM8S 的 ADC 玩明白:一个连续采集的ADC项目
  • 输电线植物入侵检测数据集6582张VOC+YOLO格式
  • 别再只用Aircrack-ng了!用Kali Linux的Kismet做WiFi网络扫描,可视化界面更友好
  • Go语言并发模式深度解析
  • 2026年知名的实力派窗帘品牌/原创窗帘品牌可靠供应商推荐 - 品牌宣传支持者
  • 2026年云南昆明三角梅培育基地/昆明基地/昆明绣球基地/昆明亚麻基地采购必看榜 - 行业平台推荐
  • 神经网络与深度学习第四周学习笔记(3/4)
  • 别再折腾环境了!手把手教你用Vivado 2018.3和Modelsim 22.04搞定联合仿真(附库编译避坑指南)
  • 保姆级教程:在Deepin V23上配置xrdp+x11vnc,实现Windows远程桌面稳定连接
  • 2026年5月企业AI操作系统推荐:TOP5评测市场份额专业选择指南办公协同案例
  • 别再手动写多选了!手把手教你封装一个uView Picker多选组件(附完整源码)
  • 基于Python+Django的私有化云笔记系统:从痛点分析到完整实现
  • 2026年口碑好的肥东县窗帘/庐阳区窗帘/肥西县窗帘厂家精选合集 - 行业平台推荐
  • 跨境电商独立站2026最新从0-1完整搭建流程
  • AI时代新型攻击:从对抗样本到数据投毒的防御体系重构
  • 从0到1吃透Pandas!Python数据分析零基础实战教程
  • 8张RTX 4090实测:MedicalGPT项目全流程训练中的显存分配与参数调优实战记录
  • 基于助睿平台的浏览器市场与用户画像分析-数据加工
  • 2026年口碑好的基地/绣球基地/亚麻基地/三角梅养殖基地精选推荐榜 - 品牌宣传支持者
  • 2026年热门的岩棉净化板/甘肃净化板厂家精选合集 - 品牌宣传支持者
  • 保姆级教程:用Python脚本将OPIXray/HIXray安检X光数据集转成YOLO格式(附完整代码)
  • 从‘刻舟求剑’到‘乒乓切换’:图解STM32H7中DMA双缓存与Cache的协同工作
  • 2026年评价高的庐阳区窗帘/合肥窗帘/包河区窗帘/新站区窗帘长期合作厂家推荐 - 品牌宣传支持者
  • 广度优先搜索 (BFS)