Project 02 / Java backend

OrderBoss 接单宝

外卖商家多平台订单聚合与经营管理后台,使用统一 REST 契约、JWT 双 Token、JWT/RBAC 鉴权和可测试的业务状态机串联六大业务模块。

背景与目标

聚合订单不仅要处理 CRUD,还要解决重复回调、权限边界、打印失败和状态不一致。这个项目把订单、调度、打印和报表拆成可独立测试的后端模块,并把异常统一映射到 HTTP 状态码。

6 模块接单、打印、调度、设置、评价、报表
18 例单元测试与接口冒烟测试
4 角色商家、店员、骑手、运营

关键做法

01
双 Token 鉴权

Access Token 2 小时,Refresh Token 7 天旋转刷新,并与 RBAC 和方法级角色注解配合。

02
订单状态机

订单从 new → printed → dispatched → done,限制非法跳转,重复提交返回 409。

03
平台回调验签

美团、饿了么回调统一走 HMAC-SHA256 验签和报文归一化,模拟真实平台接入层。

04
打印失败恢复

失败重试、超限告警和电子小票抽象,保证订单主流程不被外部打印服务拖死。

系统架构

HTTP Client → Auth / RBAC → Business Modules ↓ State Machine · Retry · HMAC ↓ Caffeine Cache · Sliding Window Rate Limit ↓ MyBatis → H2 / MySQL 8
Java 21Spring Boot 3.3MyBatisJWTBCryptCaffeineDocker

结果与验证

  • mvn test 覆盖状态机、权限矩阵、密码哈希和端到端接口冒烟。
  • 越权返回 403、未登录返回 401、重复提交返回 409、限流返回 429。
  • 生产部署提供 Dockerfile 与 Docker Compose,可使用 MySQL 8 一键编排。
  • README 明确声明单进程缓存、模拟平台回调和通知落库等真实边界。