/
var
/
www
/
vhosts
/
nabawater
/
api
/
modules
/
v1
/
controllers
/
/var/www/vhosts/nabawater/api/modules/v1/controllers
mkdir
upload
Name
Size
Mode
Actions
.gitkeep
0
0644
edit
dl
rm
AdsController.php
3133
0644
edit
dl
rm
BranchController.php
26683
0644
edit
dl
rm
CartController.php
2274
0644
edit
dl
rm
CategoryController.php
3347
0644
edit
dl
rm
ContactusController.php
1467
0644
edit
dl
rm
CreditHistoryController.php
1559
0644
edit
dl
rm
CuisineController.php
769
0644
edit
dl
rm
CustomerAddressController.php
6966
0644
edit
dl
rm
DeliveryBoyController.php
31390
0644
edit
dl
rm
EnquiryController.php
4467
0644
edit
dl
rm
FavouriteController.php
4119
0644
edit
dl
rm
HomeController.php
10427
0644
edit
dl
rm
LanguageController.php
846
0644
edit
dl
rm
MallProductController.php
2463
0644
edit
dl
rm
MobileTranslationController.php
951
0644
edit
dl
rm
NewsletterController.php
1243
0644
edit
dl
rm
NotificationController.php
1737
0644
edit
dl
rm
OrderController.php
149872
0644
edit
dl
rm
OrderMallProductController.php
6726
0644
edit
dl
rm
OrderParcelController.php
4067
0644
edit
dl
rm
OrderSubscriptionController.php
4258
0644
edit
dl
rm
PostController.php
3607
0644
edit
dl
rm
PromotionController.php
10465
0644
edit
dl
rm
RatingController.php
11345
0644
edit
dl
rm
SiteController.php
6085
0644
edit
dl
rm
SwaggerController.php
829
0644
edit
dl
rm
TabaogoCreditController.php
3829
0644
edit
dl
rm
TabaogoPointController.php
1060
0644
edit
dl
rm
UserAddressController.php
7619
0644
edit
dl
rm
UserController.php
36145
0644
edit
dl
rm
UserReferralController.php
5509
0644
edit
dl
rm
VendorController.php
24857
0644
edit
dl
rm
VendorOldController.php
21277
0644
edit
dl
rm
WalletController.php
10633
0644
edit
dl
rm
Edit:
/var/www/vhosts/nabawater/api/modules/v1/controllers/VendorOldController.php
(21277B)
<?php namespace api\modules\v1\controllers; use api\common\models\LoginForm; use api\components\CController; use api\modules\v1\models\Deliveryboy; use api\modules\v1\models\DeliveryboyRequest; use api\modules\v1\models\DeliveryboyRequestHistory; use api\modules\v1\models\Order; use api\modules\v1\models\Branch; use api\modules\v1\models\Vendor; use api\modules\v1\models\VendorApi; use api\modules\v1\models\SignatureUploadForm; use api\modules\v1\models\OrderSignature; use yii\web\UploadedFile; use api\modules\v1\models\VendorLang; use api\modules\v1\models\User; use api\modules\v1\models\VendorOrder; use api\modules\v1\models\VendorReport; use api\modules\v1\models\VendorReportDetail; use common\helpers\DateTimeHelper; use common\helpers\UploadHelper; use common\helpers\RabbitMQHelper; use yii\helpers\Url; use Yii; use common\helpers\Com; use backend\models\Configuration; use common\helpers\OneSignal; use common\helpers\MailerQueueHelper; /** * Class VendorController * @package api\modules\v1\controllers */ class VendorOldController extends CController { /** * @throws \Exception * @throws \Throwable * * @return VendorApi */ public function actionLogin($language = 'en') { Yii::$app->language = $language; $post = Yii::$app->getRequest()->post(); $params = ['vendor_contact_email', 'vendor_password', 'device_token', 'device_type']; $this->checkRequiredParam($post, $params); $request = $this->convertAttributes($post); $request['username'] = $request['vendor_email']; $model = new LoginForm(); $model->setScenario($model::SCENARIO_VENDOR_LOGIN); $model->load($request, ''); if (!$model->loginVendor()) { $this->invalidLogin(); } $this->setMessage(Yii::t('api', 'Logged in successfully')); /* @var $vendorIdentity Vendor */ $vendorIdentity = Yii::$app->getVendor()->getIdentity(); $modelVendor = Vendor::findOne($vendorIdentity->getId()); $modelVendor->device_type = $request['device_type']; $modelVendor->device_token = $request['device_token']; $modelVendor->is_login = 1; $modelVendor->save(false); return VendorApi::findOne($vendorIdentity->getId()); } public function actionProfileinfo() { $request = Yii::$app->getRequest()->post(); $params = ['vendor_key']; $this->checkRequiredParam($request, $params); $modelVendor = VendorApi::findOne(['vendor_key' => $request['vendor_key']]); if ($modelVendor === null) { $this->commonError(Yii::t('api', 'Invalid Vendor')); } return $modelVendor; } public function actionProfileinfoupdate($language = 'en') { $post = Yii::$app->getRequest()->post(); $params = [ 'vendor_key', 'vendor_contact_name', 'vendor_contact_email', 'vendor_contact_number' ]; $this->checkRequiredParam($post, $params); $request = $this->convertAttributes($post); $modelVendor = VendorApi::findOne(['vendor_key' => $request['vendor_key']]); if ($modelVendor === null) { $this->commonError(Yii::t('api', 'Invalid Vendor')); } $modelVendor->load($request, ''); $modelVendor->vendor_address = $post['vendor_contact_address']; if (!$modelVendor->save(false)) { return $modelVendor; } $modelVendorLang = VendorLang::find() ->where(['vendor_id' => $modelVendor->vendor_id, 'language_code' => $language]) ->one(); $modelVendorLang->load($request, ''); if (!$modelVendorLang->save()) { return $modelVendorLang; } $this->setMessage(Yii::t('api', 'Profile updated successfully')); return []; } public function actionLogout() { $request = Yii::$app->getRequest()->post(); $params = ['vendor_key']; $this->checkRequiredParam($request, $params); $modelVendor = VendorApi::findOne(['vendor_key' => $request['vendor_key']]); if ($modelVendor === null) { $this->commonError(Yii::t('api', 'Invalid Vendor')); } $modelVendor->is_login = 0; $modelVendor->save(); $this->setMessage(Yii::t('api', 'Logged out successfully')); return []; } public function actionShopstatus() { $requestObj = Yii::$app->getRequest(); $request = $requestObj->post(); $params = ['vendor_key']; $this->checkRequiredParam($request, $params); $modelVendor = VendorApi::findOne(['vendor_key' => $request['vendor_key']]); if ($modelVendor === null) { $this->commonError(Yii::t('api', 'Invalid Vendor')); } $this->setMessage(Yii::t('api', 'Vendor shop status retrived successfully')); /* if($modelVendor->vendor_shop_status == 0) { $status = 0; }else if($modelVendor->vendor_shop_status == 2) { $status = 1; } else if($modelVendor->vendor_shop_status == 3) { $status = 2; } */ return $modelVendor->vendor_shop_status; } public function actionShop() { $request = Yii::$app->getRequest()->post(); $params = ['vendor_key']; $this->checkRequiredParam($request, $params); $modelVendor = VendorApi::findOne(['vendor_key' => $request['vendor_key']]); if ($modelVendor === null) { $this->commonError(Yii::t('api', 'Invalid Vendor')); } //$status = VendorApi::getVendorShopStatusType($request['status']); $modelVendor->vendor_shop_status = $request['status']; if (!$modelVendor->save(false)) { return $modelVendor; } $modelBranchAll = Branch::find()->where(['vendor_id' => $modelVendor->vendor_id])->all(); foreach ($modelBranchAll as $key => $value) { $modelBranch = Branch::find()->where(['branch_id' => $value->branch_id])->one(); if((int)$request['status'] === 0) { $modelBranch->branch_availability_status = 1; } else if((int)$request['status'] === 1) { $modelBranch->branch_availability_status = 2; } else if((int)$request['status'] === 2 ) { $modelBranch->branch_availability_status = 4; } $modelBranch->save(false); if(!$modelBranch->save(false)) { print_r($modelBranch->getErrors());exit; } } $this->setMessage(Yii::t('api', 'Vendor shop status updated successfully')); return $request['status']; } public function actionForgotPassword() { $request = Yii::$app->getRequest()->post(); $params = ['vendor_contact_email']; $this->checkRequiredParam($request, $params); $model = VendorApi::findOne(['vendor_email' => $request['vendor_contact_email']]); if ($model === null) { $this->commonError(Yii::t('api', 'Unable to find the requested email')); } $model->generatePasswordResetToken(); $resetToken = $model->password_reset_token; $model->save(false); $resetLink = Url::to(['../../app/vendor/password-reset', 'resetToken' => $resetToken],true); $mailerQueueHelper = MailerQueueHelper::getInstance() ->setTo($request['vendor_contact_email']) ->setSubject('Password Reset Link') ->setView( 'forgotPassword', [ 'name'=> $model->first_name, 'resetLink'=> $resetLink ]) ->push(); /* $rabbitMQHelper = RabbitMQHelper::getInstance(); $rabbitMQHelper->setType($rabbitMQHelper::TYPE_DEFAULT) ->setRoute($rabbitMQHelper::ROUTE_EMAIL) ->setData([ 'user_key' => $model->vendor_key, 'type' => 'vendor_forgot_password' ]) ->publish();*/ $this->setMessage(Yii::t('api', 'password reset link send successfully')); return []; } public function actionOrders() { $request = Yii::$app->getRequest()->post(); $params = ['vendor_key', 'option']; $this->checkRequiredParam($request, $params); $model = VendorApi::findOne(['vendor_key' => $request['vendor_key']]); if ($model === null) { $this->commonError(Yii::t('api', 'Invalid Vendor')); } $newOrder = VendorOrder::find() ->where([ 'vendor_id' => $model->vendor_id, ]) ->andWhere(['IN','order_status', [Order::ORDER_STATUS_PENDING]]) ->andFilterWhere([ 'or', [ 'and', ['=', 'payment_status', Order::PAYMENT_STATUS_SUCCESS], ['<>', 'payment_option', Order::PAYMENT_OPTION_COD] ], [ 'and', ['=','payment_option' ,Order::PAYMENT_OPTION_COD] ] ]) ->orderBy(['order_id' => SORT_DESC]); $punchedOrder = VendorOrder::find() ->where([ 'vendor_id' => $model->vendor_id, ])->andWhere(['IN','order_status',[ Order::ORDER_STATUS_ACCEPTED, Order::ORDER_STATUS_DELIVERYBOY_ACCEPTED, Order::ORDER_STATUS_DELIVERYBOY_ASSIGNED, Order::ORDER_STATUS_PREPARED, Order::ORDER_STATUS_DELIVERYBOY_REQUESTED, Order::ORDER_STATUS_READY_TO_PICKUP ]]) ->andFilterWhere([ 'or', [ 'and', ['=', 'payment_status', Order::PAYMENT_STATUS_SUCCESS], ['<>', 'payment_option', Order::PAYMENT_OPTION_COD] ], [ 'and', ['=','payment_option' ,Order::PAYMENT_OPTION_COD] ] ]) ->orderBy(['order_id' => SORT_DESC]); $data = [ 'neworder_count' => $newOrder->count(), 'punched_order_count' => $punchedOrder->count(), 'new_order' => $newOrder->all(), 'punched_orders' => $punchedOrder->all() ]; return $data; } public function actionOrderDetails() { $request = Yii::$app->getRequest()->post(); $params = ['vendor_key', 'order_key']; $this->checkRequiredParam($request, $params); $model = VendorApi::findOne(['vendor_key' => $request['vendor_key']]); if ($model === null) { $this->commonError(Yii::t('api', 'Invalid Vendor')); } $newOrder = VendorOrder::find() ->where([ 'vendor_id' => $model->vendor_id, ]) ->andWhere(['order_key' => $request['order_key'] ]) ->orderBy(['order_id' => SORT_DESC]); $data = [ 'new_order' => $newOrder->all(), ]; return $data; } public function actionReport() { $requestObj = Yii::$app->getRequest(); $request = $requestObj->post(); $params = ['vendor_key', 'report']; $this->checkRequiredParam($request, $params); $model = VendorReport::find() ->alias('t') ->leftJoin(['V' => Vendor::tableName()], 'V.vendor_id = t.vendor_id') ->where(['V.vendor_key' => $request['vendor_key']])->andFilterWhere([ 'or', [ 'and', ['=', 't.payment_status', Order::PAYMENT_STATUS_SUCCESS], ['<>', 't.payment_option', Order::PAYMENT_OPTION_COD] ], [ 'and', ['=','t.payment_option' ,Order::PAYMENT_OPTION_COD] ] ]); if ($request['from_date'] !== '') { $from_date = date('Y-m-d', strtotime($request['from_date'])); $model = $model->andWhere(['>=', 'DATE(t.order_date_time)', $from_date]); } if ($request['to_date'] !== '') { $to_date = date('Y-m-d', strtotime($request['to_date'])); $model = $model->andWhere(['<=', 'DATE(t.order_date_time)', $to_date]); } if ($request['report'] !== '') { $model = $model->andWhere(['t.order_status' => $request['report']]); } $model = $model->orderBy(['t.order_id' => SORT_DESC])->all(); $this->setMessage('Retrived successfully'); return $model; } public function actionReportDetails() { $request = Yii::$app->getRequest()->post(); $params = ['vendor_key', 'order_key']; $this->checkRequiredParam($request, $params); $model = VendorApi::findOne(['vendor_key' => $request['vendor_key']]); if ($model === null) { $this->commonError(Yii::t('api', 'Invalid Vendor')); } $modelReport = VendorReportDetail::find() ->where(['order_key' => $request['order_key']]) ->one(); if ($modelReport === null) { $this->commonError(Yii::t('api', 'Invalid Order')); } return $modelReport; } public function actionOrderStatus() { $post = Yii::$app->getRequest()->post(); $params = ['vendor_key', 'order_key', 'delivery_status', 'cancel_reason']; $this->checkRequiredParam($post, $params); $request = $this->convertAttributes($post); $model = VendorApi::findOne(['vendor_key' => $request['vendor_key']]); if ($model === null) { $this->commonError(Yii::t('api', 'Invalid Vendor')); } $modelOrder = Order::findOne(['order_key' => $request['order_key']]); if ($modelOrder === null) { $this->commonError(Yii::t('api', 'Invalid Order')); } if($post['delivery_status'] == Order::ORDER_STATUS_REJECTED || $post['delivery_status'] == Order::ORDER_STATUS_DELIVERYBOY_REJECTED) { $userWebToken = User::find() ->select('device_token') ->where(['user_id' => $modelOrder->user_id]) ->andWhere(['not', ['device_token' => null]]) ->one(); $modelOrder->rejected_reason = $post['cancel_reason']; $modelOrder->save(false); } if($modelOrder->order_type != Order::ORDER_TYPE_DELIVERY) { $userDeviceToken = User::find() ->select('device_token') ->where(['user_id' => $modelOrder->user_id]) ->andWhere(['not', ['device_token' => null]]) ->one(); if($post['delivery_status'] == Order::ORDER_STATUS_ACCEPTED || $post['delivery_status'] == Order::ORDER_STATUS_PREPARED || $post['delivery_status'] == Order::ORDER_STATUS_READY_TO_PICKUP || $post['delivery_status'] == Order::ORDER_STATUS_ONTHEWAY || $post['delivery_status'] == Order::ORDER_STATUS_DELIVERED || $post['delivery_status'] == Order::ORDER_STATUS_REJECTED) { $token = $userDeviceToken != null? trim($userDeviceToken->device_token): ''; try { $oneSignal = OneSignal::getInstance(); $oneSignal->setAppId(Configuration::get(Configuration::PUSH_NOTIFICATION_APP_ID)); $oneSignal->setRestApiKey(Configuration::get(Configuration::PUSH_NOTIFICATION_REST_API_KEY)); $oneSignal->setIcon('http://online.kitokey.com/frontend/web/theme/images/notification.png'); $oneSignal->push( ['en' => 'Order status'], ['en' => 'Your Order '. '#'.$modelOrder->order_number.' has been ' . $modelOrder->getOrderStatusLabelCustom($post['delivery_status'])], [$token], ['status' => 'Message Sent Successfully'] ); } catch (Exception $e) { $result['msg'] = $e->getMessage(); //echo $e->getMessage(); } } $modelOrder->order_status = $post['delivery_status']; $modelOrder->save(false); $this->setMessage('Order status updated successfully'); } else { if($post['delivery_status'] == Order::ORDER_STATUS_ACCEPTED) { $requestData = []; $requestData['vendor_location'] = [ 'latitude' => $model->vendor_latitude, 'longitude' => $model->vendor_longitude, ]; $responseData = Com::getJsonData('PUT', Configuration::get(Configuration::DELIVERY_BOY_ACCESS_URL) . "order/".$modelOrder->order_key."/".$post['delivery_status']."?company_id=" . Configuration::get(Configuration::COMPANY_KEY), $requestData, 1); } else { if($post['delivery_status'] == Order::ORDER_STATUS_PREPARED || $post['delivery_status'] == Order::ORDER_STATUS_READY_TO_PICKUP) { if($modelOrder->deliveryboy_id != '' && $modelOrder->deliveryboy_id != null ) { $responseData = Com::getJsonData('PUT', Configuration::get(Configuration::DELIVERY_BOY_ACCESS_URL) . "order/".$modelOrder->order_key."/".$post['delivery_status']."?company_id=" . Configuration::get(Configuration::COMPANY_KEY), [], 0); } else { $this->commonError(Yii::t('api', 'Order Not Accepted By Delivery Boy')); } } else { $responseData = Com::getJsonData('PUT', Configuration::get(Configuration::DELIVERY_BOY_ACCESS_URL) . "order/".$modelOrder->order_key."/".$post['delivery_status']."?company_id=" . Configuration::get(Configuration::COMPANY_KEY), [], 0); } } if ($responseData != null && $responseData->status == 200) { $this->setMessage('Order status updated successfully'); } else { $this->commonError(Yii::t('api', 'Some thing went wrong, Please try again')); } } return []; } public function actionSignatureImage() { $request = Yii::$app->getRequest()->post(); $params = ['order_key']; $this->checkRequiredParam($request, $params); $model = Order::findOne(['order_key' => $request['order_key']]); $uploadedFile = UploadedFile::getInstanceByName('signature_image'); if (!$uploadedFile == null) { $uploadHelper = UploadHelper::getInstance(); $uploadHelper->setPath($uploadHelper::SIGNATURE); $uploadHelper->setUploadedFile($uploadedFile); $path = $uploadHelper->getPath(true); $uploadedFile->saveAs($path); $realpath = $uploadHelper->getRealPath($path); $model->signature_image = '/'. $realpath; $model->save(false); } $this->setMessage('Signature added successfully'); return []; } public function actionGetSignature() { $request = Yii::$app->getRequest()->post(); $params = ['order_key']; $this->checkRequiredParam($request, $params); $model = OrderSignature::findOne(['order_key' => $request['order_key']]); if($model == null) { $this->commonError(Yii::t('api', 'Invalid Order')); } $this->setMessage('Signature get successfully'); return $model; } private function convertAttributes($data) { $attributes = [ 'vendor_key' => 'vendor_key', 'vendor_contact_name' => 'vendor_name', 'vendor_contact_email' => 'vendor_email', 'vendor_contact_number' => 'vendor_contact_number', 'vendor_password' => 'password', 'device_token' => 'device_token', 'device_type' => 'device_type', 'order_key' => 'order_key', 'delivery_status' => 'order_status', 'cancel_reason' => 'rejected_reason' ]; $request = []; foreach ($data as $value => $row) { foreach ($attributes as $key => $attribute) { if ($value === $key) { $request[$attribute] = $row; } } } return $request; } }
Save
cmd:
run