Quickstart: 闪送订单状态变更消息推送
Date: 2026-09-17 | Spec: spec.md
前置条件
- JDK 21 构建(本机用
C:\Users\qmj\.jdks\graalvm-jdk-21.0.7,仅命令内临时设置 JAVA_HOME/PATH,不改全局)。
- 无需数据库变更、无需新增 i18n key;服务端部署后即生效。
自动验证(单测)
# 仓库根目录,Git Bash
export JAVA_HOME="C:/Users/qmj/.jdks/graalvm-jdk-21.0.7"
export PATH="$JAVA_HOME/bin:$PATH"
mvn -pl ruoyi-admin -am test -Dtest='FlashDeliveryNotificationServiceTest,FlashDeliveryApplicationServiceTest'
预期:全部通过。覆盖点:
- 三类履约事件(抢单/取件/送达)成功时调用对应用户推送;操作失败(条件更新 0 行)不推送。
- 用户/平台取消且
riderId 非空时调用骑手推送;riderId 为空跳过。
- 排除事件(complete、cancelExpiredScheduledOrder、加小费)零推送调用。
手动端到端验证(联调环境)
- 用户 App(寄件人)与骑手 App 各登录一个测试账号;骑手账号具备闪送(FLASH)配送资质。
- 寄件人创建立即单(货到付款或沙箱支付),记下
orderNo。
- 骑手在任务列表抢单 → 寄件人应收到「骑手已接单,NO:{orderNo}」推送,消息中心出现对应记录。
- 骑手提交取件凭证 → 寄件人收到「骑手配送中,NO:{orderNo}」。
- 骑手提交送达凭证(含 PIN 时输入 PIN)→ 寄件人收到「骑手已送达,NO:{orderNo}」。
- 另起一单:骑手接单后由寄件人取消 → 骑手收到「订单已取消,NO:{orderNo}」;寄件人不收到取消推送。
- 再起一单:骑手接单后由平台后台取消 → 骑手收到取消推送。
- 反例:待接单状态直接平台取消(无人接单)→ 无任何骑手推送。
- 反例:等待超过自动完成时限(或平台手动完成)→ 用户无「已完成」推送(FR-010)。
- 切换寄件人 App 语言(vi/en/tw/zh)重复第 3 步 → 推送文案语言随之变化。
判定
- 第 3~7 步全部按期收到、第 8~9 步确实无推送、第 10 步语言正确 → 特性验证通过(对应 spec SC-001~SC-003)。
- 推送期间人为停掉推送云函数 → 订单操作仍全部成功(SC-004 零传导)。