diff --git a/app/Service/v3/Implementations/OrderStatisticsService.php b/app/Service/v3/Implementations/OrderStatisticsService.php index 8f7eff1..567c86c 100644 --- a/app/Service/v3/Implementations/OrderStatisticsService.php +++ b/app/Service/v3/Implementations/OrderStatisticsService.php @@ -36,9 +36,13 @@ class OrderStatisticsService implements OrderStatisticsServiceInterface $builder = OrderMain::query() ->selectRaw('COUNT(DISTINCT '.$mainTable.'.id) AS count') - ->join($childTable, ''.$childTable.'.order_main_id', '=', ''.$mainTable.'.global_order_id') - ->join($goodsTable, ''.$goodsTable.'.order_id', '=', ''.$childTable.'.id') - ->where([''.$childTable.'.store_id' => $storeId, ''.$mainTable.'.type' => $type]) + ->join($childTable, ''.$childTable.'.order_main_id', '=', ''.$mainTable.'.global_order_id'); + + if ($type == OrderType::ONLINE) { + $builder = $builder->join($goodsTable, ''.$goodsTable.'.order_id', '=', ''.$childTable.'.id'); + } + + $builder = $builder->where([''.$childTable.'.store_id' => $storeId, ''.$mainTable.'.type' => $type]) ->where(function ($query) use ($mainTable, $goodsTable, $type) { $query->where(function ($q) use ($mainTable, $goodsTable, $type) { $q->whereIn(''.$mainTable.'.state', array_merge(OrderState::FINISH, [OrderState::REFUNDED_DIRECT,OrderState::REFUND_REFUSE]));