query('part'))) { $part = ProductPart::where('key', $key)->first(); } $paginator = ProductPartSpu::with('spu:id,name,cover,sell_price,vip_price,market_price') ->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->spu; }) ); } 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, ]); } }