Set rider's current job order and availability status when reassigning job order. #617
This commit is contained in:
parent
7a57ce0fac
commit
940329de28
2 changed files with 23 additions and 1 deletions
|
|
@ -1062,6 +1062,7 @@ class APIController extends Controller implements LoggedController
|
||||||
// find nearest hubs
|
// find nearest hubs
|
||||||
$nearest_hubs = $hub_select->find($hub_criteria);
|
$nearest_hubs = $hub_select->find($hub_criteria);
|
||||||
|
|
||||||
|
$assigned_rider = null;
|
||||||
if (!empty($nearest_hubs))
|
if (!empty($nearest_hubs))
|
||||||
{
|
{
|
||||||
// go through the hub list, find the nearest hub
|
// go through the hub list, find the nearest hub
|
||||||
|
|
@ -1072,7 +1073,6 @@ class APIController extends Controller implements LoggedController
|
||||||
$available_riders = $nearest_hub['hub']->getAvailableRiders();
|
$available_riders = $nearest_hub['hub']->getAvailableRiders();
|
||||||
if (count($available_riders) >= 1)
|
if (count($available_riders) >= 1)
|
||||||
{
|
{
|
||||||
$assigned_rider = null;
|
|
||||||
if (count($available_riders) == 1)
|
if (count($available_riders) == 1)
|
||||||
{
|
{
|
||||||
$assigned_rider = $available_riders[0];
|
$assigned_rider = $available_riders[0];
|
||||||
|
|
@ -1098,6 +1098,9 @@ class APIController extends Controller implements LoggedController
|
||||||
|
|
||||||
$assigned_rider->setAvailable(false);
|
$assigned_rider->setAvailable(false);
|
||||||
|
|
||||||
|
// set rider's current job order
|
||||||
|
$assigned_rider->setCurrentJobOrder($jo);
|
||||||
|
|
||||||
// update redis hub_jo_count for hub
|
// update redis hub_jo_count for hub
|
||||||
$hub_dist->incrementJoCountForHub($nearest_hub['hub']);
|
$hub_dist->incrementJoCountForHub($nearest_hub['hub']);
|
||||||
|
|
||||||
|
|
@ -2952,6 +2955,9 @@ class APIController extends Controller implements LoggedController
|
||||||
|
|
||||||
$assigned_rider->setAvailable(false);
|
$assigned_rider->setAvailable(false);
|
||||||
|
|
||||||
|
// set rider's current job order
|
||||||
|
$assigned_rider->setCurrentJobOrder($jo);
|
||||||
|
|
||||||
// update redis hub_jo_count for hub
|
// update redis hub_jo_count for hub
|
||||||
$hub_dist->incrementJoCountForHub($nearest_hub['hub']);
|
$hub_dist->incrementJoCountForHub($nearest_hub['hub']);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -955,6 +955,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
||||||
// set rider unavailable
|
// set rider unavailable
|
||||||
// $rider->setAvailable(false);
|
// $rider->setAvailable(false);
|
||||||
|
|
||||||
|
// set rider's current job order
|
||||||
|
$rider->setCurrentJobOrder($obj);
|
||||||
|
|
||||||
// the event
|
// the event
|
||||||
$event = new JOEvent();
|
$event = new JOEvent();
|
||||||
$event->setDateHappen(new DateTime())
|
$event->setDateHappen(new DateTime())
|
||||||
|
|
@ -1470,6 +1473,13 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
||||||
];
|
];
|
||||||
$mclient->sendRiderEvent($obj, $rider_payload);
|
$mclient->sendRiderEvent($obj, $rider_payload);
|
||||||
|
|
||||||
|
// need to unset first rider's current job order
|
||||||
|
$old_rider = $obj->getRider();
|
||||||
|
$old_rider->setCurrentJobOrder();
|
||||||
|
|
||||||
|
// set available flag for first rider
|
||||||
|
$old_rider->setAvailable(true);
|
||||||
|
|
||||||
// coordinates
|
// coordinates
|
||||||
$point = new Point($req->request->get('coord_lng'), $req->request->get('coord_lat'));
|
$point = new Point($req->request->get('coord_lng'), $req->request->get('coord_lat'));
|
||||||
|
|
||||||
|
|
@ -1512,6 +1522,12 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
||||||
// check if any errors were found
|
// check if any errors were found
|
||||||
if (empty($error_array))
|
if (empty($error_array))
|
||||||
{
|
{
|
||||||
|
// set new rider's current job order
|
||||||
|
$rider->setCurrentJobOrder($obj);
|
||||||
|
|
||||||
|
// set new rider's availability to false
|
||||||
|
$rider->setAvailable(false);
|
||||||
|
|
||||||
// add event
|
// add event
|
||||||
$event = new JOEvent();
|
$event = new JOEvent();
|
||||||
$event->setDateHappen(new DateTime())
|
$event->setDateHappen(new DateTime())
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue