6
0
Fork 0
jiqu-library-server/app/Endpoint/Api/Http/Controllers/StoreController.php

54 lines
1.5 KiB
PHP

<?php
namespace App\Endpoint\Api\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Store\Store;
use App\Models\ProductSku;
use App\Helpers\Paginator;
use App\Endpoint\Api\Http\Resources\{StoreResource, StoreProductResource};
class StoreController extends Controller
{
public function index(Request $request)
{
$query = Store::effective()->sort();
if ($request->filled('title')) {
$query->where('title', 'like', '%'.$request->input('title').'%');
}
$list = $query->simplePaginate($request->input('per_page', 10));
return StoreResource::collection($list);
}
public function show($id)
{
$info = Store::findOrFail($id);
return StoreResource::make($info);
}
public function products($id, Request $request)
{
$store = Store::findOrFail($id);
$input = $request->all();
if ($request->isNotFilled('sort')) {
$input['sort'] = '-id';
}
$fields = ['product_skus.id', 'product_skus.name', 'product_skus.cover', 'product_skus.sell_price', 'product_skus.vip_price', 'product_skus.market_price', 'store_product_skus.amount'];
$skus = $store->productSkus()
->select($fields)
->filter($input)
->online()
->wherePivot('status', 1)
->simplePaginate(Paginator::resolvePerPage('per_page', 20, 50));
return StoreProductResource::collection($skus);
}
}