middleware(backpack_middleware()); } /** * Show the admin dashboard. * * @return \Illuminate\Http\Response */ public function dashboard() { $start_date = request('start_date'); $end_date = request('end_date'); $order = Order::where('payed',1); $bukja = BukjaOrder::where('status', 0)->orWhere('status', null)->count(); $users = User::select('id'); $userMaterials = UserMaterial::select('id'); if($start_date && $end_date) { $order->whereBetween('created_at',[date($start_date),date($end_date)]); $users->whereBetween('created_at',[date($start_date),date($end_date)]); $userMaterials->whereBetween('created_at',[date($start_date),date($end_date)]); $this->data['start_date'] = $start_date; $this->data['end_date'] = $end_date; } $this->data['category_views'] = Category::has('likes')->withCount([ 'likes as liked' => function ($query) use ($start_date, $end_date) { $query->select(DB::raw('SUM(likes.liked)')); if($start_date && $end_date) $query->whereBetween('likes.updated_at', [request('start_date'), request('end_date')]); }, 'likes as viewed' => function($query) use ($start_date, $end_date){ $query->select(DB::raw('SUM(likes.watched)')); if($start_date && $end_date) $query->whereBetween('likes.updated_at', [request('start_date'), request('end_date')]); } ])->get(); $this->data['category_orders'] = Category::has('orders')->withCount([ 'orders as payed' => function($query){ $query->select(DB::raw('SUM(orders.payed)')); }, 'orders as total' => function($query){ $query->select(DB::raw('SUM(orders.price)'))->where('orders.payed',1); } ])->get(); $this->data['orders'] = $order->count(); $this->data['users'] = $users->count(); $this->data['like'] = $userMaterials->where('liked',1)->count(); $this->data['title'] = trans('backpack::base.dashboard'); $this->data['views'] = Material::sum('view'); $this->data['bukja'] = $bukja; $this->data['watch'] = $userMaterials->count(); $this->data['field']['start_name'] = 'start'; $this->data['field']['end_name'] = 'end'; $this->data['field']['label'] = 'range'; return view('backpack::dashboard', $this->data); } public function cat_stats($cat_id){ $start_date = request('start_date'); $end_date = request('end_date'); $filter_orders =""; $filter_likes =""; if($start_date && $end_date) { $filter_orders = " and (orders.updated_at BETWEEN {$start_date} and {$end_date})"; $filter_likes = " and (likes.updated_at BETWEEN {$start_date} and {$end_date})"; } $category = Category::findOrfail($cat_id); $materials= $category->materials() ->select('materials.title', DB::raw("(Select COUNT(likes.watched) From likes Where likes.material_id = materials.id {$filter_likes}) as view"), DB::raw("(Select SUM(likes.liked) From likes Where likes.material_id = materials.id {$filter_likes}) as likes"), DB::raw("(Select COUNT(orders.id) From orders Where orders.material_id = materials.id and orders.payed = 1{$filter_orders}) as orders"), DB::raw("(Select SUM(orders.price) From orders Where orders.material_id = materials.id and orders.payed = 1{$filter_orders}) as total")) ->get(); return view('vendor.backpack.material_stats') ->with(['category' => $category, 'materials' => $materials]); } }