Files
pk10/App/Controllers/Admin/BetController.php
T

87 lines
2.6 KiB
PHP
Executable File

<?php
namespace App\Controllers\Admin;
use App\Core\AdminBaseController;
use Db\Database;
class BetController extends AdminBaseController {
public function __construct() {
$this->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' => '投注记录'
]);
}
}