user(); if ($request->filled('order_pre')) { $pre = OrderPre::find($request->input('order_pre')); if (!$pre) { throw new BizException('临时订单不存在'); } $products = []; foreach($pre->products as $item) { array_push($products, [ 'sku' => ProductSku::findOrFail($item['sku_id']), 'quantity' => $item['quantity'] ]); } return response()->json($orderService->verifyOrder($user, $products, $request->input('shipping_address_id'), $request->input('coupon_id'), null)); } if ($request->filled('store_id')) { $params = $request->input('products'); $skus = StoreProductSku::with(['productSku'])->whereIn('product_sku_id', array_column($params, 'sku_id'))->get(); $products = []; foreach($params as $item) { $sku = $skus->firstWhere('product_sku_id', $item['sku_id']); array_push($products, [ 'sku' => $sku->productSku, 'quantity' => $item['quantity'] ]); } return response()->json($orderService->verifyOrder($user, $products, $request->input('shipping_address_id'), $request->input('coupon_id'), null)); } $rules = [ 'coupon_id' => ['bail', 'nullable', 'int'], 'shipping_address_id' => ['bail', 'nullable', 'int'], 'baragain_order_id' => ['bail', 'nullable', 'int'], ]; // 快速下单 if ($isQuick = $request->filled('product')) { $rules = array_merge($rules, [ 'product.sku_id' => ['bail', 'required', 'int'], 'product.quantity' => ['bail', 'required', 'int', 'min:1'], ]); } else { $rules = array_merge($rules, [ 'shopping_cart' => ['bail', 'required', 'array'], ]); } $request->validate($rules, [], [ 'shopping_cart' => '购物车商品', 'product.sku_id' => '商品', 'product.quantity' => '数量', 'coupon_id' => '优惠券', 'shipping_address_id' => '收货地址', 'bargain_order_id'=> '砍价', ]); return response()->json( $isQuick ? $orderService->verifyQuickOrder( $user, $request->input('product.sku_id'), $request->input('product.quantity'), $request->input('shipping_address_id'), $request->input('coupon_id'), $request->input('bargain_order_id'), ) : $orderService->verifyShoppingCartOrder( $user, $request->input('shopping_cart'), $request->input('shipping_address_id'), $request->input('coupon_id'), ) ); } }