4
0
Fork 0
dcat-admin-goods/src/Http/Api/GoodsController.php

51 lines
1.3 KiB
PHP

<?php
namespace Peidikeji\Goods\Http\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Peidikeji\Goods\Http\Resources\GoodsResource;
use Peidikeji\Goods\Http\Resources\GoodsSkuResource;
use Peidikeji\Goods\Http\Resources\GoodsTinyResource;
use Peidikeji\Goods\Models\Goods;
class GoodsController extends Controller
{
public function index(Request $request)
{
$query = Goods::filter($request->all());
$list = $query->show()->sort()->paginate($request->input('per_page'));
return $this->json(GoodsTinyResource::collection($list));
}
public function show($id)
{
$info = Goods::with(['skus'])->show()->findOrFail($id);
return $this->json(GoodsResource::make($info));
}
public function skus($id, Request $request)
{
$info = Goods::show()->findOrFail($id);
$query = $info->skus();
if ($request->filled('spec')) {
$spec = explode(',', $request->input('spec'));
$spec = array_map(function ($item) {
$ex = explode(':', $item);
return ['name' => data_get($ex, 0), 'value' => data_get($ex, 1)];
}, $spec);
$query->jsonArray($spec);
}
$list = $query->get();
return $this->json(GoodsSkuResource::collection($list));
}
}