public function actionTest2() { /* нужно сделать сарипт на WT который будет отправлять рассылку в очередь основываясь на таблице - Нужно делать 2 версии для узбекистана и остальные - Если в рассылки меньше 4 предложений то не отправлять такое предложение */ $logTable = SubscribeTable::fetchAll(DBQueryParamsClass::CreateParams()->setConditions("date2=:date")->setParams(array(":date" => date("Y-m-d")))->setLimit(1)->setCache(0)); if (sizeof($logTable) > 0) { Yii::import("modules.console.components.*"); Yii::import("modules.console.controllers.*"); $worldCount = 0; $uzCount = 0; $itemCount = 0; $item = $logTable[0]; $sql = "SELECT count(id) as count_ FROM catalog_tours WHERE active=1"; if ($item->category_id->id > 0) { $sql .= " AND category_id='" . $item->category_id->id . "'"; } $worldCountArr = CatalogTours::sql($sql . " AND country_id='1' "); if (sizeof($worldCountArr) > 0) { $worldCount = $worldCountArr[0]["count_"]; } if ($item->country_id->id > 1) { $uzCountArr = CatalogTours::sql($sql . " AND country_id='" . $item->country_id->id . "'"); if (sizeof($uzCountArr) > 0) { $uzCount = $uzCountArr[0]["count_"]; } } else { $uzCountArr = CatalogTours::sql($sql . " AND country_id!=1 "); if (sizeof($uzCountArr) > 0) { $uzCount = $uzCountArr[0]["count_"]; } } $class = new SubscribeTableController(rand(100, 999)); echo $logTable[0]->id . "*"; // отпраляем рассылку для мира if ($worldCount > 4) { $message = $class->actionShow($logTable[0]->id, "", true); $usersGroup = SubscribeTableUsers::sql("SELECT id FROM subscribe_table_users WHERE id in( SELECT rightId FROM cat_relations WHERE leftClass='SubscribeTable' AND leftId='" . $logTable[0]->id . "' AND rightClass='SubscribeTableUsers' )"); foreach ($usersGroup as $key => $value) { $usersGroupsList[] = $value["id"]; } if (!empty($usersGroupsList) && sizeof($usersGroupsList) > 0) { if (SubscribesUzHelper::sendEmails($usersGroupsList, $logTable[0]->name, $message, 3)) { echo "Send in World"; } else { echo "Have the error, wen send in World"; } } } echo "<hr/>"; if ($uzCount > 4 && $logTable[0]->country_id->id != 1) { echo $class->actionShow($logTable[0]->id, "uzb", true); } // echo $message."*"; //if( SubscribesUzHelper::sendEmails( array( 7, 35, 41 ), $subject, $message, 3 ) )echo "Ура отправил"; // else echo "Что-то пошло не так"; } else { echo sizeof($logTable) . "*"; } //echo "</body></html>"; }
public function actionGeneration() { $countryList = CatalogCountry::sql("SELECT c.*, sum(l.count) FROM catalog_country c, cat_log_tours_country l WHERE c.id = l.country_id GROUP BY l.country_id ORDER BY sum(l.count) DESC LIMIT 16"); $categoryList = CatalogToursCategory::sql("SELECT c.*, sum(l.count) FROM catalog_tours_category c, cat_log_tours_category l WHERE c.id = l.category_id GROUP BY l.category_id ORDER BY sum(l.count) DESC LIMIT 16"); /* + Сначала выстакиваем популярыне странц + Затем вытаскиваем поплярные категории + Чередуем рассылки Взависимости от странцы выбираем пользователей - если узбекистан то всем если остальные страны то толкько по Узбекистана и Узбекистан агенства */ $indexDay = 0; $countDay = 0; $countryCount = 0; $categoryCount = 0; for ($i = 0; $i < sizeof($countryList) + sizeof($categoryList); $i++) { $county_Id = 0; $category_id = 0; $subject = ""; if ($i % 2 > 0) { $category_id = $categoryList[$categoryCount]["id"]; $subject = $categoryList[$categoryCount]["name"]; $categoryCount++; } else { $county_Id = $countryList[$countryCount]["id"]; $subject = !empty($countryList[$countryCount]["title"]) ? $countryList[$countryCount]["title"] : $countryList[$countryCount]["name"]; $countryCount++; } // Определяем дату if ($indexDay == 0) { if ($indexDay > 4) { $makeTime = mktime(0, 0, 0, date("m"), date("d") + $countDay + 6 - date("w"), date("Y")); $countDay += 6 - date("w"); } else { $makeTime = mktime(0, 0, 0, date("m"), date("d") + $countDay + 4 - date("w"), date("Y")); $countDay += 4 - date("w"); } $date = date("Y-m-d", $makeTime); $indexDay = date("w", $makeTime); } else { if ($indexDay == 1) { $makeTime = mktime(0, 0, 0, date("m"), date("d") + $countDay + 3, date("Y")); $indexDay = 4; $countDay += 3; } else { $makeTime = mktime(0, 0, 0, date("m"), date("d") + $countDay + 4, date("Y")); $indexDay = 1; $countDay += 4; } $date = date("Y-m-d", $makeTime); } $new = new SubscribeTable(); $new->date2 = $date; $new->country_id = $county_Id; $new->category_id = $category_id; $new->name = $subject; if (!$new->save()) { print_r($new->getErrors()); print_r($new); } } $list = SubscribeTable::fetchAll(DBQueryParamsClass::CreateParams()->setOrderBy("date2, id")->setLimit(-1)->setCache(0)); $this->render("index", ["list" => $list]); }