['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'=> '砍价', ]); $user = $request->user(); if ($request->filled('order_pre')) { $pre = OrderPre::find($request->input('order_pre')); $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)); } 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'), ) ); } }