新增聊天室状态与功能快捷菜单

This commit is contained in:
2026-04-24 21:17:44 +08:00
parent d7ec42a025
commit 0f0bfef2a8
18 changed files with 1361 additions and 124 deletions
+1 -19
View File
@@ -19,25 +19,7 @@ Broadcast::channel('room.{roomId}', function ($user, $roomId) {
return false;
}
$superLevel = (int) \App\Models\Sysparam::getValue('superlevel', '100');
// 预加载当前在职职务,供右侧在线名单直接显示职务图标与名称。
$activePosition = $user->activePosition()->with('position.department')->first();
$position = $activePosition?->position;
return [
'id' => $user->id,
'username' => $user->username,
'user_level' => $user->user_level,
'sex' => $user->sex,
'headface' => $user->headface, // 通过 accessor 读取 usersf,默认 1.gif
'vip_icon' => $user->vipIcon(),
'vip_name' => $user->vipName(),
'vip_color' => $user->isVip() ? ($user->vipLevel?->color ?? '') : '',
'is_admin' => $user->user_level >= $superLevel,
'position_icon' => $position?->icon ?? '',
'position_name' => $position?->name ?? '',
'department_name' => $position?->department?->name ?? '',
];
return app(\App\Services\ChatUserPresenceService::class)->build($user);
});
// 用户私有频道鉴权(好友通知:FriendAdded / FriendRemoved / BannerNotification
+1
View File
@@ -99,6 +99,7 @@ Route::middleware(['chat.auth'])->group(function () {
Route::get('/user/{username}', [UserController::class, 'show'])->name('user.show');
Route::put('/user/profile', [UserController::class, 'updateProfile'])->name('user.update_profile');
Route::put('/user/chat-preferences', [UserController::class, 'updateChatPreferences'])->name('user.update_chat_preferences');
Route::put('/user/daily-status', [UserController::class, 'updateDailyStatus'])->name('user.update_daily_status');
Route::post('/user/generate-wechat-code', [UserController::class, 'generateWechatCode'])->name('user.generate_wechat_code');
Route::post('/user/unbind-wechat', [UserController::class, 'unbindWechat'])->name('user.unbind_wechat');
Route::post('/user/send-email-code', [\App\Http\Controllers\Api\VerificationController::class, 'sendEmailCode'])->name('user.send_email_code');