diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index 6b1ddd0..58d80e6 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -121,6 +121,9 @@ class AuthController extends Controller { Auth::login($user); + // 递增访问次数 + $user->increment('visit_num'); + // 更新最后登录IP和时间 $user->update([ 'last_ip' => $ip, @@ -143,8 +146,11 @@ class AuthController extends Controller { if (Auth::check()) { $user = Auth::user(); - // 记录退出时间 - $user->update(['out_time' => now()]); + // 记录退出时间和退出信息 + $user->update([ + 'out_time' => now(), + 'out_info' => '正常退出了聊天室', + ]); } Auth::logout(); diff --git a/app/Http/Controllers/ChatController.php b/app/Http/Controllers/ChatController.php index e11cfc8..58574db 100644 --- a/app/Http/Controllers/ChatController.php +++ b/app/Http/Controllers/ChatController.php @@ -51,6 +51,9 @@ class ChatController extends Controller // 房间人气 +1(每次访问递增,复刻原版人气计数) $room->increment('visit_num'); + + // 用户进房时间刷新 + $user->update(['in_time' => now()]); // 1. 将当前用户加入到 Redis 房间在线列表(包含 VIP 和管理员信息) $superLevel = (int) Sysparam::getValue('superlevel', '100'); @@ -319,6 +322,12 @@ class ChatController extends Controller // 1. 从 Redis 删除该用户 $this->chatState->userLeave($id, $user->username); + // 记录退出时间和退出信息 + $user->update([ + 'out_time' => now(), + 'out_info' => "正常退出了房间", + ]); + // 2. 广播通知他人 broadcast(new UserLeft($id, $user->username))->toOthers(); @@ -356,7 +365,7 @@ class ChatController extends Controller */ public function changeAvatar(Request $request): JsonResponse { - $user = auth()->user(); + $user = Auth::user(); $headface = $request->input('headface', ''); if (empty($headface)) {