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;
 | |
|     }
 | |
| } | 
