data-model.md 4.5 KB

数据模型:闪送配送服务

flash_delivery_order

核心字段:id、唯一 order_no、与用户联合唯一的 client_request_id、创建人 user_id、创建时按收件手机号唯一匹配并固化的可空 receiver_user_idrider_id、帮送/帮取 service_type、普通/加急 delivery_typevehicle_type(1=机车、2=轿车)、statuspackage_type、正整数 quantity、可空的四档 weight_range、可空 specificationdelivery_mode、预约开始/结束时间;pin_required、四位交付 PIN;取件/收件联系人、电话、市/区、交付方式、地址、详细地址和经纬度快照;distance_metersdistance_sourceestimated_duration_seconds;整数 amountcurrencypricing_idpricing_versionpricing_start_timepricing_end_timestarting_distancestarting_faredistancefreightdistance_feebase_delivery_feeurgent_rateminimum_urgent_feeurgent_feetip_amount 计价快照;user_noteversion、关键状态时间、取消审计及创建/更新时间。

索引:订单号唯一、用户幂等号唯一、待抢排序、创建人列表、收件人列表、骑手列表、自动完成扫描。receiver_user_id 只保存创建当时唯一匹配的普通用户;空值和历史订单不补写,用户手机号变更也不回写。

flash_delivery_pricing

帮送与帮取共享多个统一运价时段,不再保存 service_type,但每条配置必须有 vehicle_type(1=机车、2=轿车)。其余字段为 start_timeend_timestarting_distance、整数 starting_faredistance、整数 freight、非负两位小数百分比 urgent_rate、非负整数 minimum_urgent_feeconfig_versionupdated_by 和创建/更新时间。配置保存即生效,不保存 enabled;仅同一车型的时间段不得重叠,索引支持按车型和时间匹配目标时刻。有效修改后版本加一,历史订单不回写。时段查询不使用 LIMIT 1 隐藏异常数据;若同一车型匹配到多条则明确返回配置重叠错误。运价写入不再维护专用锁表;新增和修改仍执行同车型重叠校验,修改仍使用 config_version 防止旧版本覆盖。

flash_delivery_order_image

保存 order_idproof_type(SENDER/PICKUP/DELIVERY)、image_urlsort_orderoperator_typeoperator_idcreate_time

flash_delivery_order_log

保存 order_idfrom_statusto_statusoperator_type(USER/RIDER/ADMIN/SYSTEM)、operator_idreasoncreate_time

info_address 增量

新增 is_top tinyint(1) not null default 0top_time datetime null。列表按 is_top desc, top_time desc, id desc

状态转换

当前 操作/角色 下一状态
WAITING_ACCEPTANCE 抢单/RIDER ACCEPTED
WAITING_ACCEPTANCE 取消/USER、ADMIN CANCELLED
ACCEPTED 取件且含图片/指定 RIDER PICKED_UP
ACCEPTED 取消/USER、ADMIN CANCELLED
PICKED_UP 送达且含图片/指定 RIDER DELIVERED
PICKED_UP 异常取消/ADMIN CANCELLED
DELIVERED 签收或自动/USER、SYSTEM、ADMIN COMPLETED
DELIVERED 异常取消/ADMIN CANCELLED

COMPLETEDCANCELLED 是终态。

2026-09-15 多站点数据增量

  • 新增 flash_delivery_order_stop:订单 ID、类型、用户顺序、完整联系人地址、逐站物品、状态及实际确认时间。(order_id,stop_order) 唯一;新订单包含全部取货站和唯一收货站。用户顺序不会因骑手改变访问顺序而重排。
  • 新增目标调整审计记录:订单、幂等请求号、原/新目标、原因、骑手 ID、同意声明和操作时间;同意字段表示骑手声明,不表示已核实的用户审批。
  • flash_delivery_order 增加 pickup_stop_countpicked_up_stop_countcurrent_target_stop_idproblem_stop_id/handling_result/picked_goods_disposition;首点地址及物品仅作列表摘要,站点表为履约依据。
  • flash_delivery_order_image 增加 stop_idPICKUP 凭证属于实际取货站,HANDOFF 为异常关闭前的物品交接凭证。SENDER 仍为订单级图片,不强制分站。
  • 订单行锁统一串行化取件、目标调整及取消。部分取件不改变主状态但增加版本;所有站点完成才推进 PICKED_UP。站点、订单、图片和日志共享事务。
  • 迁移及字典初始化只记录于 updatesql/sql.md,由开发者手动执行;没有历史订单站点迁移、兼容回退或自动清理。