Example #1
0
 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]);
 }