last_at) { if (in_array($webSocketDialogUser->webSocketDialog?->group_type, ['user', 'department', 'all'])) { $webSocketDialogUser->last_at = Carbon::now(); $webSocketDialogUser->save(); } else { $item = WebSocketDialogUser::whereDialogId($webSocketDialogUser->dialog_id)->orderByDesc('last_at')->first(); if ($item?->last_at) { $webSocketDialogUser->last_at = $item->last_at; $webSocketDialogUser->save(); } } } Deleted::forget('dialog', $webSocketDialogUser->dialog_id, $webSocketDialogUser->userid); self::taskDeliver(new ZincSearchSyncTask('userSync', $webSocketDialogUser->toArray())); // $dialog = $webSocketDialogUser->webSocketDialog; if ($dialog) { $dialog->dispatchMemberWebhook(UserBot::WEBHOOK_EVENT_MEMBER_JOIN, $webSocketDialogUser->userid, intval($webSocketDialogUser->inviter)); } } /** * Handle the WebSocketDialogUser "updated" event. * * @param \App\Models\WebSocketDialogUser $webSocketDialogUser * @return void */ public function updated(WebSocketDialogUser $webSocketDialogUser) { self::taskDeliver(new ZincSearchSyncTask('userSync', $webSocketDialogUser->toArray())); } /** * Handle the WebSocketDialogUser "deleted" event. * * @param \App\Models\WebSocketDialogUser $webSocketDialogUser * @return void */ public function deleted(WebSocketDialogUser $webSocketDialogUser) { Deleted::record('dialog', $webSocketDialogUser->dialog_id, $webSocketDialogUser->userid); self::taskDeliver(new ZincSearchSyncTask('deleteUser', $webSocketDialogUser->toArray())); // $dialog = $webSocketDialogUser->webSocketDialog; if ($dialog) { $operatorId = $webSocketDialogUser->operator_id ?? 0; $dialog->dispatchMemberWebhook(UserBot::WEBHOOK_EVENT_MEMBER_LEAVE, $webSocketDialogUser->userid, intval($operatorId)); } } /** * Handle the WebSocketDialogUser "restored" event. * * @param \App\Models\WebSocketDialogUser $webSocketDialogUser * @return void */ public function restored(WebSocketDialogUser $webSocketDialogUser) { // } /** * Handle the WebSocketDialogUser "force deleted" event. * * @param \App\Models\WebSocketDialogUser $webSocketDialogUser * @return void */ public function forceDeleted(WebSocketDialogUser $webSocketDialogUser) { // } }