项目编码:S001
一、系统介绍
本项目是一个前后端分离的电影院购票系统,包含:
- 用户端:浏览电影、选座购票、订单与个人中心相关功能。
- 管理端:影片、分类、影厅、排片、订单、用户、系统配置等后台管理功能。
系统形态:
- 后端服务:
cinema_admin - 前端应用:
cinema_web - 默认联调地址:
- 后端:
http://localhost:8080/api - 前端(Vite开发环境):
http://localhost:5173
- 后端:
二、角色与权限
当前代码中的账号类型为两类:
- 普通用户(User)
- 管理员(Admin)
前端通过路由守卫区分用户端和管理端访问;后端使用 JWT 工具类和过滤器。
三、主要功能模块
1)用户端功能
- 用户认证:注册、登录、用户名/手机号校验
- 首页与电影:首页聚合、电影列表、电影详情、榜单
- 购票流程:场次选择、座位选择、订单确认、支付(模拟)
- 订单能力:订单列表、取消订单、退款申请、支付状态查询
- 用户中心:个人信息、余额查询与充值、收藏、观影历史
https://wxa.wxs.qq.com/tmpl/pl/base_tmpl.html
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 install
npm run dev
前端默认访问地址由 Vite 输出,为 http://localhost:5173。
管理员账号密码:admin/admin123
测试用户账号密码:testuser/user123
八、接口与联调说明
https://wxa.wxs.qq.com/tmpl/pl/base_tmpl.html
- 前端请求基地址:
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
- 用户认证:
九、系统界面截图
![图片[1]-电影院购票管理系统(源码+数据库+万字文档)-鲸云小憩](https://blog.6nb.top/wp-content/uploads/2026/04/200a9dee752c3da345ea5e12589af206-1024x494.png)
![图片[2]-电影院购票管理系统(源码+数据库+万字文档)-鲸云小憩](https://blog.6nb.top/wp-content/uploads/2026/04/2dfe227089a847a4e93ba2b3afd5b336-1024x494.png)
![图片[3]-电影院购票管理系统(源码+数据库+万字文档)-鲸云小憩](https://blog.6nb.top/wp-content/uploads/2026/04/bcb836d92126b54fdf02fda79fd626e3-1024x494.png)
![图片[4]-电影院购票管理系统(源码+数据库+万字文档)-鲸云小憩](https://blog.6nb.top/wp-content/uploads/2026/04/6de2bcf8f68ab445be841998ddb272dd-1024x494.png)
![图片[5]-电影院购票管理系统(源码+数据库+万字文档)-鲸云小憩](https://blog.6nb.top/wp-content/uploads/2026/04/054a2ef565f6455ea9a86c862dc8f500-1024x491.png)
![图片[6]-电影院购票管理系统(源码+数据库+万字文档)-鲸云小憩](https://blog.6nb.top/wp-content/uploads/2026/04/efa6689b7412a8b0efb4638f11d56bed-1024x491.png)
![图片[7]-电影院购票管理系统(源码+数据库+万字文档)-鲸云小憩](https://blog.6nb.top/wp-content/uploads/2026/04/66c8bdeca7a18e61f1e42418a738f59a-1024x491.png)
![图片[8]-电影院购票管理系统(源码+数据库+万字文档)-鲸云小憩](https://blog.6nb.top/wp-content/uploads/2026/04/47d916037ef446a1480015c1fb8ee81a-1024x491.png)
![图片[9]-电影院购票管理系统(源码+数据库+万字文档)-鲸云小憩](https://blog.6nb.top/wp-content/uploads/2026/04/9a8100884ffd05b46832a9a8cce40711-1024x491.png)
十、源码获取方式
进入【
![图片[10]-电影院购票管理系统(源码+数据库+万字文档)-鲸云小憩](https://blog.6nb.top/wp-content/uploads/2026/04/939ea9eadeccb97d05da47e98db3b65d-1024x610.jpg)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END





暂无评论内容