user(); $month = $request->month ?? now()->format('Y-m'); $action = $request->action ?? 'search'; $month = explode('-', $month); $coupons = Coupon::where('user_id', $user->id) ->whereYear('created_at', $month[0]) ->whereMonth('created_at', $month[1]) ->where('status', 2) ->get(['id', 'thirdPartyGoodsId', 'created_at']); $rules = ActivityRule::get(); $coupons = $coupons->groupBy('create_day')->map(function ($items, $key) use ($rules) { $data = [ 'day' => $key, // 'ysd10' => $items->where('thirdPartyGoodsId', 'YSD-full100-10')->count(), // 'ysd25' => $items->where('thirdPartyGoodsId', 'YSD-full100-25')->count(), // 'ysd50' => $items->where('thirdPartyGoodsId', 'YSD-full100-50')->count(), // 'ysd100' => $items->where('thirdPartyGoodsId', 'YSD-full200-100')->count(), ]; foreach ($rules as $rule) { $data[$rule->code] = $items->where('thirdPartyGoodsId', $rule->code)->count(); } return collect($data); }); $all = []; foreach ($rules as $rule) { $all[$rule->code] = $coupons->sum($rule->code); } $coupons = $coupons->sortByDesc('day'); if ($action == 'search') { return view('Merchant::census.index', compact('coupons', 'all', 'rules')); } else { return (new CensusExport($month, $user))->download(); } } }