request->input('search_city_id'); $searchKitchenId = $this->request->input('search_kitchen_id'); $searchCycleId = $this->request->input('search_cycle_id'); $searchChefId = $this->request->input('search_chef_id'); $limit = (int)$this->request->input('limit',10); $list = $this->chefStatementModel ->when($searchCityId, function ($query) use ($searchCityId) { $kitchenIds = $this->kitchenModel->where('city_id', $searchCityId)->pluck('id')->toArray(); $query->whereIn('kitchen_id', $kitchenIds); }) ->when($searchKitchenId, function ($query) use ($searchKitchenId) { $query->where('kitchen_id', $searchKitchenId); }) ->when($searchChefId, function ($query) use ($searchChefId) { $query->where('chef_id', $searchChefId); }) ->when($searchCycleId, function ($query) use ($searchCycleId) { $query->where('cycle_id', $searchCycleId); }) ->orderByDesc('cycle_id') ->select( 'date', 'cycle_id', 'kitchen_id', 'chef_id', 'sku_id', 'sale', 'refund', 'cancel' ) ->paginate($limit) ->toArray(); if (empty($list['data'])) return $this->return->success('success', ['list' => []]); $skuIds = array_column($list['data'], 'sku_id'); $chefIds = array_column($list['data'], 'chef_id'); $skuList = $this->skuModel->whereIn('id', $skuIds)->pluck('title', 'id')->toArray(); $chefList = $this->adminUserModel->getChefNameByIds($chefIds); foreach ($list['data'] as &$v) { $v['sku_title'] = $skuList[$v['sku_id']] ?? ''; $v['chef_name'] = $chefList[$v['chef_id']] ?? ''; } return $this->return->success('success', ['list' => $list]); } }