File tree Expand file tree Collapse file tree 3 files changed +31
-6
lines changed
Expand file tree Collapse file tree 3 files changed +31
-6
lines changed Original file line number Diff line number Diff line change @@ -119,4 +119,33 @@ public function getShopEarnings($shopId){
119119 return $ totalEarnings ;
120120
121121 }
122+
123+ public function countShopSales ($ shopId ): int
124+ {
125+ $ shop = Shop::findOrFail ($ shopId );
126+
127+ // Étape 1: Récupérer les IDs des produits de la boutique
128+ $ productIds = $ shop ->products ()->pluck ('id ' );
129+
130+ // Étape 2: Récupérer les IDs de commandes de produits simples
131+ $ simpleOrderIds = DB ::table ('order_details ' )
132+ ->whereIn ('product_id ' , $ productIds )
133+ ->pluck ('order_id ' );
134+
135+ // Étape 3: Récupérer les IDs de commandes de produits variés
136+ $ productVariationIds = ProductVariation::whereIn ('product_id ' , $ productIds )->pluck ('id ' );
137+
138+ $ variedOrderIds = DB ::table ('order_variations ' )
139+ ->whereIn ('product_variation_id ' , $ productVariationIds )
140+ ->pluck ('order_id ' );
141+
142+ // Étape 4: Combiner les IDs de commandes et enlever les doublons
143+ $ allOrderIds = $ simpleOrderIds ->merge ($ variedOrderIds )->unique ();
144+
145+ // Étape 5: Compter le nombre de commandes finalisées
146+ $ salesCount = Order::whereIn ('id ' , $ allOrderIds )
147+ ->count ();
148+
149+ return $ salesCount ;
150+ }
122151}
Original file line number Diff line number Diff line change @@ -44,11 +44,7 @@ public function toArray(Request $request): array
4444 "phone " =>$ this ->user ->phone_number ,
4545 "orders_count " =>null ,
4646 "product_type " =>$ this ->product_type ,
47- "total_earnings " =>$ this ->products ->flatMap (function ($ product ) {
48- return $ product ->orderDetails ->map (function ($ orderDetail ) {
49- return $ orderDetail ->unit_price * $ orderDetail ->order_product_quantity ;
50- });
51- })->sum (),
47+ "total_earnings " =>$ this ->total_earning ,
5248 "state " =>$ this ->state ,
5349 "level " =>$ this ->shop_level ,
5450 "cover " =>URL ("/storage/ " .$ this ->shop_banner ),
Original file line number Diff line number Diff line change 164164Route::get ("all/products " , [ProductListController::class, "allProducts " ]);
165165Route::get ("/attributes/value/{id} " , [GetAttributesController::class, 'getValue ' ]);
166166Route::get ("/all/genders " , [CurrentGenderController::class, "all " ]);
167- Route::get ("/get/earnings /{shopId} " ,[ShopController::class,"getShopEarnings " ]);
167+ Route::get ("/get/sales /{shopId} " ,[ShopController::class,"countShopSales " ]);
168168Route::get ('/attributes/value/by/group/{id} ' ,[ListCategoryController::class,"getAttributeValueByAttributeId " ]);
169169Route::get ('/categories/attributes ' ,[ListCategoryController::class,"getCategoriesWithAttributes " ]);
170170
You can’t perform that action at this time.
0 commit comments