SpringBoot3+Vue3+MySQL校园打印店在线下单取件系统源码前后端分离
一、项目简介
本项目是一套面向校园打印店场景的在线下单与取件管理系统,采用前后端分离架构。前端为 Vue 3 单页应用,后端为 Spring Boot 3 提供的 RESTful API 服务,数据库使用 MySQL 8.x。系统包含普通用户端和管理员端两大角色:普通用户可在线提交打印订单、上传文件、查看订单进度与站内消息;管理员负责订单全流程处理、用户管理、价格配置、轮播图维护及经营数据统计。系统内置完整的订单状态流转机制(待处理→打印中→可取件→已完成/已拒绝),并支持基于打印参数的价格自动计算。项目附带数据库初始化脚本与万字开发文档,适合作为课程设计或毕业设计的参考项目,也适合开发者在此基础上进行二次扩展。
二、技术栈
| 技术 | 说明 |
|---|---|
| 后端框架 | Spring Boot 3.x |
| ORM 框架 | MyBatis-Plus(分页插件、逻辑删除、自动填充) |
| 权限认证 | JWT(拦截器校验 Token,按角色控制访问) |
| 前端框架 | Vue 3(Composition API + script setup) |
| 状态管理 | Pinia(用户登录状态管理) |
| 路由管理 | Vue Router 4(含路由守卫鉴权) |
| UI 组件库 | Element Plus |
| 图表库 | ECharts 5 |
| 构建工具 | Vite |
| 数据库 | MySQL 8.x |
| Excel 导出 | Apache POI(XSSFWorkbook) |
| 文件上传 | Spring MultipartFile(本地磁盘存储) |
三、功能模块
管理员端
- 工作台数据总览:以卡片形式展示总订单数、今日订单数、今日营业额、待处理订单数四项核心经营指标,帮助管理员快速掌握门店运营概况。
- 订单状态分布图表:使用 ECharts 环形图展示待处理、打印中、可取件、已完成、已拒绝五种状态的订单数量占比,便于识别业务瓶颈环节。
- 近 7 天订单趋势:折线图展示每日订单数量变化,柱状图展示每日营业额变化,辅助分析短期经营波动。
- 订单管理列表:分页查看全部订单,支持按状态筛选,支持按订单编号、联系人姓名、联系电话进行模糊搜索,方便定位目标订单。
- 订单处理操作:对待处理订单可执行“接单”(状态变为打印中)或“拒单”(需填写拒绝原因);对打印中订单执行“完成打印”(状态变为可取件);对可取件订单执行“确认取件”(状态变为已完成),形成完整闭环。
- 订单详情查看:查看订单完整信息(订单编号、打印参数、联系人、费用明细、当前状态、拒绝原因),并支持下载订单中关联的打印文件。
- 用户管理:分页查看注册用户列表,支持按用户名/姓名/手机号搜索,支持启用或禁用用户账号,实现账号维度的权限控制。
- 价格配置管理:查看当前打印价格规则列表,可修改黑白/彩色打印的单面价格及双面倍率,价格规则变更后新订单自动按最新配置计算。
- 轮播图管理:支持新增、编辑、删除轮播图,可设置标题、上传本地图片、配置排序值,支持启用/停用轮播图,用于运营位配置。
- 经营数据统计:按日期范围查询每日订单数与营业额,支持导出 Excel 报表(包含日期、订单数、营业额三列),便于线下归档与分析。
普通用户端
- 注册与登录:通过用户名、密码、真实姓名、手机号完成账号注册,注册后自动分配“STUDENT”角色;登录成功后返回 JWT 令牌及用户基本信息,前端持久化存储并用于后续请求鉴权。
- 账号安全:支持修改个人资料(真实姓名、手机号、头像),支持原密码校验后修改登录密码,保障账号安全。
- 提交打印订单:填写联系人姓名、联系电话,选择打印类型(黑白/彩色)、打印方式(单面/双面)、纸张尺寸、打印份数,并可填写备注信息,提交后生成待处理订单。
- 上传打印文件:支持上传单个或多个文件,单文件大小限制为 10MB,系统自动记录文件名、存储路径、文件大小、文件类型,并与订单关联。
- 自动价格计算:根据打印类型、纸张尺寸、单双面、份数及文件总页数自动计算订单总费用,价格规则由管理员后台统一配置,用户下单时实时展示费用明细。
- 我的订单列表:分页查看个人订单列表,支持按订单状态(待处理/打印中/可取件/已完成/已拒绝)筛选,按提交时间倒序排列,便于追踪最新进度。
- 订单详情查看:查看订单完整信息,包括订单编号、打印参数、联系人信息、费用明细、当前状态及拒绝原因(若被拒),信息透明可追溯。
- 下载打印文件:在订单详情中可预览文件列表,并下载已上传的原始文件,方便用户核对或复用打印内容。
- 站内消息通知:接收订单状态变更通知(提交成功、已接单、已拒绝、可取件、已完成),支持标记单条已读或全部已读,避免遗漏重要状态更新。
- 未读消息提醒:顶部导航展示未读消息数量角标,点击进入消息中心查看通知详情,提升用户操作效率。
四、项目总结
本项目在技术层面覆盖了 Spring Boot 3 + MyBatis-Plus 的后端标准实践,以及 Vue 3 + Pinia + Element Plus 的前端工程化方案,前后端通过 JWT 完成身份认证与角色鉴权,结构清晰、边界明确。业务层面完整实现了校园打印店的订单流转闭环,从用户下单、文件上传、自动计价,到管理员接单、打印、取件确认,再到消息通知与数据统计,功能覆盖全面且贴近实际运营场景。项目附带数据库初始化脚本与万字文档,上手门槛低,适合作为 Java Web 全栈开发的课程设计、毕业设计参考项目,也适合开发者在此基础上扩展支付、打印队列调度、多门店支持等进阶能力。
界面展示
交付内容
本项目为完整交付,包含:
- 完整后端源码
- 完整前端源码
- 数据库初始化脚本(SQL)
- 万字项目文档(设计文档 / 论文,可作课程设计、毕业设计参考)
获取完整源码
完整前后端源码 + 数据库脚本 + 万字项目文档见 Gitee 仓库:https://gitee.com/kangxihuang/src-K339
