基于springbootvue个性化推荐的外卖点餐系统一、项目概述1.1 项目背景随着线上外卖行业普及传统外卖平台存在美食推荐同质化、无法根据用户浏览、收藏、下单行为精准推送符合口味偏好菜品的问题用户需要花费大量时间筛选心仪美食同时缺少美食科普资讯、菜品详情查看、线上购物车、订单一体化下单流程点餐体验较差。本系统采用 SpringBootVue 前后端分离架构搭建基于个性化推荐的外卖点餐系统分为前台用户点餐端、后台管理员管理端两大模块基于用户浏览、收藏、下单行为实现菜品个性化推荐完整覆盖用户注册登录、美食浏览、资讯阅读、购物车、下单支付、地址管理、后台菜品 / 分类 / 订单 / 资讯管理全业务流程解决传统外卖平台推荐单一、点餐流程割裂的痛点提升用户点餐效率与消费体验。1.2 开发技术栈后端技术SpringBoot核心框架SpringBoot 2.7.x标准化 RESTful 接口分层解耦开发持久层框架MyBatis-Plus实现分页、多条件模糊检索、批量增删改查数据库MySQL 8.0存储用户、美食分类、菜品、购物车、订单、收货地址、美食资讯、收藏记录全量业务数据权限鉴权JWT Token 无状态登录认证区分普通点餐用户、系统管理员双角色拦截未登录、越权访问接口个性化推荐算法基于用户行为浏览、收藏、下单协同过滤推荐首页自动推送匹配用户口味的菜品安全机制用户密码 MD5 加密存储表单参数双重校验登录会话时效控制文件上传本地存储方案支持菜品封面、资讯配图、用户头像上传预览工具组件Hutool 工具库封装日期处理、加密工具、分页工具、文件处理工具前端技术Vue3 Element Plus核心框架Vue3 VueRouter Pinia 全局状态管理UI 组件库轻量化简约前台点餐页面、Element Plus 管理员后台管理页面网络请求Axios 全局请求 / 响应拦截器自动携带 Token、捕获登录失效、统一异常弹窗提示通用页面组件首页轮播图、菜品卡片列表、分类标签筛选、图片预览、购物车数量加减、分页控件、订单提交表单交互功能菜品收藏、加入购物车、调整购买数量、多条件菜品检索、资讯点赞收藏、收货地址新增管理1.3 系统角色划分普通点餐用户前台用户账号注册登录、浏览首页个性化推荐菜品、按分类 / 名称 / 口味检索美食查看美食资讯、菜品详情收藏心仪菜品加入购物车、调整菜品数量管理收货地址、提交订单下单个人中心维护资料、查看历史订单、我的收藏。系统管理员后台全平台数据管控权限用户账号管理、美食分类字典维护、菜品信息管理、美食资讯发布编辑、全量订单查看与状态更新、首页轮播图配置管理平台全部点餐业务数据。1.4 整体业务流程注册登录流程用户前台填写账号、姓名、手机号完成注册登录校验身份签发 JWT Token未登录无法使用购物车、下单、收藏功能管理员独立后台登录入口。用户前台点餐完整流程首页浏览个性化推荐菜品→按分类 / 口味筛选美食→查看菜品详情收藏 / 加入购物车→进入购物车调整菜品数量→新增收货地址→提交订单完成点餐。管理员后台运维流程维护美食分类、录入上架菜品、发布美食科普资讯查看所有用户订单、更新订单配送状态管理注册用户、配置首页轮播宣传图。二、系统功能模块详细设计2.1 登录注册模块2.1.1 前台登录页面简约登录表单包含账号、密码输入框、记住密码勾选框、登录按钮底部跳转注册页面未登录状态访问购物车、下单、收藏功能弹窗提示先登录。2.1.2 前台注册页面必填字段用户账号、姓名、密码、确认密码选填头像上传、性别、手机号码前端做非空、密码一致性校验后端校验账号唯一性注册信息入库。2.2 前台用户点餐功能模块顶部导航栏首页、美食资讯、美食信息、购物车、个人中心2.2.1 系统首页顶部全屏轮播横幅展示美食宣传大图个性化美食推荐区域基于用户历史行为自动推送匹配口味的菜品卡片热门菜品展示区卡片展示热门菜品封面、名称、售价美食资讯入口区域展示最新美食科普文章缩略图。2.2.2 美食信息模块菜品列表页顶部检索栏支持美食名称、口味双条件模糊搜索分类标签筛选栏全部、西餐、美食分类 2~6一键切换对应分类菜品卡片分页展示菜品每张卡片包含菜品实拍图、菜品名称、售价点击菜品卡片进入菜品详情页面。2.2.3 菜品详情页面多图轮播展示菜品实拍素材完整菜品信息展示菜品名称、售价、所属分类、口味、食材、烹饪做法、购买须知、收藏数量、点击浏览次数交互功能收藏 / 取消收藏、购买数量加减、加入购物车、立即购买直接跳转订单提交页底部切换标签菜品详情、用户评论。2.2.4 美食资讯模块顶部标题检索框输入关键词搜索科普资讯卡片分页展示资讯列表包含资讯配图、标题、正文摘要、发布时间点击卡片查看资讯完整图文内容支持点赞、收藏资讯。2.2.5 购物车模块表格展示已加入购物车的所有菜品商品名称、图片、单价、购买数量、单品总价数量加减控件实时更新单品总价与订单合计总价单条菜品操作查看菜品详情、删除购物车商品底部合计金额统计、提交订单按钮跳转订单提交页面。2.2.6 订单提交页面收货地址管理区域展示已保存地址列表支持新增收货地址商品清单区域汇总本次下单所有菜品展示图片、单价、数量、小计确认地址与商品后提交生成订单。2.2.7 个人中心模块用户修改个人注册资料、更换头像、修改登录密码查看我的收藏菜品、全部历史订单、管理收货地址列表。2.3 管理员后台管理功能模块2.3.1 系统首页数据看板展示平台核心统计数据用户总数、菜品总数、订单总数、资讯总数ECharts 可视化展示菜品销量、分类销售占比图表。2.3.2 用户管理管理所有前台注册点餐用户支持用户名检索、查看用户详情、修改用户信息、封禁违规用户账号。2.3.3 美食分类管理维护菜品分类字典西餐、中餐、甜品等支持新增、修改、删除分类名称前台用于菜品筛选归类。2.3.4 菜品信息管理全量管理平台上架菜品支持按名称 / 分类检索新增菜品、上传菜品配图、编辑菜品口味 / 食材 / 价格、下架删除无效菜品。2.3.5 美食资讯管理后台表格展示所有科普资讯按标题检索新增图文资讯、修改资讯内容、删除过期资讯。2.3.6 订单管理查看平台全部用户订单筛选订单状态待付款 / 配送中 / 已完成更新订单配送状态查看订单收货地址、下单商品明细。2.3.7 轮播图管理维护前台首页顶部轮播宣传图上传图片、设置排序、启用 / 关闭轮播展示。三、数据库核心表设计3.1 sys_user 用户表前台点餐用户字段名数据类型字段说明idbigint主键自增 IDusernamevarchar(50)登录账号唯一索引passwordvarchar(100)MD5 加密存储密码real_namevarchar(30)用户姓名avatarvarchar(255)用户头像存储地址gendertinyint性别 0 - 女 1 - 男phonevarchar(11)手机号码create_timedatetime注册时间3.2 food_type 美食分类表id、type_name 分类名称、sort 排序号3.3 food 菜品信息核心表字段类型说明idbigint主键food_namevarchar(100)菜品名称type_idbigint关联美食分类 IDimg_listvarchar(800)菜品多图地址逗号分隔pricedecimal(10,2)菜品售价tastevarchar(50)口味香辣 / 清淡等materialtext菜品食材cook_methodvarchar(100)烹饪做法buy_noticetext购买须知collect_numint收藏总数量click_numint浏览点击次数create_timedatetime上架时间3.4 food_collect 菜品收藏表user_id用户 ID、food_id菜品 ID、collect_time 收藏时间3.5 shopping_cart 购物车表id、user_id、food_id、buy_num 购买数量、create_time 加入购物车时间3.6 user_address 用户收货地址表id、user_id、link_name 联系人、link_phone 联系电话、address 详细收货地址、is_default 是否默认地址3.7 orders 订单主表id、order_no 订单编号、user_id、total_price 订单总价、address_id 收货地址 ID、status 订单状态、create_time 下单时间3.8 order_item 订单明细表id、order_id 订单 ID、food_id、food_name、food_img、price、buy_num 下单数量、sub_price 单品小计3.9 news_info 美食资讯表id、title 资讯标题、img_url 资讯封面图、content 资讯正文、publish_time 发布时间、like_num 点赞数、collect_num 收藏数3.10 banner 首页轮播图表id、img_url 轮播图片、sort 排序、is_show 是否前台展示四、核心业务与安全流程4.1 JWT 登录鉴权安全流程用户输入账号密码提交登录接口后端查询数据库比对 MD5 加密密码校验通过生成 JWT Token载荷存储用户 ID、角色类型、过期时间Token 存储至前端 localStorage所有页面请求通过请求头自动携带 Token后端全局拦截器校验Token 为空 / 过期则强制跳转登录管理员接口普通用户访问返回 403 越权提示退出登录前端清空本地 Token 缓存下次访问需重新登录鉴权。4.2 个性化推荐业务流程系统记录用户行为日志菜品浏览记录、收藏记录、下单购买记录后台协同过滤推荐算法匹配同口味、同类目高频交互菜品前台首页自动拉取算法推荐结果展示个性化菜品卡片用户每次浏览、收藏、下单行为实时更新行为数据动态调整推荐列表。4.3 完整点餐下单闭环流程用户浏览菜品将心仪商品加入购物车可调整购买数量进入购物车核对商品点击提交订单跳转地址选择页面选择已有收货地址或新增地址确认后生成订单管理员后台查看新订单更新配送状态用户个人中心查看历史订单追踪配送进度。五、项目部署说明5.1 SpringBoot 后端部署步骤本地 MySQL 执行项目提供的 SQL 初始化脚本创建全部业务数据表预置管理员测试账号修改application.yml核心配置项MySQL 数据库连接地址、账号、密码JWT 加密密钥、Token 有效过期时长文件上传本地存储路径、文件大小限制后端服务启动端口默认 8080、接口日志开关Maven 打包命令mvn clean package -DskipTests生成可执行 Jar 包Windows/Linux 服务器启动命令java -jar food-order-system.jar --server.port8080。5.2 Vue 前端部署步骤前端根目录执行npm install安装全部项目依赖修改axios全局请求基地址配置后端接口访问域名生产环境打包npm run build生成 dist 静态资源文件夹Nginx 托管 dist 静态文件配置反向代理转发 /api 请求至后端 8080 端口区分前台用户点餐路由、管理员后台管理路由分开独立访问入口。六、系统特色与创新亮点6.1 业务功能创新亮点个性化菜品推荐机制基于用户浏览、收藏、下单行为的协同过滤推荐算法首页自动推送贴合用户口味的菜品解决传统外卖盲目筛选菜品的痛点一体化点餐业务闭环菜品浏览 - 收藏 - 购物车 - 下单 - 地址管理 - 历史订单完整流程符合真实外卖消费操作习惯多维度菜品检索筛选支持名称、口味、菜品分类三重筛选快速定位目标美食美食资讯科普模块搭配菜品售卖同步推送饮食科普、菜系介绍内容丰富平台内容生态轻量化简约前台页面操作简单直观适配电脑端线上点餐场景无复杂操作门槛。6.2 系统安全设计亮点双角色权限隔离普通用户仅可操作自身购物车、订单、收藏管理员拥有全量数据管理权限严格数据访问隔离密码不可逆 MD5 加密存储数据库不保存明文密码防止用户隐私泄露Token 会话安全机制登录凭证设置固定过期时间退出登录销毁本地会话避免账号劫持双层参数校验防护前端表单非空、格式校验 后端接口参数合法性校验拦截恶意非法提交数据文件上传安全校验限制图片格式、单文件大小过滤脚本、可执行文件上传风险。6.3 项目拓展优势前后端分离低耦合分层架构模块拆分清晰便于后续迭代新增在线支付、菜品评价、商家入驻、优惠券营销等功能字典化分类管理美食分类后台可视化维护无需修改代码即可新增菜系、口味分类推荐算法可迭代优化支持后续引入权重计算、用户画像标签进一步提升个性化推荐精准度数据可拓展统计后台预留 ECharts 图表接口可快速新增销量排行、用户消费偏好、热门菜品等统计报表。七、项目总结本《基于 SpringBootVue 个性化推荐外卖点餐系统》面向线上餐饮外卖点餐场景开发采用前后端分离架构核心创新点为基于用户行为的菜品个性化推荐解决传统外卖平台推荐同质化、点餐流程分散的行业痛点。系统划分普通点餐用户、系统管理员两类角色完整实现美食浏览检索、收藏、购物车、订单下单、美食资讯、后台菜品 / 订单 / 用户一体化管理配套完善的 JWT 鉴权、密码加密、接口权限拦截等安全机制保障用户账号与点餐订单数据安全。项目代码结构规范、业务流程贴合真实线上外卖消费场景既满足计算机专业毕业设计、课程设计课题交付标准也可迭代优化新增支付、营销模块落地为小型餐饮线上点餐平台具备优秀的实用性、可维护性与二次拓展开发空间。八、项目资料 精彩专栏推荐订阅 在下方专栏不然下次找不到哟《Java精品推荐项目》《springbootvue项目100套》《ssm项目100套》《微信小程序合集》