一、项目简介
景区购票系统是一套面向游客与景区运营人员的前后端分离 Web 系统。后端采用 Spring Boot、MyBatis 和 MySQL,前端采用 Vue 2、Vue Router 与 Vuex,实现游客在线浏览景区、预订门票、管理订单,以及管理员统一维护景区、门票、订单和运营内容等业务。
系统覆盖景区展示、门票预订、订单处理、用户评价、公告发布和后台统计等核心场景,使游客购票与景区日常运营形成完整闭环。
二、系统功能
1.1 游客端功能
登录注册与个人中心
游客可注册、登录并维护个人资料。登录成功后,系统使用 JWT 令牌完成身份校验,确保订单、评价和个人资料等业务数据仅供本人访问。
景区浏览与搜索
游客可浏览景区列表,按关键词搜索目标景区,并查看景区介绍、图片和相关门票信息,为出行和购票提供参考。
门票预订与游客信息填写
游客可在景区详情页选择门票类型、游玩日期和购买数量,填写游客信息后提交门票预订。系统根据订单信息生成对应订单记录,完成线上预订流程。
订单查看与取消
游客可在个人中心查看历史订单、订单详情和当前状态;对于尚未完成的订单,可根据业务规则进行取消操作。
景区评价与公告查看
已登录游客可对景区提交评分和文字评价,为其他游客提供参考。游客还可查看平台发布的公告,及时了解景区票务和平台动态。
1.2 管理员端功能
运营数据概览
管理员可在后台首页查看用户数、景区数、门票数和订单数等基础统计数据,快速了解平台整体运营情况。
景区信息管理
管理员可新增、编辑、删除和查询景区信息,并上传景区图片,维护前台景区展示内容。
门票类型管理
管理员可维护不同景区的门票类型、价格与上下架状态,保证游客端展示的门票信息准确可用。
订单与用户管理
管理员可查看订单详情、更新订单状态,并对用户账号进行查看、启用、禁用或删除等管理操作。
公告与评价管理
管理员可发布、编辑、删除和置顶平台公告;同时可查看、回复、隐藏或删除游客评价,维护平台互动内容。
三、技术栈
| 层级 | 技术 | 说明 |
|---|---|---|
| 后端 | Spring Boot 2.3.12、Java 8 | Web 服务与业务接口 |
| 数据访问 | MyBatis 2.1.4、PageHelper | 数据持久化与分页查询 |
| 数据库 | MySQL 8.0 | 用户、景区、门票、订单、评价和公告数据存储 |
| 身份认证 | JWT(jjwt) | 登录令牌与接口鉴权 |
| 连接池 | Druid | 数据库连接管理 |
| 前端 | Vue 2.6、Vue Router、Vuex、Axios | 单页应用、路由、状态管理与接口调用 |
四、项目结构
c58/
├── src/main/
│ ├── java/com/scenic/ticket/
│ │ ├── controller/ # 景区、门票、订单、用户等接口
│ │ ├── service/ # 业务服务层
│ │ ├── mapper/ # MyBatis 数据访问层
│ │ ├── entity/ # 实体类
│ │ ├── config/ # Web 与鉴权相关配置
│ │ └── common/ # 通用返回与工具类
│ └── resources/
│ ├── mapper/ # MyBatis XML 映射文件
│ └── application.yml # 服务与数据源配置
├── frontend/ # Vue 前端项目
│ └── src/
│ ├── views/ # 页面视图
│ ├── components/ # 公共组件
│ ├── router/ # 前端路由
│ ├── store/ # Vuex 状态管理
│ └── assets/ # 静态资源
├── sql/
│ ├── scenic_ticket.sql # 建表与初始化数据脚本
│ └── update_banner_images.sql # 轮播图数据更新脚本
├── images/scenic/ # 景区图片上传目录
├── pom.xml # Maven 依赖与构建配置
└── README.md # 项目说明
五、环境要求
- JDK 8
- Maven 3.6.3+
- MySQL 8.0
- Node.js 14+
- npm
六、数据库初始化
项目数据库名称为 scenic_ticket。先创建数据库并使用 utf8mb4 字符集,再导入基础建表与初始化数据脚本;如需更新轮播图相关数据,可继续执行对应更新脚本。
mysql -u root -p --default-character-set=utf8mb4 scenic_ticket < sql/scenic_ticket.sql
mysql -u root -p --default-character-set=utf8mb4 scenic_ticket < sql/update_banner_images.sql
导入后,根据本机 MySQL 账号修改 src/main/resources/application.yml 中的数据源连接信息。
七、后端启动
mvn clean install
mvn spring-boot:run
后端默认运行在 http://localhost:8080,接口前缀为 /api。
八、前端启动
cd frontend
npm install
npm run dev
前端开发服务器默认地址为 http://localhost:8081。
九、默认账号
| 角色 | 用户名 | 密码 | 说明 |
|---|---|---|---|
| 管理员 | admin | admin123 | 后台管理账号 |
十、业务流程说明
9.1 门票预订与订单处理流程
游客登录系统后,可通过景区列表或关键词搜索浏览感兴趣的景区,进入详情页了解景区信息和可选门票。确定门票类型后,游客选择游玩日期和购买数量,填写游客信息并提交预订。
提交成功后,系统生成订单及订单详情记录,游客可在个人中心查看订单状态。管理员在后台查看订单详情,并根据订单处理情况更新订单状态;游客可持续查询订单进度,并在符合条件时取消订单。
9.2 景区与门票内容维护流程
管理员先维护景区基础资料和景区图片,再为对应景区新增或调整门票类型、价格及上下架状态。配置完成后,游客端可浏览已上架的景区和门票内容。
当景区信息、票价或展示图片发生变化时,管理员可在后台更新对应资料;系统同步使用关联景区图片展示首页轮播内容,减少重复维护。
9.3 评价与公告运营流程
游客在登录后可提交景区评分和文字评价。管理员在后台统一查看评价内容,可进行回复、隐藏或删除等处理,保障互动内容规范。
对于票务提醒、景区动态等信息,管理员可发布或置顶公告,游客在前台及时查看,从而保持平台信息传递的及时性。
十一、交付内容
- 项目完整源码,包含 Spring Boot 后端与 Vue 前端代码。
- 数据库脚本文件,包含建表、初始化数据及轮播图数据更新脚本。
- 项目说明文档,包含功能说明、技术栈、运行环境、数据库初始化与启动步骤。
本项目为个人原创,结构清晰,功能完整,适合课程设计、毕业设计和个人学习使用。如需购买项目成品或定制化需求可以联系作者。