005 java毕设课程设计——云溪名宿酒店预订管理系统
2026/9/8 19:13:25 网站建设 项目流程

云溪名宿酒店预订管理系统

基于Spring Boot 2.7 + MyBatis + MySQL (MariaDB) + Vue3 + Element-Plus的前后端分离酒店预订管理系统。

技术栈

技术
后端Java 1.8 / Spring Boot 2.7.18 / MyBatis / JWT / Maven
数据库MySQL 5.7+ / MariaDB (库名yunxi_hotel)
前端Vue3 / Vite / Element-Plus / Pinia / Vue Router / Axios / ECharts

功能模块

用户端

  • 注册 / 登录(JWT 鉴权)
  • 首页轮播图、房型列表展示
  • 在线预订(选日期 → 选房型 → 系统自动分配房间)
  • 订单管理(余额支付 / 模拟支付、取消、详情)
  • 订单评价(1-5 星评分 + 文字)
  • 会员中心(余额充值、余额/积分流水、我的评价)
  • 客房送餐(浏览菜单点餐、余额支付、送餐订单进度跟踪与取消)
  • 个人中心(修改资料、修改密码)

管理端

  • 数据看板(今日营收、订单数、用户数、7 日趋势图、订单状态分布、热门房型)
  • 房型管理(增删改查、上下架、图片上传)
  • 房间管理(增删改查、房态设置:空闲/维修)
  • 订单管理(列表、详情、办理入住、办理退房、取消)
  • 评价管理(列表、回复、删除)
  • 用户管理(列表、启用/禁用、重置密码)
  • 轮播图管理(增删改查、图片上传)
  • 送餐菜单管理(增删改查、分类、图片上传、上下架)
  • 送餐订单管理(状态流转:接单→制作→配送→送达、取消退款)
  • 操作日志(管理员操作审计)

页面功能截图

用户端

页面截图
首页(轮播图 + 房型列表 + 日期查询)
登录页
注册页
房型详情(在线预订)
我的订单(状态筛选 / 支付 / 取消 / 评价)
会员中心(余额 / 积分流水 / 充值 / 资料)
客房送餐(点餐 + 送餐订单)

管理端

页面截图
数据看板(今日营收 / 趋势图 / 状态分布)
房型管理
房间管理
订单管理(入住 / 退房 / 取消)
评价管理(回复 / 删除)
用户管理(禁用 / 重置密码)
轮播图管理
送餐菜单管理
送餐订单管理(接单 → 配送 → 送达)
操作日志

业务规则

  • 预订前提:创建房型后必须为其创建房间(房间数 ≥ 1 且房型上架),前台首页才会展示该房型并支持预订;预订时系统自动分配日期区间内空闲的房间
  • 订单状态:0待支付 1已支付 2已入住 3已退房 4已完成 5已取消
  • 待支付订单15 分钟未支付由定时任务自动取消
  • 房间冲突校验:同一房间在重叠日期区间内不允许重复预订
  • 积分规则:消费 1 元 = 1 积分,100 积分 = 1 元(下单时抵扣)
  • 充值赠送:充值 1 元 = 1 积分
  • 取消已支付订单:自动退还余额、返还抵扣积分、扣回消费获得积分
  • 管理端操作日志通过@OperationLog(module, action)注解 + AOP 切面自动记录(新增/编辑/删除/状态变更等写操作)
  • 客房送餐:送餐订单状态0待接单 1制作中 2配送中 3已完成 4已取消,余额支付,配送前可取消退款,消费获得积分

演示数据

sql/init.sql内置一套账目自洽的演示数据(重建数据库即得,时间均相对当前日期生成):

数据规模
用户3 个(user1 / user2 / user3,密码 123456,含余额 / 积分)
订单20 条,覆盖 0-5 全部状态;支付流水 18 条、充值记录 10 条
评价9 条(部分带管理员回复)
余额流水 / 积分流水33 / 34 条,与用户账户余额、积分严格自洽(1 元 = 1 积分)
送餐订单 / 明细8 / 15 条,覆盖接单、制作、配送、完成、取消各状态
操作日志16 条
房型 / 房间 / 轮播图 / 菜品5 / 10 / 3 / 6

房型、餐饮、轮播图均使用对应类别的实拍图片素材。以上截图即基于该演示数据生成。

目录结构

backend/ # Spring Boot 后端 src/main/java/com/yunxi/hotel/ controller/ # 控制层 service/ + impl/ # 业务层 mapper/ # MyBatis Mapper 接口 entity/ # 实体类 dto/ # 请求参数对象 common/ # Result / PageResult / UserContext config/ # Web 配置(跨域/拦截器/静态资源) interceptor/ # JWT 拦截器 exception/ # 全局异常处理 task/ # 定时任务(订单超时取消) aspect/ # AOP 切面(操作日志) annotation/ # 自定义注解(@OperationLog) util/ # Jwt / Md5 / 单号生成 src/main/resources/ mapper/ # MyBatis XML application.yml # 配置文件 frontend/ # Vue3 前端 src/ api/ # API 请求封装 router/ # 路由 views/user/ # 用户端页面 views/admin/ # 管理端页面 layout/ # 后台布局 utils/ # axios 封装 public/images/ # 房型/餐饮/轮播图素材 sql/init.sql # 数据库初始化脚本

快速启动

1. 初始化数据库

mysql-uroot-p<sql/init.sql

2. 启动后端

cdbackend mvn spring-boot:run

默认端口8080,数据库连接配置见application.yml

3. 启动前端

cdfrontendnpminstallnpmrun dev

默认端口5173,已配置/api反向代理到后端8080

默认账号

角色账号密码
管理员adminadmin123
用户user1123456

预览地址

  • 用户端:http://localhost:5173
  • 管理端:http://localhost:5173/admin/login

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询