修复座驾与会员入场重复展示

This commit is contained in:
pllx
2026-04-30 11:03:09 +08:00
parent 221f629ec2
commit 3eaf37a648
3 changed files with 82 additions and 3 deletions
+6 -3
View File
@@ -197,7 +197,11 @@ class ChatController extends Controller
// 统一走通用进场播报逻辑,管理员不再发送单独的特殊登录提示。
[$text, $color] = $this->broadcast->buildEntryBroadcast($user);
$vipPresencePayload = $this->broadcast->buildVipPresencePayload($user, 'join');
$ridePresencePayload = $this->rideService->buildPresencePayload($user);
// 座驾优先级高于会员进场主题,避免同一用户进房时同时播放两套全屏特效。
$vipPresencePayload = $ridePresencePayload
? []
: $this->broadcast->buildVipPresencePayload($user, 'join');
$generalWelcomeMsg = [
'id' => $this->chatState->nextMessageId($id),
@@ -232,14 +236,13 @@ class ChatController extends Controller
broadcast(new \App\Events\EffectBroadcast($id, $vipPresencePayload['presence_effect'], $user->username))->toOthers();
}
$ridePresencePayload = $this->rideService->buildPresencePayload($user);
if ($ridePresencePayload) {
$rideWelcomeMsg = [
'id' => $this->chatState->nextMessageId($id),
'room_id' => $id,
'from_user' => '座驾播报',
'to_user' => '大家',
'content' => "<span style=\"color:#0f766e;font-weight:bold;\">{$ridePresencePayload['ride_icon']} {$ridePresencePayload['welcome_text']}</span>",
'content' => "<span style=\"color:#0f766e;font-weight:bold;\">{$ridePresencePayload['ride_icon']} {$ridePresencePayload['identity_text']} · {$ridePresencePayload['welcome_text']}</span>",
'is_secret' => false,
'font_color' => '#0f766e',
'action' => 'ride_presence',