remote jobs
This commit is contained in:
		@@ -136,6 +136,20 @@ class HhController extends Controller
 | 
				
			|||||||
        return $this->redirect(['/hh/hh']);
 | 
					        return $this->redirect(['/hh/hh']);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function actionGetJobsRemote($id)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $model = \common\models\Hh::findOne($id);
 | 
				
			||||||
 | 
					        $jobs = HHService::run()->company($model->hh_id)->getJobs();
 | 
				
			||||||
 | 
					        $count = 0;
 | 
				
			||||||
 | 
					        foreach ((array)$jobs as $job) {
 | 
				
			||||||
 | 
					            if(HhJob::createFromHHRemote($job)){
 | 
				
			||||||
 | 
					                $count++;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        Yii::$app->session->setFlash('success', "Получено $count новых вакансий");
 | 
				
			||||||
 | 
					        return $this->redirect(['/hh/hh']);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Finds the Hh model based on its primary key value.
 | 
					     * Finds the Hh model based on its primary key value.
 | 
				
			||||||
     * If the model is not found, a 404 HTTP exception will be thrown.
 | 
					     * If the model is not found, a 404 HTTP exception will be thrown.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -34,12 +34,19 @@ $this->params['breadcrumbs'][] = $this->title;
 | 
				
			|||||||
                'class' => 'yii\grid\DataColumn',
 | 
					                'class' => 'yii\grid\DataColumn',
 | 
				
			||||||
                'format' => 'raw',
 | 
					                'format' => 'raw',
 | 
				
			||||||
                'value' => function ($model) {
 | 
					                'value' => function ($model) {
 | 
				
			||||||
                    return Html::a('Получить вакансии', \yii\helpers\Url::to([
 | 
					                    $html = Html::a('Получить все вакансии', \yii\helpers\Url::to([
 | 
				
			||||||
                        '/hh/hh/get-jobs',
 | 
					                        '/hh/hh/get-jobs',
 | 
				
			||||||
                        'id' => $model->id
 | 
					                        'id' => $model->id
 | 
				
			||||||
                    ]), [
 | 
					                    ]), [
 | 
				
			||||||
                        'class' => 'btn btn-success'
 | 
					                        'class' => 'btn btn-success'
 | 
				
			||||||
                    ]);
 | 
					                    ]);
 | 
				
			||||||
 | 
					                    $html = $html . '<br><br>' . $html = Html::a('Только "удаленная работа"', \yii\helpers\Url::to([
 | 
				
			||||||
 | 
					                            '/hh/hh/get-jobs-remote',
 | 
				
			||||||
 | 
					                            'id' => $model->id
 | 
				
			||||||
 | 
					                        ]), [
 | 
				
			||||||
 | 
					                            'class' => 'btn btn-success'
 | 
				
			||||||
 | 
					                        ]);
 | 
				
			||||||
 | 
					                    return $html;
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,7 +9,8 @@ use yii\widgets\DetailView;
 | 
				
			|||||||
$this->title = $model->title;
 | 
					$this->title = $model->title;
 | 
				
			||||||
$this->params['breadcrumbs'][] = ['label' => 'hh.ru', 'url' => ['index']];
 | 
					$this->params['breadcrumbs'][] = ['label' => 'hh.ru', 'url' => ['index']];
 | 
				
			||||||
$this->params['breadcrumbs'][] = $this->title;
 | 
					$this->params['breadcrumbs'][] = $this->title;
 | 
				
			||||||
//\common\classes\Debug::dd(\common\hhapi\core\service\HHService::run()->company($model->hh_id)->get())
 | 
					//\common\classes\Debug::prn(\common\hhapi\core\service\HHService::run()->vacancy(28246746)->get());
 | 
				
			||||||
 | 
					//\common\classes\Debug::dd(\common\hhapi\core\service\HHService::run()->company($model->hh_id)->getJobs())
 | 
				
			||||||
?>
 | 
					?>
 | 
				
			||||||
<div class="hh-view">
 | 
					<div class="hh-view">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,6 +2,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
namespace common\models;
 | 
					namespace common\models;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use common\hhapi\core\service\HHService;
 | 
				
			||||||
use Yii;
 | 
					use Yii;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@@ -16,6 +17,7 @@ use Yii;
 | 
				
			|||||||
 * @property int $salary_to
 | 
					 * @property int $salary_to
 | 
				
			||||||
 * @property string $salary_currency
 | 
					 * @property string $salary_currency
 | 
				
			||||||
 * @property string $address
 | 
					 * @property string $address
 | 
				
			||||||
 | 
					 * @property string $schedule
 | 
				
			||||||
 * @property int $dt_add
 | 
					 * @property int $dt_add
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
class HhJob extends \yii\db\ActiveRecord
 | 
					class HhJob extends \yii\db\ActiveRecord
 | 
				
			||||||
@@ -36,7 +38,7 @@ class HhJob extends \yii\db\ActiveRecord
 | 
				
			|||||||
        return [
 | 
					        return [
 | 
				
			||||||
            [['employer_id', 'hh_id', 'salary_from', 'salary_to', 'dt_add'], 'integer'],
 | 
					            [['employer_id', 'hh_id', 'salary_from', 'salary_to', 'dt_add'], 'integer'],
 | 
				
			||||||
            [['title', 'url', 'address'], 'string', 'max' => 255],
 | 
					            [['title', 'url', 'address'], 'string', 'max' => 255],
 | 
				
			||||||
            [['salary_currency'], 'string', 'max' => 100],
 | 
					            [['salary_currency', 'schedule'], 'string', 'max' => 100],
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -56,6 +58,7 @@ class HhJob extends \yii\db\ActiveRecord
 | 
				
			|||||||
            'salary_currency' => 'З.П. валюта',
 | 
					            'salary_currency' => 'З.П. валюта',
 | 
				
			||||||
            'address' => 'Адрес',
 | 
					            'address' => 'Адрес',
 | 
				
			||||||
            'dt_add' => 'Дата',
 | 
					            'dt_add' => 'Дата',
 | 
				
			||||||
 | 
					            'schedule' => 'График',
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -81,8 +84,21 @@ class HhJob extends \yii\db\ActiveRecord
 | 
				
			|||||||
                $j->salary_to = $data->item->salary->to;
 | 
					                $j->salary_to = $data->item->salary->to;
 | 
				
			||||||
                $j->salary_currency = $data->item->salary->currency;
 | 
					                $j->salary_currency = $data->item->salary->currency;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					            if (!empty($data->item->schedule)) {
 | 
				
			||||||
 | 
					                $j->schedule = $data->item->schedule->id;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            return $j->save();
 | 
					            return $j->save();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return false;
 | 
					        return false;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static function createFromHHRemote($data)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $v = HHService::run()->vacancy($data->item->id)->get();
 | 
				
			||||||
 | 
					        if($v->schedule->id === 'remote'){
 | 
				
			||||||
 | 
					            $data->item->schedule = $v->schedule;
 | 
				
			||||||
 | 
					            return self::createFromHH($data);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use yii\db\Migration;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Handles adding schedule to table `hh_job`.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					class m181121_150057_add_schedule_column_to_hh_job_table extends Migration
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * {@inheritdoc}
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function safeUp()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $this->addColumn('hh_job', 'schedule', $this->string(100));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * {@inheritdoc}
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function safeDown()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $this->dropColumn('hh_job', 'schedule');
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user