# 台球馆预约管理系统 **Repository Path**: GH-Z-GO/BilliardArena2 ## Basic Information - **Project Name**: 台球馆预约管理系统 - **Description**: 随着台球运动的普及和台球爱好者数量的增加,传统的人工台球厅管理方式已经无法满足现代运营需求。台球社预约管理系统旨在为台球厅提供一套完整的数字化管理解决方案,提高管理效率,优化用户体验。 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2026-03-25 - **Last Updated**: 2026-06-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: SpringBoot, JSON, JavaScript, Java ## README # 台球社预约管理系统 - 项目设计报告 ## 一、项目背景与目标 ### 1.1 项目背景 随着台球运动的普及和台球爱好者数量的增加,传统的人工台球厅管理方式已经无法满足现代运营需求。台球社预约管理系统旨在为台球厅提供一套完整的数字化管理解决方案,提高管理效率,优化用户体验。 ### 1.2 项目目标 - 实现台球桌的在线预约管理 - 支持多角色用户系统(老板、管理员、普通用户) - 提供消费记录和统计分析功能 - 简化预约流程,提升用户体验 - 实现无纸化、信息化管理 ## 二、系统架构 ### 2.1 整体架构 ``` ┌─────────────────────────────────────────────────────────┐ │ 前端 (Vue 3) │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │ 登录 │ │ Dashboard│ │ 预约管理│ │ 台球桌 │ │ │ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ │ └───────┼───────────┼───────────┼───────────┼─────────────┘ │ │ │ │ ▼ ▼ ▼ ▼ ┌─────────────────────────────────────────────────────────┐ │ 后端 (SpringBoot) │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │ 登录 │ │ 用户管理 │ │ 预约管理 │ │ 台球桌 │ │ │ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ │ │ │ │ │ │ │ │ ▼ ▼ ▼ ▼ │ │ ┌─────────────────────────────────────────────────┐ │ │ │ MyBatis-Plus Mapper │ │ │ └─────────────────────────────────────────────────┘ │ └───────────────────────────┬─────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────┐ │ MySQL 8.0 数据库 │ │ sys_user | billiard_table | reservation | consumption │ │ coach | notice │ └─────────────────────────────────────────────────────────┘ ``` ### 2.2 技术栈 | 层级 | 技术 | 版本 | |------|------|------| | 后端框架 | SpringBoot | 2.7.14 | | ORM框架 | MyBatis-Plus | 3.5.3.1 | | 数据库 | MySQL | 8.0 | | 前端框架 | Vue | 3.x | | UI组件库 | Element Plus | | HTTP客户端 | Axios | | 图表库 | ECharts | | 构建工具 | Vite | ### 2.3 项目目录结构 ``` BilliardArena2/ ├── billiard-admin/ # 后端项目 │ ├── pom.xml │ └── src/main/ │ ├── java/com/billiard/ │ │ ├── BilliardApplication.java # 启动类 │ │ ├── controller/ # │ │ │ ├── LoginController.java │ │ │ ├── UserController.java │ │ │ ├── ( **想要完整项目私信开发者** 在下面) │ │ │ └── StatsController.java │ │ ├── service/ # 服务层 │ │ │ ├── impl/ │ │ │ └── *.java │ │ ├── mapper/ # *层 │ │ │ └── *.java │ │ ├── entity/ # │ │ │ └── *.java │ │ ├── dto/ # │ │ │ └── LoginDTO.java │ │ └── common/ # *类 │ │ ├── Result.java │ │ └── MyBatisPlusConfig.java │ └── resources/ │ └── application.yml │ ├── billiard-vue/ # 前端项目 │ ├── package.json │ ├── vite.config.js │ ├── index.html │ └── src/ │ ├── main.js │ ├── App.vue │ ├── router/ │ │ └── index.js │ ├── api/ # API接口 │ │ └── *.js │ ├── views/ # 页面组件 │ │ ├── Login.vue │ │ ├── Layout.vue │ │ ├── Dashboard.vue │ │ ├── UserManage.vue │ │ ├── ( **想要完整项目私信开发者** 在下面) │ └── utils/ │ └── request.js │ └── doc/ # 文档 ├── billiard.sql # 数据库脚本 └── 项目设计报告.md ``` ## 三、功能模块说明 ### 3.1 用户角色与权限 | 角色 | 说明 | 权限 | |------|------|------| | 老板 (boss) | 系统最高管理员 | 全部功能 | | 管理员 (admin) | 日常运营管理 | 除用户管理外的全部功能 | | 普通用户 (user) | 预约消费 | 个人预约、消费、查看公告 | ### 3.2 功能模块 #### 3.2.1 登录模块 - 用户名密码登录 - 登录信息存储在 localStorage - 路由守卫验证登录状态 #### 3.2.2 用户管理 - 用户列表查看 - 用户添加/编辑/删除 - 用户状态管理 #### 3.2.3 台球桌管理 - 台球桌列表查看 - 台球桌类型:中西式台球、美式台球、斯诺克、花式台球 - 状态管理:空闲/使用中/维护中 - 时租价格设置 #### 3.2.4 预约管理 - 预约列表查看 - 预约时间段选择 - 预约状态:待确认/已确认/已完成/已取消 - 自动计算费用 #### 3.2.5 消费记录 - 消费类型:台球桌费、教练费、饮品、零食、其他 - 消费金额记录 - 消费统计 #### 3.2.6 教练管理 - 教练列表 - 教练级别:初级、中级、高级、国家一级、国家健将 - 专长领域 - 时薪设置 #### 3.2.7 公告管理 - 发布公告 - 公告列表 - 公告编辑/删除 #### 3.2.8 统计分析 - 用户总数 - 台球桌使用情况 - 今日/本月营业额 - 预约趋势图 - 消费类型分布 ## 四、数据库设计 ### 4.1 表结构 #### sys_user (用户表) | 字段 | 类型 | 说明 | |------|------|------| | id | BIGINT | 主键 | | username | VARCHAR(50) | 用户名 | | password | VARCHAR(100) | 密码 | #### billiard_table (台球桌表) | 字段 | 类型 | 说明 | |------|------|------| | id | BIGINT | 主键 | …… #### reservation (预约表) | 字段 | 类型 | 说明 | |------|------|------| | id | BIGINT | 主键 | | user_id | BIGINT | 用户ID | | table_id | BIGINT | 台球桌ID | | start_time | DATETIME | 开始时间 | …… #### consumption (消费记录表) | 字段 | 类型 | 说明 | |------|------|------| | id | BIGINT | 主键 | | user_id | BIGINT | 用户ID | | table_id | BIGINT | 台球桌ID | …… #### coach (教练表) | 字段 | 类型 | 说明 | |------|------|------| | id | BIGINT | 主键 | | name | VARCHAR(50) | 教练姓名 | | phone | VARCHAR(20) | 联系电话 | …… #### notice (公告表) | 字段 | 类型 | 说明 | |------|------|------| | id | BIGINT | 主键 | ## 五、API接口列表 ### 5.1 登录相关 | 方法 | 路径 | 说明 | |------|------|------| | POST | /api/login | 用户登录 | | GET | /api/logout | 退出登录 | ### 5.2 用户管理 | 方法 | 路径 | 说明 | |------|------|------| | GET | /api/users | 用户列表 | | GET | /api/users/all | 所有用户(下拉框用) | ### 5.3 台球桌管理 | 方法 | 路径 | 说明 | |------|------|------| | GET | /api/tables | 台球桌列表 | | GET | /api/tables/all | 所有台球桌 | | GET | /api/tables/{id} | 台球桌详情 | ### 5.4 预约管理 | 方法 | 路径 | 说明 | |------|------|------| | GET | /api/reservations | 预约列表 | | GET | /api/reservations/all | 所有预约 | ### 5.5 消费记录 | 方法 | 路径 | 说明 | |------|------|------| | GET | /api/consumptions | 消费列表 | | GET | /api/consumptions/{id} | 消费详情 | ### 5.6 教练管理 | 方法 | 路径 | 说明 | |------|------|------| | GET | /api/coaches | 教练列表 | | GET | /api/coaches/all | 所有教练 | ### 5.7 公告管理 | 方法 | 路径 | 说明 | |------|------|------| | GET | /api/notices | 公告列表 | | GET | /api/notices/latest | 最新公告 | | GET | /api/notices/{id} | 公告详情 | | POST | /api/notices | 发布公告 | | PUT | /api/notices | 更新公告 | | DELETE | /api/notices/{id} | 删除公告 | ### 5.8 统计分析 | 方法 | 路径 | 说明 | |------|------|------| | GET | /api/stats/overview | 统计数据概览 | ## 六、启动说明 ### 6.1 环境要求 - JDK 1.8+ - Node.js 16+ - MySQL 8.0+ - Maven 3.6+ ### 6.2 数据库初始化 ```bash # 登录MySQL mysql -u root -p # 执行SQL脚本 source doc/billiard.sql ``` ### 6.3 后端启动 ```bash # 进入后端目录 cd billiard-admin # 打包项目 mvn clean package # 运行项目 mvn spring-boot:run # 或 java -jar target/billiard-admin-1.0.0.jar ``` 后端启动地址:http://localhost:8080 ### 6.4 前端启动 ```bash # 进入前端目录 cd billiard-vue # 安装依赖 npm install # 启动开发服务器 npm run dev ``` 前端启动地址:http://localhost:5173 (或自动分配的端口) ### 6.5 初始账号 | 角色 | 用户名 | 密码 | |------|--------|------| | 老板 | boss | 123456 | | 管理员 | admin | 123456 | | 普通用户 | user1 | 123456 | ## 七、系统特点 1. **简洁认证**:使用 localStorage 存储用户信息,无需复杂的 JWT/Spring Security 2. **跨域支持**:后端所有接口添加 @CrossOrigin(origins = "*") 3. **前端代理**:Vite 配置代理解决跨域问题 4. **逻辑删除**:使用 MyBatis-Plus 的逻辑删除功能 5. **自动填充**:自动填充创建时间和更新时间 6. **响应式设计**:适配不同屏幕尺寸 ## 八、注意事项 1. 数据库密码配置在 application.yml 中,请根据实际情况修改 2. 前端 API 请求通过 Vite 代理到后端8080端口 3. 所有密码明文存储,仅供演示使用 4. 生产环境请务必添加安全认证机制 ## 📄 许可证 MIT License 如有问题,请查看项目文档或联系开发者。 ( **想要完整项目私信开发者** ) 创作不易,多多支持! 更多毕设、答辩项目等等 ~ 请call wx~ ![输入图片说明](doc/001.png) ![输入图片说明](doc/336.jpg)