where('pay_state', PayState::SUCCESS) ->whereIn('lottery_state', [LottState::WIN, LottState::LOSS, LottState::WAIT, LottState::SEND]) ->where('created_date', '>=', date('Ymd', strtotime($dateStart))) ->where('created_date', '<=', date('Ymd', strtotime($dateEnd))) ->groupBy('shop_id') ->get(); $shops = collect(); $sellers = collect(); if (count($orders) > 0) { $shops = Shop::select([ 'id', 'name', 'shop_sn', ]) ->whereIn('id', collect($orders)->pluck('shop_id')->toArray()) ->get(); $sellers = Seller::select([ 'id', 'name', 'phone', 'shop_id', ])->whereIn('shop_id', collect($orders)->pluck('shop_id')->toArray()) ->where('level', SellerLevel::MASTER) ->get(); } foreach ($orders as $order) { $shop = collect($shops)->where('id', $order->shop_id)->first(); $seller = collect($sellers)->where('shop_id', $order->shop_id)->first(); $order->seller_id = $seller ? $seller->id : 0; $order->seller_name = $seller ? $seller->name : ''; $order->seller_phone = $seller ? $seller->phone : ''; $order->shop_id = $shop ? $shop->id : 0; $order->shop_sn = $shop ? $shop->shop_sn : ''; $order->shop_name = $shop ? $shop->name : ''; } return view('admin.report_shop_order', [ 'orders' => $orders, 'dateStart' => $dateStart, 'dateEnd' => $dateEnd, ]); } }