migration_20260414_biz_order_delivered_time.sql 868 B

12345678910111213141516171819202122
  1. -- 订单:记录配送完成时间,用于「送达后 N 天自动确认收货」起算
  2. ALTER TABLE biz_order
  3. ADD COLUMN delivered_time DATETIME NULL COMMENT '配送完成时间(待客户确认收货起算点)' AFTER delivery_assign_time;
  4. ALTER TABLE biz_order_his
  5. ADD COLUMN delivered_time DATETIME NULL COMMENT '配送完成时间(待客户确认收货起算点)' AFTER delivery_assign_time;
  6. -- 历史数据:待确认且已送达的订单,用已完成配送任务的更新时间近似送达时刻(无任务则回退订单 update_at)
  7. UPDATE biz_order o
  8. SET o.delivered_time = COALESCE(
  9. (
  10. SELECT MAX(t.update_at)
  11. FROM biz_delivery_task t
  12. WHERE t.order_id = o.id
  13. AND t.is_del = 0
  14. AND t.status = 'completed'
  15. ),
  16. o.update_at
  17. )
  18. WHERE o.is_del = 0
  19. AND o.order_status = 'pending_confirm'
  20. AND o.delivery_status = 'delivered';