Files
template-10584/docs/水票配送订单-后端提示词.md
赵忠林 25177d724e feat(ticket): 完善水票配送订单功能
- 优化导入路径,修复 PageParam 类型引用
- 新增 DeliverConfirmMode 类型定义,支持拍照完成和等待客户确认两种模式
- 实现配送确认的双模式功能,支持直接完成和等待确认流程
- 重构订单状态判断逻辑,完善配送流程状态管理
- 新增用户端确认收货功能,支持手动确认收货操作
- 优化订单列表展示,增加票号、取货点、门店电话等详细信息
- 添加地址复制和联系门店功能按钮
- 实现补传照片完成订单功能
- 更新订单流程状态显示,提供更准确的状态标识
- 添加配送确认模式切换的单选框界面
- 优化下单成功后的页面跳转逻辑
- 新增水票配送订单后端接口设计文档
2026-02-06 20:33:56 +08:00

2.7 KiB
Raw Blame History

水票配送订单:后端提示词(可直接发给后端)

1) 订单查询(配送员端)

请在 GET /glt/glt-ticket-order/page 支持以下筛选,并保证权限隔离:

  • riderId:只返回该配送员的订单(必要)
  • deliveryStatus10待配送、20配送中、30待客户确认、40已完成必要
  • 排序:建议 sendTime asc + createTime desc(或给前端一个可控排序字段)

2) 配送流程字段(建议后端落库并回传)

订单表建议确保有以下字段(当前前端已按这些字段做流程判断/展示):

  • riderId/riderName/riderPhone:配送员信息
  • deliveryStatus10/20/30/40
  • sendStartTime:配送员点击“开始配送”的时间
  • sendEndTime:配送员点击“确认送达”的时间
  • sendEndImg:送达拍照留档图片 URL可选/必填由后端策略决定)
  • receiveConfirmTime:客户确认收货时间
  • receiveConfirmType10客户手动确认、20配送照片自动确认、30超时自动确认

3) 状态流转与校验(强烈建议在后端做)

请在更新订单时做状态机校验,避免前端绕过流程:

  • 10 -> 20:仅允许订单属于当前配送员,且未开始/未送达
  • 20 -> 30:配送员确认送达(可带 sendEndImg
  • 20/30 -> 40:完成;来源可能是
    • 客户手动确认(写 receiveConfirmTime + receiveConfirmType=10
    • 配送照片直接完成(写 receiveConfirmTime + receiveConfirmType=20,并要求 sendEndImg
    • 超时自动确认(写 receiveConfirmTime + receiveConfirmType=30,建议由定时任务执行)

4) 建议新增/明确的接口能力

为了避免并发抢单/越权更新,建议新增更语义化的接口(或在 update 内做等价校验):

  • 接单(抢单/派单):POST /glt/glt-ticket-order/{id}/accept
    • 后端原子校验:仅当 riderId is null 才能写入当前 rider 信息
  • 开始配送:POST /glt/glt-ticket-order/{id}/start(写 sendStartTime + deliveryStatus=20
  • 确认送达:POST /glt/glt-ticket-order/{id}/delivered(写 sendEndTime + deliveryStatus=30 + 可选 sendEndImg
  • 客户确认收货:POST /glt/glt-ticket-order/{id}/confirm-receive
    • 校验:只能本人 userId 操作,且必须已送达

5) 为了“导航到收货地址/取货点”的字段补充(建议)

当前仅有 address 字符串,无法在小程序内 openLocation 精准导航;建议补充:

  • 收货地址:receiverNamereceiverPhoneprovince/city/district/detaillatitude/longitude
  • 取货点(门店/仓库):storeLatitude/storeLongitudewarehouseLatitude/warehouseLongitude