/**
  * @param ActiveRecord $category
  *
  * @return int
  */
 private function parseLinkData(ActiveRecord $category)
 {
     $offset = 0;
     // начало отсчета
     if ($category instanceof LetualCategory) {
         $linkEntity = new LetualLink();
     } elseif ($category instanceof RivegaucheCategory) {
         $linkEntity = new RivegaucheLink();
     } elseif ($category instanceof IledebeauteCategory) {
         $linkEntity = new IledebeauteLink();
     } elseif ($category instanceof ElizeCategory) {
         $linkEntity = new ElizeLink();
     } else {
         return 0;
     }
     do {
         $links = $category->getLinks($offset, 5);
         if (!empty($links)) {
             foreach ($links as $link) {
                 $service = new ParserService();
                 if ($linkEntity instanceof LetualLink) {
                     $urls = $service->collectLLinkData($link->link);
                 } elseif ($linkEntity instanceof RivegaucheLink) {
                     $urls = $service->collectRLinkData($link->link);
                 } elseif ($linkEntity instanceof IledebeauteLink) {
                     $urls = $service->collectILinkData($link->link);
                 } elseif ($linkEntity instanceof ElizeLink) {
                     $urls = $service->collectELinkData($link->link);
                 } else {
                     $urls = [];
                 }
                 foreach ($urls as $key => $url) {
                     $attributes = ['group' => $link->group, 'category' => $link->category, 'sub_category' => $link->sub_category];
                     $linkModel = $linkEntity::getByLink($url);
                     $linkModel->setAttributes($attributes);
                     $linkModel->save();
                 }
             }
             $z = 1;
             $offset += 5;
             unset($links);
             unset($client);
         } else {
             $z = 0;
         }
     } while ($z > 0);
     return 0;
 }
 /**
  * Метод проверяет собранные артикула
  */
 public function actionErrorProcessing()
 {
     $offset = 0;
     /** @var $entity ErrorProcessing */
     $entity = new ErrorProcessing();
     do {
         $links = $entity->getLinks($offset, 20);
         if (!empty($links)) {
             foreach ($links as $link) {
                 if (!$link->processing) {
                     $crawler = $this->getData($link->link);
                     if (!$crawler) {
                         continue;
                     }
                     $service = new ParserService();
                     $result = $service->checkProduct($crawler, ParserService::RIV);
                     if (!empty($result)) {
                         $errorProcess = ErrorProcessing::findOne(['link' => $link->link]);
                         $errorProcess->comment = $result;
                         $errorProcess->processing = 1;
                         $errorProcess->save();
                     }
                 }
                 //print_r($link->link);
                 unset($node);
                 unset($service);
                 unset($result);
             }
             $z = 1;
             $offset += 20;
             unset($links);
             unset($client);
         } else {
             $z = 0;
         }
     } while ($z > 0);
     return 0;
 }