/** * Вывод результатов парсинга * @return string */ public function actionSearch() { if (!Yii::$app->user->isGuest) { if (Searched::uniqueSaveSearch(json_encode($_GET))) { $search = new Searched(); $search->url = json_encode($_GET); $search->user_id = Yii::$app->user->id; $search->plan_id = '1'; if ($search->save()) { if (Yii::$app->user->identity->role == User::ROLE_GOD) { $link = new ActiveDataProvider(['query' => Items::search($_GET), 'pagination' => ['pageSize' => 50]]); return $this->render('search', compact('link')); } else { $url_data = json_decode($search->url, true); return $this->redirect('/plans/set/' . $search->id . '/' . $url_data['category_id']); } } else { return $this->goHome(); } } else { return $this->redirect('/user/profile'); } } else { return $this->redirect('/user/register'); } }
protected function send() { $dataSender = null; $cutter = new GoogleUrlShortener(); $searched = Searched::find()->where(['status' => Searched::STATUS_ACTIVE])->andWhere(['!=', 'plan_id', '1'])->all(); foreach ($searched as $search) { $smsActive = Sms::find()->select('item_id')->where(['search_id' => $search->id])->all(); $data = json_decode($search->url, true); $arr = []; foreach ($smsActive as $item) { $arr[] = $item->item_id; } $data['exclude_id'] = $arr; $count_sms = Yii::$app->db->createCommand('SELECT * FROM sms WHERE search_id = ' . $search->id . ' AND CAST(created_at as DATE) = CAST(NOW() as DATE)')->execute(); $items = Items::search($data)->limit($search->plan->max_allow_sms - $count_sms)->all(); foreach ($items as $item) { $sms = new SmsClient('0676124113', '0673188966'); $smsBody = 'Ваш товар найден: ' . $cutter->shorten($item->url) . ($item->phone ? ' Тел. ' . $item->phone : ''); $id = $sms->sendSMS('Sishik.net', $search->user->phone, $smsBody); if ($sms->hasErrors()) { var_dump($sms->getErrors()); } else { $sms = new Sms(); $sms->search_id = $search->id; $sms->text = $smsBody; $sms->status = Sms::STATUS_DELIVERED; $sms->item_id = $item->id; $sms->save(); } } } }
public function actionIndex() { $dataSender = null; $searched = Searched::find()->where(['status' => Searched::STATUS_ACTIVE])->andWhere(['!=', 'plan_id', '1'])->all(); foreach ($searched as $search) { $items = Items::search(json_decode($search->url, true))->limit($search->plan->max_allow_sms)->all(); foreach ($items as $item) { $sms = new SmsClient('0676124113', '0673188966'); $id = $sms->sendSMS('Sishik.net', $search->user->phone, 'Ваш товар найден: ' . $item->url); if ($sms->hasErrors()) { var_dump($sms->getErrors()); } else { $sms = new Sms(); $sms->search_id = $search->id; $sms->text = 'Ваш товар найден: ' . $item->url; $sms->status = Sms::STATUS_DELIVERED; $sms->save(); } } } }