query('part'))) { $part = ProductPart::where('key', $key)->first(); } $paginator = ProductPartSku::with('sku:id,name,cover,sell_price,vip_price') ->whereHas('sku', function ($query) { return $query->online(); }) ->when($part, function ($query, $part) { $query->where('part_id', $part->id); }, function ($query) { $query->whereRaw('1!=1'); }) ->latest('sort') ->simplePaginate(Paginator::resolvePerPage('per_page', 20, 50)); return ProductSkuTinyResource::collection( $paginator->through(function ($item) { return $item->sku; }) ); } public function coupons(Request $request) { $part = null; if (filled($partKey = $request->query('part'))) { $part = ProductPart::where('key', $partKey)->first(); } return response()->json([ 'coupons'=> $part ? CouponResource::collection($part->getCoupons()->get()) : [], 'description' => $part?->description, ]); } }