update flash_delivery_order
set rider_id=#{riderId}, status='ACCEPTED', accepted_at=#{now}, update_time=#{now}, version = version + 1
where id=#{id} and status = 'WAITING_ACCEPTANCE' and rider_id is null
and (delivery_mode = 'NOW' or scheduled_pickup_start_at <= #{now})
update flash_delivery_order
set status=#{nextStatus},
picked_up_at=#{now},delivered_at=#{now},
update_time=#{now}, version = version + 1
where id=#{id} and rider_id=#{riderId} and status=#{expectedStatus}
update flash_delivery_order
set status=#{nextStatus}, completed_at=#{now}, update_time=#{now}, version = version + 1
where id=#{id} and (user_id=#{userId} or receiver_user_id = #{userId}) and status=#{expectedStatus}
update flash_delivery_order
set status=#{nextStatus}, completed_at=#{now}, update_time=#{now}, version = version + 1
where id=#{id} and status=#{expectedStatus}
update flash_delivery_order
set status='CANCELLED', cancelled_at=#{now}, cancel_reason=#{reason},
cancel_operator_type=#{operatorType}, cancel_operator_id=#{operatorId},
update_time=#{now}, version = version + 1
where id=#{id} and status=#{expectedStatus}