public function getUserPartners($user, $levels = 0) { $return = ['users' => [], 'levels' => [], 'count' => 0, 'lastLevel' => 0]; $levels = []; $userIds = $user->user_id; for ($i = 1; $i <= $levels || !$levels; $i++) { if (!$userIds && $levels) { $levels[$i] = []; continue; } elseif (!$userIds && !$levels) { break; } $usersLevel = \Users\User::getList(['where' => [['parent_id', $userIds, 'IN']]]); $return['users'] += $usersLevel; $return['levels'][$i] = array_keys($usersLevel); $userIds = implode(',', $return['levels'][$i]); $return['lastLevel'] = $i; } $return['count'] = count($return['users']); return $return; }