/
alexey92
/
test
Обзор
Документация
Войти
/
alexey92
/
test
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
app/Http/Controllers/AffiliateController.php
218 строк
8 KB
alexeylavrentev
new test
07 ноя 2024, 14:33
07 ноя 2024, 14:33
8de66b9
Код
Авторство
О чём код?
<?php namespace App\Http\Controllers; use App\Models\Affiliate; use App\Models\User; use Illuminate\Http\Request; use Inertia\Inertia; class AffiliateController extends Controller { public function index() { $user = auth()->user(); // Получаем количество пользователей, которых пригласил текущий пользователь и у которых rang больше 0 $invitedUsersCount = User::where('invited_by', $user->login)->count(); $activeInvitedUsersCount = User::where('invited_by', $user->login)->where('rang', '>', 0)->count(); // Получаем пригласителя текущего пользователя $inviter = User::where('login', $user->invited_by)->first(); // Получаем все данные пригласителя (если пригласитель найден) $inviterData = $inviter ? $inviter->toArray() : null; //Определяем следующего куда встанет $parent = $user->login; $rd = User::where('login', $parent)->limit(1)->pluck('ref'); // Список рефов у него $refs = Affiliate::where('parent_login', $parent)->get()->pluck('user_login'); // Проверка количества рефов $col = count($refs); if ($col < $rd->first()) { $z = 1; } else { foreach ($refs as $key => $value) { $row1 = User::where('login', $value)->first(); $ran = $row1->rang; $rd = $row1->ref; if ($ran > 0) { $refs1[$key] = $value; $refov[$key] = $rd; } } if (!isset($refs1)) { $x = 1; } else { foreach ($refs1 as $key => $value) { $num = Affiliate::where('parent_login', $value)->count(); if ($num < $refov[$key]) { $parent = $value; $z = 1; break; } } } } // Если $z и $x не установлены... if (!isset($z) && !isset($x)) { unset($refs1, $refs); // Получаем список пользователей, чьи родители равны $parent и parent2 $refs = Affiliate::where('parent_login', $parent) ->orWhere('parent2_login', $parent) ->get()->pluck('user_login'); // Проверяем уровень и количество рефов для каждого пользователя foreach ($refs as $key => $value) { $row1 = User::where('login', $value)->first(); $ran = $row1->rang; $rd = $row1->ref; if ($ran > 0) { $refs1[$key] = $value; $refov[$key] = $rd; } } // Если $refs1 пусто, устанавливаем $x в 1 if (!isset($refs1)) { $x = 1; } else { // Для каждого пользователя в $refs1 проверяем количество рефов foreach ($refs1 as $key => $value) { $num = Affiliate::where('parent_login', $value)->count(); if ($num < $refov[$key]) { $parent = $value; $z = 1; break; } } } } // Если $z и $x не установлены... if (!isset($z) && !isset($x)) { unset($refs1, $refs); // Получаем список пользователей, чьи родители равны $parent и parent3 $refs = Affiliate::where('parent_login', $parent) ->orWhere('parent3_login', $parent) ->get()->pluck('user_login'); // Проверяем уровень и количество рефов для каждого пользователя foreach ($refs as $key => $value) { $row1 = User::where('login', $value)->first(); $ran = $row1->rang; $rd = $row1->ref; if ($ran > 0) { $refs1[$key] = $value; $refov[$key] = $rd; } } // Если $refs1 пусто, устанавливаем $x в 1 if (!isset($refs1)) { $x = 1; } else { // Для каждого пользователя в $refs1 проверяем количество рефов foreach ($refs1 as $key => $value) { $num = Affiliate::where('parent_login', $value)->count(); if ($num < $refov[$key]) { $parent = $value; $z = 1; break; } } } } // Если $z и $x не установлены... if (!isset($z) && !isset($x)) { unset($refs1, $refs); // Получаем список пользователей, чьи родители равны $parent и parent4 $refs = Affiliate::where('parent_login', $parent) ->orWhere('parent4_login', $parent) ->get()->pluck('user_login'); // Проверяем уровень и количество рефов для каждого пользователя foreach ($refs as $key => $value) { $row1 = User::where('login', $value)->first(); $ran = $row1->rang; $rd = $row1->ref; if ($ran > 0) { $refs1[$key] = $value; $refov[$key] = $rd; } } // Если $refs1 пусто, устанавливаем $x в 1 if (!isset($refs1)) { $x = 1; } else { // Для каждого пользователя в $refs1 проверяем количество рефов foreach ($refs1 as $key => $value) { $num = Affiliate::where('parent_login', $value)->count(); if ($num < $refov[$key]) { $parent = $value; $z = 1; break; } } } } $parentData = User::where('login', $parent)->first(); $parentUsers = collect(); $parents = Affiliate::where('parent_login', $user->login)->get(); foreach ($parents as $parent) { $parentUser = User::where('login', $parent->user_login)->first(); if ($parentUser) { $parentUsers->push($parentUser); } } $parentUsers2 = collect(); $parents2 = Affiliate::where('parent2_login', $user->login)->get(); foreach ($parents2 as $parent2) { $parentUser2 = User::where('login', $parent2->user_login)->first(); if ($parentUser2) { $parentUsers2->push($parentUser2); } } $parentUsers3 = collect(); $parents3 = Affiliate::where('parent3_login', $user->login)->get(); foreach ($parents3 as $parent3) { $parentUser3 = User::where('login', $parent3->user_login)->first(); if ($parentUser3) { $parentUsers3->push($parentUser3); } } $parentUsers4 = collect(); $parents4 = Affiliate::where('parent4_login', $user->login)->get(); foreach ($parents4 as $parent4) { $parentUser4 = User::where('login', $parent4->user_login)->first(); if ($parentUser4) { $parentUsers4->push($parentUser4); } } return Inertia::render('Affiliate/Affiliate', [ 'user' => $user, 'invitedUsersCount' => $invitedUsersCount, 'activeInvitedUsersCount' => $activeInvitedUsersCount, 'inviterData' => $inviterData, 'parent' => $parentData, 'parentUser' => $parentUsers, 'parentUser2' => $parentUsers2, 'parentUser3' => $parentUsers3, 'parentUser4' => $parentUsers4, ]); } }