public function overzicht(Request $request) { // sort data if ($request->session()->has('order')) { $order = $request->session()->get('order'); $orderby = $order['by']; $orderdirection = $order['direction']; } else { $orderby = 'end_date'; $orderdirection = 'asc'; } if ($orderby == 'popular') { if ($request->session()->has('filter')) { $arts = Auction::select(DB::raw('auctions.*, count(*) as `totalbids`'))->join('bids', 'auctions.id', '=', 'bids.auction_id')->groupBy('auction_id')->orderBy('totalbids', 'desc')->where('active', '=', true)->where('end_date', '>', Carbon::now())->paginate(8); } else { /* no filter */ $arts = Auction::select(DB::raw('auctions.*, count(*) as `totalbids`'))->join('bids', 'auctions.id', '=', 'bids.auction_id')->groupBy('auction_id')->orderBy('totalbids', 'desc')->where('active', '=', true)->where('end_date', '>', Carbon::now())->paginate(8); } } else { if ($request->session()->has('filter')) { $filter = $request->session()->get('filter'); $query = Auction::query(); $query->orderBy($orderby, $orderdirection); $query->where('end_date', '>', Carbon::now()); $query->where('active', '=', true); $query->paginate(8); if (isset($filter['price']['on'])) { if ($filter['price']['on'] == true) { $query->whereBetween('price_buy', array($filter['price']['bottom'], $filter['price']['top'])); } } if (isset($filter['era']['on'])) { if ($filter['era']['on'] == true) { $query->whereBetween('year', array($filter['era']['bottom'], $filter['era']['top'])); } } if (isset($filter['style']['on'])) { if ($filter['style'] == true) { $query->where('auctionstyle_id', '=', $filter['style']['bottom']); } } $arts = $query->get(); } else { /* no filter */ $arts = Auction::orderBy($orderby, $orderdirection)->where('end_date', '>', Carbon::now())->where('active', '=', true)->paginate(8); } } // get styles $styles = Auctionstyle::all(); return view('overzicht', compact('arts', 'styles')); }
public function getUserLots($id, Request $request) { $lots = Auction::query(); $lots = $lots->where('status', '>', 0); // Выбираем только утвержденные $lots = $lots->where('user', '=', $id); // Принадлежащие пользователю по переданному ID if ($request->sortBy == 'lowcost') { $lots = $lots->orderBy('starting_price', 'asc'); } elseif ($request->sortBy == 'topcost') { $lots = $lots->orderBy('starting_price', 'desc'); } else { $lots = $lots->orderBy('starting_price', 'desc'); } if ($request->items_per_page) { $lots = $lots->paginate($request->items_per_page); } else { $lots = $lots->paginate(10); } $user = User::find($id); $cats = Cat::roots()->get(); return view('auction.profile-lots', ['lots' => $lots, 'categories' => $cats, 'currentCategory' => null, 'request' => null, 'user' => $user]); }
/** * Поиск по аукционам в админ-панели */ public function getSearchAuctions(Request $request) { $auctions = Auction::query(); if ($request->category) { $auctions = $auctions->where(['category' => $request->category]); } if ($request->title) { $auctions = $auctions->where('id', '=', $request->title)->orWhere('title', 'like', '%' . $request->title . '%'); } if ($request->status != 'del') { if ($request->status == 1) { $auctions = $auctions->where('in_archive', '=', 1); } else { $auctions = $auctions->where('status', '=', $request->status); } } if ($request->price_from) { $auctions = $auctions->where('starting_price', '>=', $request->price_from); } if ($request->price_to) { $auctions = $auctions->where('starting_price', '<=', $request->price_to); } if ($request->region) { $auctions = $auctions->where('region', '=', $request->region); } if ($request->city) { $auctions = $auctions->where('city', 'like', '%' . $request->city . '%'); } if ($request->free_sale) { $auctions = $auctions->where('free_sale', '=', 1); } if ($request->sortBy == 'lowcost') { $auctions = $auctions->orderBy('starting_price', 'asc'); } elseif ($request->sortBy == 'topcost') { $auctions = $auctions->orderBy('starting_price', 'desc'); } else { $auctions = $auctions->orderBy('id', 'desc'); } if ($request->items_per_page) { $auctions = $auctions->paginate($request->items_per_page); } else { $auctions = $auctions->paginate(10); } return view('dashboard.auctions.search', ['auctions' => $auctions, 'request' => $request]); }
/** * Display a listing of the resource. * * @return Response */ public function index($id, Request $request) { $auctions = Auction::query(); $auctions = $auctions->where('category', '=', $id); $auctions = $auctions->where('status', '>', 0); if ($request->sortBy == 'lowcost') { $auctions = $auctions->orderBy('starting_price', 'asc'); } elseif ($request->sortBy == 'topcost') { $auctions = $auctions->orderBy('starting_price', 'desc'); } elseif ($request->sortBy == 'new') { $auctions = $auctions->orderBy('created_at', 'desc'); } elseif ($request->sortBy == 'new') { $auctions = $auctions->orderBy('created_at', 'desc'); } else { $request->sortBy = 'new'; $auctions = $auctions->orderBy('created_at', 'desc'); } if ($request->items_per_page) { $auctions = $auctions->paginate($request->items_per_page); } else { $auctions = $auctions->paginate(10); } $categories = Cat::roots()->get(); $currentCategory = Cat::find($id); return view('auction.categories.index', ['auctions' => $auctions, 'categories' => $categories, 'currentCategory' => $currentCategory, 'request' => $request]); }
/** * Обрабатываем стандартный и расширенный поиск для категории "Техника и мебель" */ public function getStuffQuery(Request $request) { $auctions = Auction::query(); $auctions = $auctions->where('category', '=', $request->category); if ($request->lot_type) { $auctions = $auctions->where('lot_type', '=', $request->lot_type); } if ($request->region) { $auctions = $auctions->where('region', '=', $request->region); } if ($request->title) { $auctions = $auctions->where('title', 'like', '%' . $request->title . '%')->orWhere('id', '=', $request->title); } if ($request->city) { $auctions = $auctions->where('city', 'like', '%' . $request->city . '%'); } if ($request->lot_DebtorName) { $auctions = $auctions->where('lot_DebtorName', 'like', '%' . $request->lot_DebtorName . '%'); } if ($request->lot_EDRPOU) { $auctions = $auctions->where('lot_EDRPOU', '=', $request->lot_EDRPOU); } if ($request->property_type) { $auctions = $auctions->whereIn('property_type', $request->property_type); } if ($request->price_from) { $auctions = $auctions->where('starting_price', '<=', $request->price_from); } if ($request->price_to) { $auctions = $auctions->where('starting_price', '<=', $request->price_to); } if ($request->date_start) { $auctions = $auctions->where('data_start', '>=', Carbon::parse($request->date_start)->format('Y-m-d')); } if ($request->date_end) { $auctions = $auctions->where('date_end', '<=', Carbon::parse($request->date_end)->format('Y-m-d')); } if ($request->lot_number) { $auctions = $auctions->where('id', '=', $request->lot_number); } if ($request->lot_user) { $searchTerms = explode(' ', $request->lot_user); $query = User::query(); foreach ($searchTerms as $searchTerm) { $query->where(function ($q) use($searchTerm) { $q->where('first_name', 'like', '%' . $searchTerm . '%')->orWhere('last_name', 'like', '%' . $searchTerm . '%')->orWhere('legal_entity', 'like', '%' . $searchTerm . '%'); }); } $users = $query->get(); // Массив для ID обнаруженных пользователей $users_id = []; // Если есть пользователи, соответствующие запросу if ($users->count() > 0) { // Перебираем каждого пользователя foreach ($users as $user) { // Добавляем ID пользователя в массив $users_id array_push($users_id, $user->id); } } // Применяем фильтрацию по совпадению с ID в массиве $users_id $auctions = $auctions->whereIn('user', $users_id); } if ($request->stuff_brand) { $auctions = $auctions->where('stuff_brand', '=', $request->stuff_brand); } if ($request->stuff_model) { $auctions = $auctions->where('stuff_model', '=', $request->stuff_model); } if ($request->stuff_year) { $auctions = $auctions->where('stuff_year', '=', $request->stuff_year); } if ($request->stuff_diagonal) { $auctions = $auctions->where('stuff_diagonal', '=', $request->stuff_diagonal); } $auctions = $auctions->paginate(10); $categories = Cat::roots()->get(); $currentCategory = Cat::find($request->category); return view('auction.search', ['auctions' => $auctions, 'categories' => $categories, 'currentCategory' => $currentCategory, 'request' => $request]); }