filter() ->paginate($request->get('per_page')); return GroupsResource::collection($groups); } public function store(Request $request) { $rules = (new GroupsRequest())->rules(); $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { $this->setValidatorFailResponse($validator->getMessageBag()->getMessages()); return response($this->res, $this->res['httpCode']); } var_dump($request->get('data')); } public function show($id) { return new GroupsResource(Groups::query() ->find($id)); } public function update(Request $request, $id) { $rules = (new GroupsRequest())->rules(); $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { $this->setValidatorFailResponse($validator->getMessageBag()->getMessages()); return response($this->res, $this->res['httpCode']); } var_dump($request->get('data')); } public function destroy() { } public function getGoods(Request $request) { if ($request->get('group_id')) { $goodsNameLike = ''; $externalSkuId = $request->get('external_sku_id'); if (false === strpos($externalSkuId, '_')) { $goodsNameLike = $externalSkuId; } $goods = GroupGoods::query() ->when($goodsNameLike, function ($query, $goodsNameLike) { return $query->where('goods_name', 'like', "%$goodsNameLike%"); }) ->with(['goodsSku:id,stock']) ->filter() ->paginate($request->get('per_page')); return GroupGoodsResource::collection($goods); } $goodsSkus = GoodsSku::query() ->whereIn('id', $request->get('ids')) ->with(['goods' => function ($query) { $query->with(['type:id,name', 'brand:id,name']); }]) ->orderBy('updated_at', 'desc') ->paginate($request->get('per_page')); return GoodsSkuResource::collection($goodsSkus); } public function addGoods(Request $request) { var_dump($request->get('ids')); var_dump($request->get('shop_id')); var_dump($request->get('group_id')); } public function goodsList(Request $request) { $goodsCode = $skuCode = ''; $goodsKeyword = $request->get('goods_keyword'); if (false !== strpos($goodsKeyword, '_')) { [$goodsCode, $skuCode] = explode('_', $goodsKeyword); $goodsKeyword = ''; } $goodsIds = Goods::query() ->when($goodsKeyword, function ($query, $goodsKeyword) { return $query->where('title', 'like', "%$goodsKeyword%"); }) ->filter() ->when($goodsCode, function ($query, $goodsCode) { return $query->where('goods_code', $goodsCode); }) ->pluck('id'); $ids = []; $goodsSkus = GoodsSku::query() ->whereIn('goods_id', $goodsIds) ->whereNotIn('id', $ids) ->when($skuCode, function ($query, $skuCode) { return $query->where('sku_code', $skuCode); }) ->when($request->get('has_stock'), function ($query) { return $query->where('stock', '>', 0); }) ->filter() ->with(['goods' => function ($query) { $query->with(['type:id,name', 'brand:id,name']); }]) ->orderBy('updated_at', 'desc') ->paginate($request->get('per_page')); return GoodsSkuResource::collection($goodsSkus); } }