From f5c7d17d2fb786bbb386e7d9dce0b4deca0eca87 Mon Sep 17 00:00:00 2001 From: Kendrick Chan Date: Thu, 8 Mar 2018 02:09:58 +0800 Subject: [PATCH] Add MQTT event sending #41 --- src/Controller/CustomerController.php | 9 +++++--- src/Controller/JobOrderController.php | 32 +++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/src/Controller/CustomerController.php b/src/Controller/CustomerController.php index 6bbbb6b1..996f1b01 100644 --- a/src/Controller/CustomerController.php +++ b/src/Controller/CustomerController.php @@ -611,12 +611,15 @@ class CustomerController extends BaseController ->setParameter('filter', '%' . $term . '%'); } + // get rows - $obj_rows = $query->orderBy('q.plate_number', 'asc') + $query_obj = $query->orderBy('q.plate_number', 'asc') ->setFirstResult($offset) ->setMaxResults($perpage) - ->getQuery() - ->getResult(); + ->getQuery(); + // error_log($query_obj->getSql()); + + $obj_rows = $query_obj->getResult(); // build vehicles array $vehicles = []; diff --git a/src/Controller/JobOrderController.php b/src/Controller/JobOrderController.php index 2b33790c..bdf02592 100644 --- a/src/Controller/JobOrderController.php +++ b/src/Controller/JobOrderController.php @@ -36,6 +36,7 @@ use Symfony\Component\Validator\Validator\ValidatorInterface; use CrEOF\Spatial\PHP\Types\Geometry\Point; +use Mosquitto\Client as MosquittoClient; use DateTime; class JobOrderController extends BaseController @@ -972,12 +973,43 @@ class JobOrderController extends BaseController // validated! save the entity $em->flush(); + // get rider + $rider = $obj->getRider(); + + $image_url = $req->getScheme() . '://' . $req->getHttpHost() . $req->getBasePath() . '/assets/images/user.gif'; + if ($rider->getImageFile() != null) + $image_url = $req->getScheme() . '://' . $req->getHttpHost() . $req->getBasePath() . '/uploads/' . $rider->getImageFile(); + + // send to mqtt + $payload = [ + 'event' => 'start_rating', + 'jo_id' => $obj->getID(), + 'driver_image' => $image_url, + 'driver_name' => $rider->getFullName(), + 'driver_id' => $rider->getID(), + ]; + $this->sendEvent($obj, $payload); + // return successful response return $this->json([ 'success' => 'Changes have been saved!' ]); } + protected function sendEvent(JobOrder $job_order, $payload) + { + $session = $job_order->getCustomer()->getMobileSessions(); + if (count($session) == 0) + return; + + $phone_num = $session[0]->getPhoneNumber(); + $channel = 'motolite.control.' . $phone_num; + $client = new MosquittoClient(); + $client->connect('localhost', 1883); + $client->publish($channel, json_encode($payload)); + $client->disconnect(); + } + public function openHubForm(MapTools $map_tools, $id) { $this->denyAccessUnlessGranted('jo_open.list', null, 'No access.');