public function updateOrder($attr) { $order = OrderMedlatec::model()->findByPk($attr['order_id']); if ($order) { $order->setAttributes($attr); $order->time_meet = StringHelper::dateToTime($attr['time_meet']); $order->time_confirm = StringHelper::dateToTime($attr['time_confirm']); $order->updated_at = time(); if ($order->save(FALSE)) { $meboo = $order->user_meboo; // echo $meboo; die; //echo $order->status; die; $device_tokens = DeviceTk::model()->findAllByAttributes(array('user_id' => $meboo)); $ios_alert = null; if ($order->status == 2) { $ios_alert = 'Dịch vụ bạn đặt (' . ServiceMedlatec::model()->getServiceNameById($order->service_id) . ') đã được Meboo xác nhận'; } else { if ($order->status == 4) { $ios_alert = 'Dịch vụ bạn đặt (' . ServiceMedlatec::model()->getServiceNameById($order->service_id) . ') đã được hoàn thành'; } } $message_android = array('medlatec_order' => array('order_id' => $attr['order_id'])); $message_ios = array('alert' => $ios_alert, 'sound' => 'default', 'data' => array('id' => $attr['order_id'], 'type' => '0', 'user_id' => $meboo)); $message = array('message_android' => $message_android, 'message_ios' => $message_ios); foreach ($device_tokens as $token) { // echo $token->platform; Util::sendNotificationBasedOnStatus($token->device_token, $order->status, $message); } //die; return TRUE; } } return FALSE; }
public static function sendNotificationBasedOnStatus($device_token, $status, $message) { $token = DeviceTk::model()->findByAttributes(array('device_token' => $device_token)); if ($token) { $time_diff = time() - $token->updated_at; // echo $time_diff; die; if ($time_diff < 7776000) { if ($status == 2 || $status == 4) { // echo '2'; die; if ($token->platform == 'android') { GcmHelper::sendNotification($device_token, $message['message_android']); } else { if ($token->platform == 'ios') { // echo $device_token; die; IosPushHelper::sendNotification($device_token, $message['message_ios']); } } } } } }
public function updateResultByOrder($attr, $urls) { $check = ResultMedlatec::model()->findByAttributes(array('order_id' => $attr['order_id'])); if ($check) { $check->setAttributes($attr); $check->updated_at = time(); $check->save(FALSE); $order = OrderMedlatec::model()->findByPk($attr['order_id']); $order->status = 4; $order->save(FALSE); $meboo = $order->user_meboo; $device_tokens = DeviceTk::model()->findAllByAttributes(array('user_id' => $meboo)); $message_android = array('medlatec_order' => array('order_id' => $attr['order_id'])); $message_ios = array('alert' => 'Dịch vụ của bạn vừa có thông tin', 'sound' => 'default', 'data' => array('id' => $attr['order_id'], 'type' => '0')); $message = array('message_android' => $message_android, 'message_ios' => $message_ios); foreach ($device_tokens as $token) { // echo $token->platform; Util::sendNotificationBasedOnStatus($token->device_token, $order->status, $message); } //die; if (!empty($urls) && is_array($urls)) { $files = ResultFile::model()->findAllByAttributes(array('result_id' => $check->id)); if ($files) { foreach ($files as $file) { $file->delete(); } } foreach ($urls as $url) { $file = new ResultFile(); $file->url = $url; $file->updated_at = time(); $file->created_at = time(); $file->result_id = $check->id; $file->save(FALSE); } } return TRUE; } else { $model = new ResultMedlatec(); $model->setAttributes($attr); $model->order_id = $attr['order_id']; $model->created_at = time(); $model->updated_at = time(); $model->save(FALSE); $order = OrderMedlatec::model()->findByPk($attr['order_id']); $order->status = 4; $order->save(FALSE); $meboo = $order->user_meboo; $meboo_token = User::model()->findByPk($meboo); if ($meboo_token) { $message = array('medlatec_order' => array('order_id' => $attr['order_id'])); Util::sendNotificationBasedOnStatus($meboo_token->device_token, $order->status, $message); } if (!empty($urls) && is_array($urls)) { foreach ($urls as $url) { $file = new ResultFile(); $file->url = $url; $file->updated_at = time(); $file->created_at = time(); $file->result_id = $model->id; $file->save(FALSE); } } return TRUE; } }
public function deleteToken($device_token, $user_id) { $token = DeviceTk::model()->findByAttributes(array('device_token' => $device_token, 'user_id' => $user_id)); if ($token) { if ($token->delete()) { return TRUE; } } return FALSE; }
public function actionDeleteToken() { $request = Yii::app()->request; if ($request->isPostRequest && isset($_POST)) { try { $device_token = StringHelper::filterString($request->getPost('device_token')); $user_id = StringHelper::filterString($request->getPost('user_id')); if (DeviceTk::model()->deleteToken($device_token, $user_id)) { ResponseHelper::JsonReturnSuccess('', 'Success'); } else { ResponseHelper::JsonReturnError('', 'Server Error'); } } catch (exception $e) { var_dump($e->getMessage()); } Yii::app()->end(); } }