shell bypass 403
<?php
namespace App\Http\Controllers\front;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Item;
use App\Models\Extra;
use App\Models\Ratting;
use App\Models\TopDeals;
use App\Models\Variation;
use App\Helpers\helper;
use App\Models\Order;
use App\Models\QuestionAnswer;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Session;
class ItemController extends Controller
{
public function showitem(Request $request)
{
if (Auth::user() && Auth::user()->type == 2) {
$user_id = @Auth::user()->id;
} else {
$user_id = "";
}
$iteminfo = Item::with(['variation', 'subcategory_info', 'category_info', 'item_image'])->select('item.*', DB::raw('(case when favorite.item_id is null then 0 else 1 end) as is_favorite'))->where('item.slug', '=', $request->slug)->leftJoin('favorite', function ($query) use ($user_id) {
$query->on('favorite.item_id', '=', 'item.id')
->where('favorite.user_id', '=', $user_id);
})->first();
$iteminfo->variants_json = json_decode($iteminfo->variants_json, true);
$iteminfo->view_count = $iteminfo->view_count + 1;
$iteminfo->update();
$variant = Variation::where('item_id', $iteminfo->id)->first();
$topdeals = TopDeals::first();
if ($iteminfo->has_variation == 1) {
if ($iteminfo->top_deals == 1) {
if (@$topdeals->offer_type == 1) {
$price = $variant->price - @$topdeals->offer_amount;
} else {
$price = $variant->price - $variant->price * (@$topdeals->offer_amount / 100);
}
$original_price = $variant->price;
} else {
$price = $variant->price;
$original_price = $variant->original_price;
}
} else {
if ($iteminfo->top_deals == 1) {
if (@$topdeals->offer_type == 1) {
$price = $iteminfo->price - @$topdeals->offer_amount;
} else {
$price = $iteminfo->price - $iteminfo->price * (@$topdeals->offer_amount / 100);
}
$original_price = $iteminfo->price;
} else {
$price = $iteminfo->price;
$original_price = $iteminfo->original_price;
}
}
$off = $original_price > 0 ? number_format(100 - ($price * 100) / $original_price, 1) : 0;
if (!empty($iteminfo)) {
$getitem = array(
"id" => $iteminfo->id,
"slug" => $iteminfo->slug,
"item_name" => $iteminfo->item_name,
"item_type" => $iteminfo->item_type,
"item_type_image" => $iteminfo->item_type == 1 ? helper::image_path("veg.svg") : helper::image_path("nonveg.svg"),
"preparation_time" => $iteminfo->preparation_time,
"price" => $price,
"available_qty" => $iteminfo->available_qty,
"is_featured" => $iteminfo->is_featured,
"tax" => $iteminfo->tax,
"image_name" => $iteminfo['item_image']->image_name,
"item_description" => $iteminfo->item_description,
"category_info" => $iteminfo->category_info,
"subcategory_info" => $iteminfo->subcategory_info,
"has_variation" => $iteminfo->has_variation,
"variants_json" => $iteminfo->variants_json,
"attribute" => ucfirst($iteminfo->attribute),
"variation" => $iteminfo->variation,
"qty" => $iteminfo->qty,
"stock_management" => $iteminfo->stock_management,
"min_order" => $iteminfo->min_order,
"max_order" => $iteminfo->max_order,
"original_price" => $original_price,
"item_status" => $iteminfo->item_status,
"is_deleted" => $iteminfo->is_deleted,
"is_favorite" => $iteminfo->is_favorite,
'top_deals' => $iteminfo->top_deals,
'sku' => $iteminfo->sku,
"video_url" => $iteminfo->video_url,
"extras" => Extra::where('item_id', $iteminfo->id)->get(),
);
$html = view('web.detail', compact('getitem', 'topdeals'))->render();
return response()->json(['status' => 1, 'output' => $html], 200);
}
return response()->json(['status' => 0, 'message' => trans('messages.wrong')], 200);
}
public function itemdetails(Request $request)
{
$user_id = @Auth::user()->id;
$session_id = Session::getId();
if ($user_id != null) {
$getitemdata = Item::with('category_info', 'subcategory_info', 'variation', 'item_images')->select('item.*', DB::raw('(case when favorite.item_id is null then 0 else 1 end) as is_favorite'), DB::raw('(case when item.price is null then 0 else item.price end) as item_price'), DB::raw('(case when cart.item_id is null then 0 else 1 end) as is_cart'), DB::raw('ROUND(AVG(testimonials.star),1) as ratings_average'))
->leftJoin('favorite', function ($query) use ($user_id) {
$query->on('favorite.item_id', '=', 'item.id')
->where('favorite.user_id', '=', $user_id);
})
->leftJoin('cart', function ($query) use ($user_id) {
$query->on('cart.item_id', '=', 'item.id')
->where('cart.user_id', '=', $user_id);
})
->leftJoin('testimonials', 'testimonials.item_id', '=', 'item.id')
->groupBy('item.id', 'cart.item_id')
->where('item.slug', '=', $request->slug)
->first();
if (!empty($getitemdata)) {
$getitemdata->variants_json = json_decode(@$getitemdata->variants_json, true);
$getitemdata->view_count = @$getitemdata->view_count + 1;
$getitemdata->update();
}
$getrelateditems = Item::with('category_info', 'subcategory_info', 'variation', 'item_images', 'extras')->select('item.*', DB::raw('(case when favorite.item_id is null then 0 else 1 end) as is_favorite'), DB::raw('(case when item.price is null then 0 else item.price end) as item_price'), DB::raw('(case when cart.item_id is null then 0 else 1 end) as is_cart'), DB::raw('ROUND(AVG(testimonials.star),1) as ratings_average'))
->leftJoin('favorite', function ($query) use ($user_id) {
$query->on('favorite.item_id', '=', 'item.id')
->where('favorite.user_id', '=', $user_id);
})
->leftJoin('cart', function ($query) use ($user_id) {
$query->on('cart.item_id', '=', 'item.id')
->where('cart.user_id', '=', $user_id);
})
->leftJoin('testimonials', 'testimonials.item_id', '=', 'item.id')
->groupBy('item.id', 'cart.item_id')
->orderByDesc('item.id')
->where('item.id', '!=', @$getitemdata->id)
->where('item.cat_id', '=', @$getitemdata->cat_id)
->where('item.item_status', '1')->where('item.is_deleted', '2')
->take(4)->get();
} else {
$getitemdata = Item::with('category_info', 'subcategory_info', 'variation', 'item_images', 'extras')->select('item.*', DB::raw('(case when item.price is null then 0 else item.price end) as item_price'), DB::raw('(case when cart.item_id is null then 0 else 1 end) as is_cart'), DB::raw('ROUND(AVG(testimonials.star),1) as ratings_average'))
->leftJoin('cart', function ($query) use ($session_id) {
$query->on('cart.item_id', '=', 'item.id')
->where('cart.session_id', '=', $session_id);
})->leftJoin('testimonials', 'testimonials.item_id', '=', 'item.id')
->groupBy('item.id', 'cart.item_id')
->where('item.slug', '=', $request->slug)
->first();
if (!empty($getitemdata)) {
$getitemdata->view_count = $getitemdata->view_count + 1;
$getitemdata->update();
$getitemdata->variants_json = json_decode($getitemdata->variants_json, true);
}
$getrelateditems = Item::with('category_info', 'subcategory_info', 'variation', 'item_images')->select('item.*', DB::raw('(case when item.price is null then 0 else item.price end) as item_price'), DB::raw('(case when cart.item_id is null then 0 else 1 end) as is_cart'), DB::raw('ROUND(AVG(testimonials.star),1) as ratings_average'))
->leftJoin('cart', function ($query) use ($session_id) {
$query->on('cart.item_id', '=', 'item.id')
->where('cart.session_id', '=', $session_id);
})
->leftJoin('testimonials', 'testimonials.item_id', '=', 'item.id')
->groupBy('item.id', 'cart.item_id')
->orderByDesc('item.id')
->where('item.id', '!=', @$getitemdata->id)
->where('item.cat_id', '=', @$getitemdata->cat_id)
->where('item.item_status', '1')->where('item.is_deleted', '2')
->take(4)->get();
}
$testimonials = Ratting::with('user_info')->where('item_id', @$getitemdata->id)->where('status', 1)->orderByDesc('id')->get();
$orders = Order::where('order.user_id', @Auth::user()->id)->join('order_details', 'order.id', 'order_details.order_id')->where('order_details.item_id', @$getitemdata->id)->where('order.status_type', '3')->count();
$rattingcount = Ratting::where('user_id', @Auth::user()->id)->where('item_id', @$getitemdata->id)->count();
$averagerating = Ratting::where('item_id', @$getitemdata->id)->where('status', 1)->avg('star');
$totalreview = Ratting::where('item_id', @$getitemdata->id)->where('status', 1)->count();
$fivestaraverage = Ratting::where('item_id', @$getitemdata->id)->where('star', 5)->where('status', 1)->count('star');
$fourstaraverage = Ratting::where('item_id', @$getitemdata->id)->where('star', 4)->where('status', 1)->count('star');
$threestaraverage = Ratting::where('item_id', @$getitemdata->id)->where('star', 3)->where('status', 1)->count('star');
$twostaraverage = Ratting::where('item_id', @$getitemdata->id)->where('star', 2)->where('status', 1)->count('star');
$onestaraverage = Ratting::where('item_id', @$getitemdata->id)->where('star', 1)->where('status', 1)->count('star');
$topdeals = TopDeals::first();
$question_answer = QuestionAnswer::where('product_id', $getitemdata->id)->whereNot('answer', '')->get();
return view('web.productdetails', compact('getitemdata', 'getrelateditems', 'testimonials', 'orders', 'rattingcount', 'averagerating', 'totalreview', 'fivestaraverage', 'fourstaraverage', 'threestaraverage', 'twostaraverage', 'onestaraverage', 'topdeals','question_answer'));
}
public function search(Request $request)
{
$user_id = @Auth::user()->id;
$session_id = Session::getId();
if ($user_id != null) {
$getsearchitems = Item::with('category_info', 'subcategory_info', 'variation', 'item_image')->select('item.*', DB::raw('(case when favorite.item_id is null then 0 else 1 end) as is_favorite'), DB::raw('(case when item.price is null then 0 else item.price end) as item_price'), DB::raw('(case when cart.item_id is null then 0 else 1 end) as is_cart'))
->leftJoin('order_details', 'order_details.item_id', 'item.id')
->leftJoin('favorite', function ($query) use ($user_id) {
$query->on('favorite.item_id', '=', 'item.id')
->where('favorite.user_id', '=', $user_id);
})
->leftJoin('cart', function ($query) use ($user_id) {
$query->on('cart.item_id', '=', 'item.id')
->where('cart.user_id', '=', $user_id);
})
->groupBy('order_details.item_id', 'item.id', 'cart.item_id')
->where('item.item_name', 'like', '%' . $request->itemname . '%')
->where('item.item_status', '1')->where('item.is_deleted', '2')
->orderByDesc('item.id')->paginate(15);
} else {
$getsearchitems = Item::with('category_info', 'subcategory_info', 'variation', 'item_image')->select('item.*', DB::raw('(case when item.price is null then 0 else item.price end) as item_price'), DB::raw('(case when cart.item_id is null then 0 else 1 end) as is_cart'))
->leftJoin('order_details', 'order_details.item_id', 'item.id')
->leftJoin('cart', function ($query) use ($session_id) {
$query->on('cart.item_id', '=', 'item.id')
->where('cart.session_id', '=', $session_id);
})
->groupBy('order_details.item_id', 'item.id', 'cart.item_id')
->where('item.item_name', 'like', '%' . $request->itemname . '%')
->where('item.item_status', '1')->where('item.is_deleted', '2')
->orderByDesc('item.id')->paginate(16);
}
return view('web.search', compact('getsearchitems'));
}
public function viewall(Request $request)
{
$user_id = @Auth::user()->id;
$session_id = Session::getId();
$getsearchitems = array();
if ($user_id != null) {
if ($request->has('type') && $request->type != "" && in_array($request->type, array('todayspecial', 'topitems', 'recommended', 'topdeals'))) {
$getsearchitems = Item::with('category_info', 'subcategory_info', 'variation', 'item_image')->select('item.*', DB::raw('(case when favorite.item_id is null then 0 else 1 end) as is_favorite'), DB::raw('(case when item.price is null then 0 else item.price end) as item_price'), DB::raw('(case when cart.item_id is null then 0 else 1 end) as is_cart'), DB::raw('count(order_details.item_id) as item_order_counter'))
->leftJoin('order_details', 'order_details.item_id', 'item.id')
->leftJoin('favorite', function ($query) use ($user_id) {
$query->on('favorite.item_id', '=', 'item.id')
->where('favorite.user_id', '=', $user_id);
})
->leftJoin('cart', function ($query) use ($user_id) {
$query->on('cart.item_id', '=', 'item.id')
->where('cart.user_id', '=', $user_id);
})
->groupBy('item.id', 'cart.item_id')->where('item.item_status', '1')->where('item.is_deleted', '2');
if ($request->has('type') && $request->type != "") {
if ($request->type == "todayspecial") {
$getsearchitems = $getsearchitems->where('item.is_featured', '1')->orderByDesc('item.id');
}
if ($request->type == "topitems") {
$getsearchitems = $getsearchitems->orderByDesc('item_order_counter');
}
if ($request->type == "recommended") {
$getsearchitems = $getsearchitems->inRandomOrder();
}
if ($request->type == "topdeals") {
$getsearchitems = $getsearchitems->where('item.top_deals', 1);
}
}
if ($request->has('filter') && $request->filter != "") {
if ($request->filter == "veg") {
$getsearchitems = $getsearchitems->where('item.item_type', 1);
}
if ($request->filter == "nonveg") {
$getsearchitems = $getsearchitems->where('item.item_type', 2);
}
}
$getsearchitems = $getsearchitems->paginate(15);
}
} else {
if ($request->has('type') && $request->type != "" && in_array($request->type, array('todayspecial', 'topitems', 'recommended', 'topdeals'))) {
$getsearchitems = Item::with('category_info', 'subcategory_info', 'variation', 'item_image')->select('item.*', DB::raw('(case when item.price is null then 0 else item.price end) as item_price'), DB::raw('(case when cart.item_id is null then 0 else 1 end) as is_cart'), DB::raw('count(order_details.item_id) as item_order_counter'))
->leftJoin('order_details', 'order_details.item_id', 'item.id')
->leftJoin('cart', function ($query) use ($session_id) {
$query->on('cart.item_id', '=', 'item.id')
->where('cart.session_id', '=', $session_id);
})
->groupBy('item.id', 'cart.item_id')->where('item.item_status', '1')->where('item.is_deleted', '2');
if ($request->has('type') && $request->type != "") {
if ($request->type == "todayspecial") {
$getsearchitems = $getsearchitems->where('item.is_featured', '1')->orderByDesc('item.id');
}
if ($request->type == "topitems") {
$getsearchitems = $getsearchitems->orderByDesc('item_order_counter');
}
if ($request->type == "recommended") {
$getsearchitems = $getsearchitems->inRandomOrder();
}
if ($request->type == "topdeals") {
$getsearchitems = $getsearchitems->where('item.top_deals', 1);
}
}
if ($request->has('filter') && $request->filter != "") {
if ($request->filter == "veg") {
$getsearchitems = $getsearchitems->where('item.item_type', 1);
}
if ($request->filter == "nonveg") {
$getsearchitems = $getsearchitems->where('item.item_type', 2);
}
}
$getsearchitems = $getsearchitems->paginate(15);
}
}
$topdeals = TopDeals::first();
return view('web.viewall', compact('getsearchitems', 'topdeals'));
}
}