项目概述
该项目是一个基于Vue3和SpringBoot技术栈的智慧景区管理系统,采用前后端分离架构,构建了涵盖游客端和管理端的统一平台。系统支持景区信息展示、购票管理、评论系统和数据统计等功能,旨在提升游客的用户体验,优化景区管理效率,并增强服务的智能化与便捷性。
技术栈详情
后端技术栈
- 核心框架: Spring Boot 3.3.5
- 编程语言: Java 17
- 数据库: MySQL 8.0+
- ORM框架: MyBatis 3.0.3
- 缓存服务: Redis 6.0+
- 安全认证: JWT Token认证机制
- 支付集成: 支付宝SDK 4.34.0
- 文件存储: 阿里云OSS
- 内容安全: 敏感词过滤 0.22.0
前端技术栈
- 核心框架: Vue 3.5.13
- 构建工具: Vite 6.2.0
- UI组件库: Element Plus 2.9.6
- 路由管理: Vue Router 4.5.0
- 状态管理: Pinia 3.0.1
- HTTP客户端: Axios 1.8.3
- 数据可视化: ECharts 5.6.0
- 样式处理: Sass 1.85.1 + Tailwind CSS 3.4.19
核心功能模块实现
1. 景区信息管理模块
后端实现
- 控制器 :
AttractionsController.java- 处理景区信息的增删改查操作 - 服务层 :
AttractionsServiceImpl.java- 实现景区业务逻辑 - 数据访问 :
AttractionsMapper.java- 景区数据持久化操作 - 实体类 :
Attractions.java- 景区信息实体
前端实现
- 页面组件 :
src/views/attractions/index.vue- 景区列表页面 - 详情页面 :
src/views/attractions/detail/index.vue- 景区详情页面 - 管理页面 :
src/views/admin/attractions/index.vue- 景区管理后台 - API接口 :
src/apis/attraction.js- 景区相关API调用
核心功能
- 景区信息展示(名称、描述、位置、价格、状态)
- 景区图片管理(多图展示、主图设置)
- 开放时间配置(按星期设置开放时间)
- 景区状态管理(开放/关闭状态切换)






2. 购票与订单管理模块
后端实现
- 控制器 :
OrderController.java- 处理订单相关操作 - 服务层 :
OrderServiceImpl.java- 订单业务逻辑实现 - 数据访问 :
OrderMapper.java、OrderItemMapper.java- 订单数据操作 - 支付集成 :
AlipayController.java- 支付宝支付接口 - 实体类 :
Order.java、OrderItem.java- 订单相关实体
前端实现
- 预订组件 :
src/components/BookingDialog.vue- 门票预订对话框 - 订单页面 :
src/views/user-center/order/index.vue- 用户订单管理 - 管理页面 :
src/views/admin/orders/index.vue- 订单管理后台 - 支付页面 :
src/views/payment/success.vue- 支付成功页面 - API接口 :
src/apis/order.js- 订单相关API
核心功能
- 在线门票预订(选择日期、数量、价格计算)
- 支付宝支付集成(沙箱环境)
- 订单状态管理(待支付、已支付、已完成、已取消)
- 订单明细管理(景点信息、数量、单价、总价)




3. 活动管理模块
后端实现
- 控制器 :
EventController.java- 活动相关操作处理 - 服务层 :
EventServiceImpl.java- 活动业务逻辑 - 数据访问 :
EventMapper.java- 活动数据操作 - 实体类 :
Event.java、EventParticipant.java- 活动及参与者实体
前端实现
- 活动列表 :
src/views/events/index.vue- 活动列表页面 - 活动详情 :
src/views/events/detail/index.vue- 活动详情页面 - 管理页面 :
src/views/admin/events/index.vue- 活动管理后台 - 用户活动 :
src/views/user-center/event/index.vue- 用户活动管理 - API接口 :
src/apis/event.js- 活动相关API
核心功能
- 活动信息管理(名称、描述、时间、地点、参与人数等)
- 活动参与管理(用户报名、参与状态跟踪)
- 活动状态管理(进行中、已结束、已取消)
- 活动收藏功能(用户收藏感兴趣的活动)
- 活动图片展示(活动封面图片管理)



4. 评论管理模块
后端实现
- 控制器 :
CommentController.java- 评论相关操作处理 - 服务层 :
CommentServiceImpl.java- 评论业务逻辑 - 数据访问 :
CommentMapper.java- 评论数据操作 - 敏感词过滤 :
SensitiveWordUtil.java- 评论内容安全过滤 - 实体类 :
Comment.java- 评论信息实体
前端实现
- 评论组件: 集成在景点详情页面中
- 管理页面 :
src/views/admin/comments/index.vue- 评论管理后台 - 用户评论 :
src/views/user-center/comment/index.vue- 用户评论管理 - API接口 :
src/apis/comment.js- 评论相关API
核心功能
- 多级评论系统(支持回复功能)
- 评分系统(1-5分评分机制)
- 敏感词自动过滤(确保评论内容安全)
- 评论审核机制(待审核、通过、不通过)
- 评论图片上传支持


5. 数据统计模块
后端实现
- 控制器 :
DashboardController.java- 数据统计接口 - 服务层 :
DashboardServiceImpl.java- 统计业务逻辑 - 数据访问 :
DashboardMapper.java- 统计数据查询 - 实体类: 多种统计结果实体(销售额、订单数量等)
前端实现
- 数据看板 :
src/views/admin/dashboard/index.vue- 管理后台数据统计 - 图表组件: 集成ECharts实现数据可视化
- API接口 :
src/apis/admin.js- 统计数据API
核心功能
- 用户统计(总数、今日新增、管理员数量)
- 订单统计(销售额、订单数量、完成率)
- 评论统计(评论总数、评分分布)
- 活动统计(活动数量、参与人数)
- 访客统计(登录用户统计)
- 实时数据可视化展示



用户管理模块
后端实现
- 控制器 :
UserController.java- 用户注册、登录、信息管理 - 服务层 :
UserServiceImpl.java- 用户业务逻辑 - 数据访问 :
UserMapper.java- 用户数据操作 - 安全认证: JWT Token认证机制
- 验证码 :
CaptchaController.java- 图形验证码生成 - 操作日志 :
UserLogController.java- 用户操作记录
前端实现
- 登录页面 :
src/views/login/index.vue - 注册页面 :
src/views/register/index.vue - 用户中心 :
src/views/user-center/index.vue - 个人信息 :
src/views/user-center/userInfo/index.vue - API接口 :
src/apis/user.js
核心功能
- 用户注册(邮箱/手机号注册,验证码校验)
- 用户登录(多种登录方式,安全验证)
- 权限管理(三级角色:游客、普通管理员、高级管理员)
- 个人信息管理(头像上传、信息修改)
- 操作日志记录(完整的用户行为审计)



其他功能页面



系统架构与安全设计
前后端分离架构
- API设计: RESTful风格接口,统一响应格式
- 跨域处理: CORS配置,支持多域名访问
- 错误处理: 统一的异常处理机制
- 接口文档: 完整的API接口定义
安全机制设计
- 身份认证: JWT Token认证,防止未授权访问
- 数据安全: 敏感信息MD5加密存储
- 内容安全: 敏感词过滤系统,确保评论内容安全
- 操作审计: 完整的用户操作日志记录
- 验证码机制: 图形验证码防止暴力破解
性能优化策略
- 缓存应用: Redis热点数据缓存,提升响应速度
- 数据库优化: 连接池配置、索引优化
- 文件存储: 阿里云OSS CDN加速,图片压缩处理
数据库设计
核心数据表
用户相关表
- users: 用户基本信息(ID、用户名、密码、邮箱、手机号、角色、头像等)
- user_logs: 用户操作日志记录
景区相关表
- attractions: 景区基本信息(名称、描述、位置、状态、价格等)
- attraction_images: 景区图片管理
- attraction_opening_hours: 景区开放时间配置
订单相关表
- orders: 订单主表(用户ID、总金额、状态、支付方式等)
- order_items: 订单明细表(景点ID、数量、单价、参观日期等)
活动相关表
- events: 活动信息(名称、描述、开始时间、结束时间、地点、参与人数等)
- event_participants: 活动参与记录(活动ID、用户ID、参与状态等)
评论相关表
- comments: 评论信息(用户ID、目标ID、类型、内容、评分、状态等)
系统管理表
- error_logs: 系统错误日志
- feedbacks: 用户反馈信息
如需源码,请加QQ:3616087835