lotteryAdmin(); abort_if($admin === null, 401); $adminSiteId = (int) $request->query('admin_site_id', 0); abort_if($adminSiteId <= 0, 422, 'admin_site_id required'); abort_if(! AdminAgentSettlementScope::siteAccessible($admin, $adminSiteId), 403); $siteCode = (string) DB::table('admin_sites')->where('id', $adminSiteId)->value('code'); abort_if($siteCode === '', 422, 'admin_site not found'); $periodId = (int) $request->query('settlement_period_id', 0); if ($periodId > 0) { abort_if(! AdminAgentSettlementScope::periodAccessible($admin, $periodId), 403); } $filters = SettlementLedgerListFilters::fromQuery(array_merge( $request->query(), $periodId > 0 ? ['settlement_period_id' => $periodId] : [], )); $perPage = $this->perPage($request, 'per_page', 20, 100); $page = $this->page($request); $result = $this->ledgerService->listUnified( $admin, $siteCode, $page, $perPage, $filters, ); return ApiResponse::success($result); } }