基于Spring Boot 3 + Vue 3开发的体育馆管理系统,实现了用户管理、场馆管理、预订管理、课程管理、教练管理和财务管理等核心功能。
- Spring Boot 3.2.0
- Spring Security + JWT
- MyBatis-Plus 3.5.5
- MySQL 8
- Hutool工具类
- Vue 3.4
- Vite 5
- Element Plus 2.5
- Vue Router 4
- Pinia 2
- Axios 1.6
- 用户注册与登录(JWT认证)
- 个人信息管理
- 头像上传
- 密码修改
- 会员充值
- 会员等级管理
- 场馆信息管理(CRUD)
- 场馆分类管理
- 场馆图片管理
- 场馆状态管理
- 可用时段查询
- 场地预订
- 预订记录查询
- 预订取消与退款
- 预订审核
- 时段冲突检测
- 预订统计
- 课程发布与管理
- 课程报名
- 课程评价
- 我的课程查询
- 人数限制管理
- 教练信息管理
- 教练排班管理
- 教练评价
- 教练课程统计
- 评分自动计算
- 订单管理
- 收入统计
- 退款管理
- 财务报表生成
- 数据可视化
sportsmanager/
├── backend/ # 后端项目
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/sports/manager/
│ │ │ │ ├── common/ # 通用类
│ │ │ │ ├── config/ # 配置类
│ │ │ │ ├── controller/ # 控制器
│ │ │ │ ├── dto/ # 数据传输对象
│ │ │ │ ├── entity/ # 实体类
│ │ │ │ ├── exception/ # 异常处理
│ │ │ │ ├── mapper/ # Mapper接口
│ │ │ │ ├── security/ # 安全配置
│ │ │ │ ├── service/ # 业务逻辑
│ │ │ │ ├── utils/ # 工具类
│ │ │ │ └── vo/ # 视图对象
│ │ │ └── resources/
│ │ │ └── application.yml # 配置文件
│ │ └── pom.xml # Maven配置
│ └── uploads/ # 文件上传目录
├── frontend/ # 前端项目
│ ├── src/
│ │ ├── api/ # API接口
│ │ ├── assets/ # 静态资源
│ │ ├── components/ # 组件
│ │ ├── layout/ # 布局组件
│ │ ├── router/ # 路由配置
│ │ ├── store/ # 状态管理
│ │ ├── utils/ # 工具函数
│ │ ├── views/ # 页面组件
│ │ │ ├── admin/ # 管理端页面
│ │ │ └── user/ # 用户端页面
│ │ ├── App.vue
│ │ └── main.js
│ ├── index.html
│ ├── package.json
│ └── vite.config.js
├── database/ # 数据库脚本
│ ├── schema.sql # 表结构
│ └── init-data.sql # 初始数据
├── 需求分析.md
├── 功能设计.md
└── README.md
- JDK 17+
- MySQL 8.0+
- Node.js 16+
- Maven 3.6+
- 创建数据库并执行SQL脚本:
mysql -u root -p < database/schema.sql
mysql -u root -p < database/init-data.sql- 修改后端配置文件
backend/src/main/resources/application.yml:
spring:
datasource:
url: jdbc:mysql://localhost:3306/sportsmanager?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: your_passwordcd backend
mvn clean install
mvn spring-boot:run后端服务将运行在 http://localhost:8080
cd frontend
npm install
npm run dev前端服务将运行在 http://localhost:5173
- 用户名:admin
- 密码:admin123
- 用户名:user001
- 密码:123456
- 首页:展示场馆、课程、教练统计信息
- 场馆列表:浏览和搜索场馆
- 场馆详情:查看场馆信息,选择时段预订
- 课程列表:浏览可报名课程
- 个人中心:管理个人信息和余额
- 数据统计:查看系统整体运营数据
- 用户管理:管理用户信息和状态
- 场馆管理:添加、编辑、删除场馆
- 预订管理:查看和审核预订记录
- 课程管理:发布和管理课程
- 教练管理:管理教练信息和排班
- 财务管理:查看订单和收入统计
- JWT认证:基于Token的无状态认证
- 角色权限:区分普通用户和管理员
- 文件上传:支持头像和场馆图片上传
- 余额系统:支持充值和余额支付
- 会员等级:根据充值金额自动升级
- 时段管理:智能检测预订冲突
- 退款机制:根据取消时间计算退款比例
- 评价系统:支持课程和教练评价
- 统计报表:多维度数据统计和可视化
后端提供RESTful API,主要端点:
/api/auth/*- 认证相关/api/user/*- 用户相关/api/venues/*- 场馆相关/api/bookings/*- 预订相关/api/courses/*- 课程相关/api/coaches/*- 教练相关/api/admin/*- 管理员相关
- 本项目为学习案例,不包含真实支付功能
- 文件上传采用本地存储方式
- 部分管理端页面功能可根据需要扩展完善
- 生产环境需要修改JWT密钥和数据库密码
- 建议使用Nginx进行反向代理和负载均衡
- 遵循RESTful API设计规范
- 使用MyBatis-Plus简化CRUD操作
- 统一异常处理和响应格式
- 使用Lombok简化实体类代码
- 组件化开发,复用性强
- 使用Pinia进行状态管理
- Axios封装统一请求拦截
- Element Plus提供美观的UI组件
- 短信验证码登录
- 第三方登录(微信、QQ等)
- 在线支付集成
- 消息通知系统
- 数据导出功能
- 移动端适配
- 管理员操作日志
- 数据备份与恢复
MIT License
如有问题或建议,欢迎反馈。