66 lines
2.3 KiB
PHP
66 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Api\V2;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Resources\V2\Auction\AuctionBidProducts;
|
|
use App\Http\Resources\V2\Auction\AuctionPurchaseHistory;
|
|
use App\Http\Resources\V2\AuctionMiniCollection;
|
|
use App\Http\Resources\V2\AuctionProductDetailCollection;
|
|
use App\Models\AuctionProductBid;
|
|
use App\Models\Product;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
|
|
class AuctionProductController extends Controller
|
|
{
|
|
|
|
public function index()
|
|
{
|
|
$products = Product::latest()->where('published', 1)->where('auction_product', 1);
|
|
if (get_setting('seller_auction_product') == 0) {
|
|
$products = $products->where('added_by', 'admin');
|
|
}
|
|
$products = $products->where('auction_start_date', '<=', strtotime("now"))->where('auction_end_date', '>=', strtotime("now"));
|
|
|
|
|
|
return new AuctionMiniCollection($products->paginate(10));
|
|
}
|
|
|
|
|
|
public function details_auction_product(Request $request, $id)
|
|
{
|
|
$detailedProduct = Product::where('id', $id)->get();
|
|
return new AuctionProductDetailCollection($detailedProduct);
|
|
}
|
|
|
|
public function bided_products_list()
|
|
{
|
|
$own_bids = AuctionProductBid::where('user_id', auth()->id())->orderBy('id', 'desc')->pluck('product_id');
|
|
$bided_products = Product::whereIn('id', $own_bids)->paginate(10);
|
|
return AuctionBidProducts::collection($bided_products);
|
|
}
|
|
|
|
public function user_purchase_history(Request $request)
|
|
{
|
|
|
|
$orders = DB::table('orders')
|
|
->orderBy('code', 'desc')
|
|
->join('order_details', 'orders.id', '=', 'order_details.order_id')
|
|
->join('products', 'order_details.product_id', '=', 'products.id')
|
|
->where('orders.user_id', auth()->user()->id)
|
|
->where('products.auction_product', '1');
|
|
if ($request->payment_status != "" || $request->payment_status != null) {
|
|
$orders = $orders->where('orders.payment_status', $request->payment_status);
|
|
}
|
|
if ($request->delivery_status != "" || $request->delivery_status != null) {
|
|
$orders = $orders->where('orders.delivery_status', $request->delivery_status);
|
|
}
|
|
|
|
$orders = $orders->select('order_details.order_id as id')->paginate(15);
|
|
|
|
return AuctionPurchaseHistory::collection($orders);
|
|
}
|
|
}
|