Merge branch '535-display-open-jos-in-the-last-24-hours' into 'master'

Resolve "Display open JOs in the last 24 hours"

Closes #535

See merge request jankstudio/resq!625
This commit is contained in:
Kendrick Chan 2021-02-10 09:26:13 +00:00
commit c69e212e26
5 changed files with 32 additions and 11 deletions

View file

@ -3,6 +3,7 @@ class DashboardMap {
this.options = options; this.options = options;
this.rider_markers = rider_markers; this.rider_markers = rider_markers;
this.cust_markers = cust_markers; this.cust_markers = cust_markers;
this.rider_availability = {};
// layer groups // layer groups
this.layer_groups = { this.layer_groups = {
@ -253,10 +254,13 @@ class DashboardMap {
var lat = data.latitude; var lat = data.latitude;
var lng = data.longitude; var lng = data.longitude;
if (data.has_jo) if (data.has_jo) {
my.rider_availability[id] = false;
my.putRiderActiveJOMarker(id, lat, lng); my.putRiderActiveJOMarker(id, lat, lng);
else } else {
my.rider_availability[id] = true;
my.putRiderAvailableMarker(id, lat, lng); my.putRiderAvailableMarker(id, lat, lng);
}
}); });
// console.log(rider_markers); // console.log(rider_markers);

View file

@ -78,7 +78,7 @@ class MapEventHandler {
} }
handleRider(chan_split, payload) { handleRider(chan_split, payload) {
console.log("rider message"); //console.log("rider message");
switch (chan_split[2]) { switch (chan_split[2]) {
case "location": case "location":
console.log("got location for rider " + chan_split[1] + " - " + payload); console.log("got location for rider " + chan_split[1] + " - " + payload);
@ -115,7 +115,7 @@ class MapEventHandler {
var obj = JSON.parse(payload); var obj = JSON.parse(payload);
var status = obj.status; var status = obj.status;
console.log("status " + status); // console.log("status " + status);
switch (status) { switch (status) {
case 'rider_offline': case 'rider_offline':
this.dashmap.rider_availability[chan_split[1]] = false; this.dashmap.rider_availability[chan_split[1]] = false;
@ -145,6 +145,7 @@ class MapEventHandler {
break; break;
} }
}); });
break;
} }
break; break;
} }

View file

@ -48,8 +48,12 @@ class RefreshLatestActiveJobOrderCacheCommand extends Command
fwrite($tmp_cache_log, 'Cleared latest active jo cache...' . "\n"); fwrite($tmp_cache_log, 'Cleared latest active jo cache...' . "\n");
$date = new DateTime(); // get JOs -5 and +22 hours from current datetime
$date->modify('-5 hour'); $start_date = new DateTime();
$start_date->modify('-5 hour');
$end_date = new DateTime();
$end_date->modify('+22 hour');
$status_list = [ $status_list = [
JOStatus::PENDING, JOStatus::PENDING,
@ -63,9 +67,11 @@ class RefreshLatestActiveJobOrderCacheCommand extends Command
->createQueryBuilder('jo'); ->createQueryBuilder('jo');
$res = $qb->select('jo') $res = $qb->select('jo')
->where('jo.status IN (:statuses)') ->where('jo.status IN (:statuses)')
->andWhere('jo.date_schedule >= :date') ->andWhere('jo.date_schedule >= :start_date')
->andWhere('jo.date_schedule <= :end_date')
->setParameter('statuses', $status_list, Connection::PARAM_STR_ARRAY) ->setParameter('statuses', $status_list, Connection::PARAM_STR_ARRAY)
->setParameter('date', $date) ->setParameter('start_date', $start_date)
->setParameter('end_date', $end_date)
->getQuery() ->getQuery()
->execute(); ->execute();

View file

@ -602,8 +602,9 @@ class RiderController extends Controller
*/ */
public function ajaxAvailable(EntityManagerInterface $em, Rider $rider) public function ajaxAvailable(EntityManagerInterface $em, Rider $rider)
{ {
$jo = $rider->getRiderActiveJobOrder(); //$jo = $rider->getRiderActiveJobOrder();
if ($jo == null || $jo->isClosed()) $jo_results = $rider->getActiveJobOrder();
if (empty($jo_results))
$avail = 'available'; $avail = 'available';
else else
$avail = 'unavailable'; $avail = 'unavailable';

View file

@ -8,6 +8,9 @@ use App\Service\JobOrderCache;
use App\Ramcar\JOStatus; use App\Ramcar\JOStatus;
use App\Entity\JobOrder; use App\Entity\JobOrder;
use DateTime;
use DateInterval;
class JobOrderActiveCacheListener class JobOrderActiveCacheListener
{ {
protected $key; protected $key;
@ -82,7 +85,13 @@ class JobOrderActiveCacheListener
$this->jo_cache->addActiveJobOrder($jo); $this->jo_cache->addActiveJobOrder($jo);
// save in latest JO cache // save in latest JO cache
$this->jo_cache->addLatestActiveJoborder($jo); // check if date_schedule is more than 24 hours
$date = new DateTime();
$interval = new DateInterval('P1D');
$date->sub($interval);
if ($jo->getDateSchedule() >= $date)
$this->jo_cache->addLatestActiveJoborder($jo);
// publish to mqtt // publish to mqtt
$coords = $jo->getCoordinates(); $coords = $jo->getCoordinates();