Date: 2026-09-20 | Spec: spec.md | 契约: contracts/api-contract.md
data-model.md §5 在库上 SHOW INDEX 核实三处索引,缺则执行 updatesql/sql.md 中对应条目(本功能除索引外零 DB 变更)。JDK:
export JAVA_HOME="$HOME/.jdks/graalvm-jdk-21.0.12+7.1"
export PATH="$JAVA_HOME/bin:$PATH"
测试数据:目标用户名下构造样本——外卖(在线支付未付 / 货到付款各状态 / 售后中 / 已取消 / 已完成)+ 闪送(六态各一 + 一单寄件人=收件人 + 一单 A 寄 B)。
mvn -pl ruoyi-admin -am test -Dtest='UnifiedOrder*Test,UnifiedCursorTest' -Dsurefire.failIfNoSpecifiedTests=false
mvn -pl ruoyi-admin -am compile
预期:全绿(含翻页完整性——测试内多次滚动聚合断言与样本全集一致)。
# 1. 首页:混排 + 倒序
curl 'http://localhost:8080/system/unifiedOrder/list?tab=all&source=all&size=10' -H 'token: <t>'
# 预期:list 内 createTime 严格非递增;takeaway/flash 混排;hasMore/nextCursor 正确
# 2. 滚动第二页(透传 nextCursor)
curl 'http://localhost:8080/system/unifiedOrder/list?cursor=<nextCursor>' -H 'token: <t>'
# 3. tab 归类抽查
curl '.../list?tab=unpaid' # 仅外卖在线支付未付单
curl '.../list?tab=refund' # 仅外卖售后单
curl '.../list?tab=active' # 外卖履约中 + 闪送非终态
# 4. 来源筛选 + 收件视角
curl '.../list?source=flash' -H 'token: <B的token>' # 含 A 寄 B 的单,role=receiver
curl '.../list?source=takeaway' # 仅外送单(type=0,不含堂食/自取)
curl '.../list?source=dinein' # 仅堂食(type=2,卡片 sourceType 仍为 takeaway)
curl '.../list?source=pickup' # 仅自取(type=1)
# 5. 非法游标
curl '.../list?cursor=garbage' # 参数错误提示
GET /system/userOrder/orderList、GET /system/flashDelivery/orders 原测试全绿 + 手工抽查不变。mvn -pl ruoyi-admin -am test(全模块)无新增失败(已知基线红:flash payType 白名单,见项目记忆)。