电影院购票管理系统(源码+数据库+万字文档)
一、系统介绍
本项目是一个前后端分离的电影院购票系统,包含:
-
用户端:浏览电影、选座购票、订单与个人中心相关功能。
-
管理端:影片、分类、影厅、排片、订单、用户、系统配置等后台管理功能。
系统形态:
-
后端服务:
cinema_admin -
前端应用:
cinema_web -
默认联调地址:
-
后端:
http://localhost:8080/api -
前端(Vite开发环境):
http://localhost:5173
二、角色与权限
当前代码中的账号类型为两类:
-
普通用户(User)
-
管理员(Admin)
前端通过路由守卫区分用户端和管理端访问;后端使用 JWT 工具类和过滤器。
三、主要功能模块
1)用户端功能
-
用户认证:注册、登录、用户名/手机号校验
-
首页与电影:首页聚合、电影列表、电影详情、榜单
-
购票流程:场次选择、座位选择、订单确认、支付(模拟)
-
订单能力:订单列表、取消订单、退款申请、支付状态查询
-
用户中心:个人信息、余额查询与充值、收藏、观影历史
2)管理端功能
-
管理员登录(含验证码接口)
-
仪表盘统计:今日票房、今日订单、用户统计、近 7 日收入
-
影片管理:增删改查、状态管理、多分类关联
-
分类管理:分类增删改查、启停、排序
-
影厅管理:增删改查、状态管理
-
排片管理:增删改查、批量排片、状态管理、按日期查询
-
订单管理:订单列表、详情、取消、退款审核
-
用户管理:分页查询、详情、启停、信息维护
-
系统配置:按配置项读写系统参数
-
文件上传:图片上传并映射静态访问路径
-
通知能力:邮件参数配置后可发送测试邮件
四、技术栈
后端(cinema_admin)
-
Java 1.8
-
Spring Boot 2.6.13
-
Spring MVC
-
MyBatis + XML Mapper
-
MySQL(驱动 5.1.49)
-
JWT(JJWT 0.11.5)
-
JavaMail(邮件测试通知)
-
Maven
前端(cinema_web)
-
Vue 3
-
Vite
-
Element Plus
-
Vue Router 4
-
Pinia
-
Axios
-
ECharts(用于后台统计图)
五、项目结构
dianyingyuangoupiao/├─ cinema_admin/ # 后端│ ├─ src/main/java/net/jingsky/cinema_admin/│ │ ├─ controller/ # 接口层│ │ ├─ service/ # 业务层│ │ ├─ mapper/ # Mapper接口│ │ ├─ entity/ dto/ vo/ # 数据对象│ │ ├─ config/ # Web/JWT等配置│ │ └─ CinemaAdminApplication.java│ └─ src/main/resources/│ ├─ application.yml│ ├─ mapper/ # MyBatis XML│ └─ db/ # SQL脚本├─ cinema_web/ # 前端│ ├─ src/│ │ ├─ views/ # 页面│ │ ├─ layouts/ # 用户/管理布局│ │ ├─ router/ # 路由与守卫│ │ ├─ stores/ # Pinia状态│ │ └─ utils/request.js # Axios封装│ ├─ package.json│ └─ vite.config.js└─ uploads/ # 上传目录(运行时生成/使用)
六、数据库说明
SQL 脚本目录:cinema_admin/src/main/resources/db/
主要表:
-
用户与管理员:
user、admin -
电影域:
movie、movie_category、movie_category_relation -
放映域:
hall、schedule -
订单域:
orders、order_item(另有order、order_detail脚本痕迹) -
用户行为:
user_favorite、user_history -
系统配置:
system_config
七、环境与运行
1)基础环境
-
JDK 1.8+
-
Maven 3.6+
-
MySQL 5.7+
-
Node.js(项目已在较新版本生态下可运行)
2)后端启动
-
创建并导入数据库脚本(
db目录下 SQL)。 -
修改
cinema_admin/src/main/resources/application.yml中数据库配置。 -
启动
CinemaAdminApplication或执行:
3)前端启动
进入前端代码目录
npm installnpm run dev
前端默认访问地址由 Vite 输出,为 http://localhost:5173。
管理员账号密码:admin/admin123
测试用户账号密码:testuser/user123
八、接口与联调说明
-
前端请求基地址:
cinema_web/src/utils/request.js中配置为http://localhost:8080/api -
当前请求拦截器按用户端/管理端附带
X-User-Id或X-Admin-Id -
常见接口分组:
-
用户认证:
/user/* -
管理员认证:
/admin/login、/admin/captcha -
电影/分类:
/movie/*、/category/* -
影厅/排片:
/hall/*、/schedule/* -
订单:
/order/*、/admin/order/* -
用户行为:
/favorite/*、/history/* -
统计:
/admin/statistics/dashboard -
系统配置与上传:
/admin/config/*、/admin/upload/image
九、系统界面截图










夜雨聆风