lotteryAdmin(); abort_if($admin === null, 401); $periodId = (int) $request->query('settlement_period_id', 0); $adminSiteId = (int) $request->query('admin_site_id', 0); $query = DB::table('payment_records as pr') ->join('settlement_bills as sb', 'sb.id', '=', 'pr.settlement_bill_id') ->join('settlement_periods as sp', 'sp.id', '=', 'sb.settlement_period_id') ->select([ 'pr.*', 'sb.bill_type', 'sb.owner_type', 'sb.owner_id', 'sb.counterparty_type', 'sb.counterparty_id', 'sp.period_start', 'sp.period_end', 'sp.admin_site_id', ]) ->orderByDesc('pr.id'); if ($periodId > 0) { $query->where('sb.settlement_period_id', $periodId); } if ($adminSiteId > 0) { $query->where('sp.admin_site_id', $adminSiteId); } $siteIds = $admin->accessibleAdminSiteIds(); if ($siteIds !== null) { if ($siteIds === []) { $query->whereRaw('0 = 1'); } else { $query->whereIn('sp.admin_site_id', $siteIds); } } return ApiResponse::success([ 'items' => $query->limit(200)->get(), ]); } }