fix(B0-bonus): TicketStats API + admin session key fix

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
feat/phase-b-verification
Council 2026-04-25 13:04:45 +08:00
parent 3626ed0c07
commit 76c4e52dba
1 changed files with 31 additions and 1 deletions

View File

@ -441,7 +441,7 @@ class Admin extends Common
$ticket_code = input('ticket_code', '', null, 'trim'); $ticket_code = input('ticket_code', '', null, 'trim');
// M-05: verifier_id 从 session 获取,禁止客户端伪造 // M-05: verifier_id 从 session 获取,禁止客户端伪造
$admin_user_id = session('admin_user_info.id'); $admin_user_id = session('admin_login_info.id');
$verifier = \think\facade\Db::name('vr_verifiers') $verifier = \think\facade\Db::name('vr_verifiers')
->where('user_id', $admin_user_id) ->where('user_id', $admin_user_id)
->where('status', 1) ->where('status', 1)
@ -1087,6 +1087,36 @@ class Admin extends Common
]); ]);
} }
/**
* 获取核销统计数据JSON API
* URL: /plugins/vr_ticket/admin/TicketStats
*/
public function TicketStats()
{
if (empty(session('admin_login_info.id'))) {
return json_encode(['code' => -1, 'msg' => '无权限']);
}
$today_start = strtotime('today');
$total = \think\facade\Db::name('vr_tickets')->count();
$verified = \think\facade\Db::name('vr_tickets')->where('verify_status', 1)->count();
$pending = \think\facade\Db::name('vr_tickets')->where('verify_status', 0)->count();
$today = \think\facade\Db::name('vr_tickets')
->where('verify_status', 1)
->where('verify_time', '>=', $today_start)
->count();
return json_encode([
'code' => 0,
'data' => [
'total' => $total,
'verified' => $verified,
'pending' => $pending,
'today' => $today,
]
]);
}
// ============================================================ // ============================================================
// 辅助方法 // 辅助方法
// ============================================================ // ============================================================