苍穹外卖产品系统

我要开发同款
硬币2026年11月08日
12阅读

技术信息

语言技术
Spring、Mybatis、Vue
系统类型
小程序轻应用、Web
行业分类
内容平台

作品详情

行业场景

行业定位 餐饮外卖 / 到店自提,属于 餐饮 SaaS 的「商家自营」形态(类似美团商家端 + 自有用户小程序的组合)
目标客户 中小餐饮门店、单店或小连锁;有自配送能力(或自提),不需要平台流量
角色 商家(管理端)、顾客(小程序)、骑手(项目中简化,由商家派送)
解决的核心痛点 高峰期订单流的实时触达(WebSocket 来单提醒)、菜品 SKU 与口味管理、经营数据无法量化(营业额/客单价/热销 Top10)

功能介绍

员工管理 登录/退出、分页查询、新增编辑、启用禁用、改密(账号状态校验)
分类管理 菜品分类 / 套餐分类两类,启停用、排序、删除前置校验(有菜品不允许删)
菜品管理 新增(图片 OSS + 口味 dish_flavor)、分页(关联分类名)、批量删除、起售停售、改价改图
套餐管理 套餐关联多菜品 setmeal_dish、启售校验(内含菜品必须全部起售)、Spring Cache 缓存
订单管理 按订单号/手机号/状态/时间搜索、各状态数量角标、详情、接单/拒单(拒单退款)、派送、完成、取消
数据统计 营业额、用户增长、订单完成率、销量 Top10,支持 Excel 导出
工作台 今日营业额/有效订单/完成率/客单价/新增用户 + 订单、菜品、套餐总览
店铺 营业/打烊(Redis 存储),打烊后小程序不可下单

项目实现

1)统一契约层:Result + MessageConstant + 自定义异常(BaseException、DeletionNotAllowedException…)+ @RestControllerAdvice 全局异常处理器,把 401/业务异常/系统异常收敛成统一 JSON,前端只需判 code。

2)双通道 JWT 鉴权:管理端与小程序各一套密钥和有效期(4h / 2h),JwtTokenAdminInterceptor / JwtTokenUserInterceptor 校验后把 id 写入 BaseContext(ThreadLocal),Service 层随时取当前操作人,请求结束 afterCompletion 里 remove,防内存泄漏与线程复用污染。

3)AOP 自动填充公共字段:自定义注解 @AutoFill(INSERT/UPDATE) 打在 Mapper 方法上,切面通过反射给 createTime/createUser/updateTime/updateUser 赋值。这是项目里最典型的“横切关注点”示范。

4)Redis 的三种用法(面试高频):

店铺状态:SHOP_STATUS → 1/0,StringRedisTemplate
菜品缓存:dish_{categoryId} 存 List,Cache-Aside 手动模式(查缓存 → 未命中查库 → 写缓存;增删改后精确删 key)
购物车:cart_{userId} 用 Hash,field 为菜品/套餐 id,value 为 JSON;数量加减在内存算完整体回写
套餐则用 Spring Cache 注解式(@Cacheable/@CacheEvict),与手动模式形成对照
5)WebSocket 双端推送:@ServerEndpoint("/ws/{sid}"),静态 ConcurrentHashMap 管理在线连接;用户下单/支付成功 → type=1 来单提醒,用户催单 → type=2 客户催单,前端收到后播报语音。这是“实时性”最省成本的实现。

6)订单状态机 + 定时兜底:1待付款 → 2待接单 → 3已接单 → 4派送中 → 5已完成,异常分支 6已取消;支付状态 0未支付/1已支付/2退款。下单在一个 @Transactional 里完成:校验地址簿归属 → 校验购物车非空 → 校验菜品起售(有停售则提示)→ 计算金额(菜品 + 套餐 + 打包费 + 配送费)→ 写 orders + 批量写 order_detail → 清空购物车。OrderTask 用 @Scheduled 每分钟扫超时未支付订单置为取消。

7)统计与导出:营业额按 date_format(order_time,'%Y-%m-%d') 分组、只统计 status=5;完成率 = 有效订单/总订单;客单价 = 营业额/有效订单数;POI 用模板 运营数据报表模板.xlsx 填充后流式写出。

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论