35 lines
		
	
	
		
			869 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			869 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace frontend\modules\api\services;
 | 
						|
 | 
						|
use frontend\modules\api\models\company\form\CompanyIdForm;
 | 
						|
use frontend\modules\api\models\company\mappers\CompanyPersonnelMapper;
 | 
						|
use frontend\modules\api\models\project\Project;
 | 
						|
 | 
						|
class PersonnelService
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * @param array $params
 | 
						|
     * @return array|CompanyIdForm
 | 
						|
     */
 | 
						|
    public function getPersonnel(array $params): CompanyIdForm|array
 | 
						|
    {
 | 
						|
        $form = new CompanyIdForm();
 | 
						|
        $form->load($params);
 | 
						|
 | 
						|
        if (!$form->validate()){
 | 
						|
            return $form;
 | 
						|
        }
 | 
						|
 | 
						|
        $projects = Project::find()->where(['company_id' => $form->company_id])->all();
 | 
						|
 | 
						|
        $personals = [];
 | 
						|
 | 
						|
        /** @var Project $project */
 | 
						|
        foreach ($projects as $project) {
 | 
						|
            $personals += CompanyPersonnelMapper::mapAll($project->projectUsers);
 | 
						|
        }
 | 
						|
 | 
						|
        return $personals;
 | 
						|
    }
 | 
						|
} |