checkLogin(); $this->checkAdmin(); } /** * 投注记录列表页面 */ public function index() { $db = new Database(); // 分页参数 $page = isset($_GET['page']) ? (int)$_GET['page'] : 1; $limit = 20; $offset = ($page - 1) * $limit; // 筛选参数 $where = []; if (isset($_GET['user_id']) && !empty($_GET['user_id'])) { $where['bets.user_id'] = $_GET['user_id']; } if (isset($_GET['period_number']) && !empty($_GET['period_number'])) { $where['bets.period_number'] = $_GET['period_number']; } if (isset($_GET['status']) && !empty($_GET['status'])) { $where['bets.status'] = $_GET['status']; } // 排序 $where['ORDER'] = ['bets.id' => 'DESC']; $where['LIMIT'] = [$offset, $limit]; try { // 获取投注记录,关联用户表和游戏表 $bets = $db->select('bets', [ '[>]users' => ['user_id' => 'id'], '[>]games' => ['game_id' => 'id'] ], [ 'bets.id', 'bets.user_id', 'users.username', 'users.balance', // 当前余额 'games.name(game_name)', // 游戏名称 'bets.period_number', 'bets.bet_type', 'bets.bet_value', 'bets.amount', 'bets.odds', 'bets.win_amount', 'bets.status', 'bets.created_at', 'bets.settled_at' ], $where); // 获取总记录数用于分页(移除LIMIT) unset($where['LIMIT']); $total = $db->count('bets', [ '[>]users' => ['user_id' => 'id'], '[>]games' => ['game_id' => 'id'] ], '*', $where); $totalPages = ceil($total / $limit); } catch (\Throwable $e) { // 记录错误以便调试 error_log("BetController Error: " . $e->getMessage()); $bets = []; $total = 0; $totalPages = 0; } $this->render('Admin/bets.php', [ 'bets' => $bets, 'currentPage' => $page, 'totalPages' => $totalPages, 'title' => '投注记录' ]); } }