diff --git a/app/Http/Controllers/Api/UsersController.php b/app/Http/Controllers/Api/UsersController.php index f250aa4e2..5319821a4 100755 --- a/app/Http/Controllers/Api/UsersController.php +++ b/app/Http/Controllers/Api/UsersController.php @@ -766,13 +766,36 @@ class UsersController extends AbstractController ]); $userTransfer->save(); $userTransfer->start(); - // 离职移出全员群组 - $dialog = WebSocketDialog::whereGroupType('all')->orderByDesc('id')->first(); - $dialog?->exitGroup($userInfo->userid, 'remove', false, false); + // 离职移出群组 + WebSocketDialog::select(['web_socket_dialogs.*']) + ->join('web_socket_dialog_users as u', 'web_socket_dialogs.id', '=', 'u.dialog_id') + ->where('web_socket_dialogs.type', 'group') + ->where('u.userid', $userInfo->userid) + ->orderByDesc('web_socket_dialogs.id') + ->chunk(100, function($list) use ($transferUser, $userInfo) { + /** @var WebSocketDialog $dialog */ + foreach ($list as $dialog) { + // 离职员工退出群 + $dialog->exitGroup($userInfo->userid, 'remove', false, false); + if ($dialog->owner_id === $userInfo->userid) { + // 如果是群主则把交接人设为群主 + $dialog->owner_id = $transferUser->userid; + if ($dialog->save()) { + $dialog->joinGroup($transferUser->userid, 0); + $dialog->pushMsg("groupUpdate", [ + 'id' => $dialog->id, + 'owner_id' => $dialog->owner_id, + ]); + } + } + } + }); } elseif ($type === 'cleardisable') { // 取消离职重新加入全员群组 - $dialog = WebSocketDialog::whereGroupType('all')->orderByDesc('id')->first(); - $dialog?->joinGroup($userInfo->userid, $user->userid); + if (Base::settingFind('system', 'all_group_autoin', 'yes') === 'yes') { + $dialog = WebSocketDialog::whereGroupType('all')->orderByDesc('id')->first(); + $dialog?->joinGroup($userInfo->userid, $user->userid); + } } }); } diff --git a/resources/assets/js/pages/manage/components/TeamManagement.vue b/resources/assets/js/pages/manage/components/TeamManagement.vue index 85aff635e..116c6f849 100644 --- a/resources/assets/js/pages/manage/components/TeamManagement.vue +++ b/resources/assets/js/pages/manage/components/TeamManagement.vue @@ -230,7 +230,7 @@ -
{{ $L(`${disableData.nickname} 负责的项目、任务和文件将移交给交接人`) }}
+
{{ $L(`${disableData.nickname} 负责的项目、任务和文件将移交给交接人;同时退出所有群(如果是群主则转让给交接人)`) }}