diff --git a/app/Endpoint/Api/Http/Controllers/Dealer/OrderController.php b/app/Endpoint/Api/Http/Controllers/Dealer/OrderController.php index a23af247..86bffd74 100644 --- a/app/Endpoint/Api/Http/Controllers/Dealer/OrderController.php +++ b/app/Endpoint/Api/Http/Controllers/Dealer/OrderController.php @@ -72,6 +72,37 @@ class OrderController extends Controller return OrderResource::make($order); } + /** + * 确认订单 + * + * @param Request $request + * @param OrderService $orderService + */ + public function checkOrder(Request $request, OrderService $orderService) + { + $input = $request->validate([ + 'shopping_cart' => ['bail', 'required', 'array'], + ], [], [ + 'shopping_cart'=>'购物车商品', + ]); + $user = $request->user(); + $shoppingCartItems = $user->dealerShoppingCartItems()->findMany($input['shopping_cart']); + $shoppingCartItems->load('product'); + $totalQty = $shoppingCartItems->sum('quantity'); + $data = []; + foreach ($shoppingCartItems as $item) { + $data[] = [ + 'id' => $item->id, + 'name' => $item->name, + 'cover' => $item->cover, + 'sell_price' => $item->sell_price, + 'dealer_price' => $orderService->getSalePrice($user, $item->product, $totalQty), + 'quantity' => $item->quantity, + ]; + } + return response()->json(['data'=>$data]); + } + /** * 新下单接口 */ diff --git a/app/Endpoint/Api/routes.php b/app/Endpoint/Api/routes.php index 66151284..ad8c4153 100644 --- a/app/Endpoint/Api/routes.php +++ b/app/Endpoint/Api/routes.php @@ -245,6 +245,7 @@ Route::group([ ); Route::delete('shopping-cart-items', [Dealer\ShoppingCartItemController::class, 'delete']); + Route::get('orders-check', [Dealer\OrderController::class, 'checkOrder']); //计算商品下单价格 Route::get('orders/total-amount', [Dealer\OrderController::class, 'totalAmount']); //订单列表 diff --git a/app/Services/Dealer/OrderService.php b/app/Services/Dealer/OrderService.php index 02875609..e516a8cd 100644 --- a/app/Services/Dealer/OrderService.php +++ b/app/Services/Dealer/OrderService.php @@ -148,6 +148,9 @@ class OrderService ]); }, $orderProducts)); + //清除购物车对应商品 + $user->dealerShoppingCartItems()->whereIn('id', $cartIds)->delete(); + if (!$order->consignor) {//如果订单分配给公司,则直接确认 $this->confirmOrder($order); }