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

50 lines
1.3 KiB
PHP

<?php
namespace App\Endpoint\Api\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Store;
use App\Endpoint\Api\Http\Resources\StoreResource;
use App\Endpoint\Api\Http\Resources\ProductSkuTinyResource;
use App\Models\ProductSku;
use App\Helpers\Paginator;
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 = ['id', 'name', 'cover', 'sell_price', 'vip_price', 'market_price'];
$skus = $store->productSkus()->select($fields)->filter($input)->online()->simplePaginate(Paginator::resolvePerPage('per_page', 20, 50));
return ProductSkuTinyResource::collection($skus);
}
}