diff --git a/app/Http/Controllers/Api/UsersController.php b/app/Http/Controllers/Api/UsersController.php
index 5319821a4..b4e9ef37e 100755
--- a/app/Http/Controllers/Api/UsersController.php
+++ b/app/Http/Controllers/Api/UsersController.php
@@ -766,30 +766,6 @@ class UsersController extends AbstractController
]);
$userTransfer->save();
$userTransfer->start();
- // 离职移出群组
- 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') {
// 取消离职重新加入全员群组
if (Base::settingFind('system', 'all_group_autoin', 'yes') === 'yes') {
diff --git a/app/Models/UserDepartment.php b/app/Models/UserDepartment.php
index 4fbdcbe54..1baec3e67 100644
--- a/app/Models/UserDepartment.php
+++ b/app/Models/UserDepartment.php
@@ -132,4 +132,22 @@ class UserDepartment extends AbstractModel
//
$this->delete();
}
+
+ /**
+ * 移交部门身份
+ * @param $originalUserid
+ * @param $newUserid
+ * @return void
+ */
+ public static function transfer($originalUserid, $newUserid)
+ {
+ self::whereOwnerUserid($originalUserid)->chunkById(100, function ($list) use ($originalUserid, $newUserid) {
+ /** @var self $item */
+ foreach ($list as $item) {
+ $item->saveDepartment([
+ 'owner_userid' => $newUserid,
+ ]);
+ }
+ });
+ }
}
diff --git a/app/Models/UserTransfer.php b/app/Models/UserTransfer.php
index 79e22bda7..7dd11d222 100644
--- a/app/Models/UserTransfer.php
+++ b/app/Models/UserTransfer.php
@@ -35,11 +35,37 @@ class UserTransfer extends AbstractModel
*/
public function start()
{
+ // 移交部门
+ UserDepartment::transfer($this->original_userid, $this->new_userid);
// 移交项目身份
ProjectUser::transfer($this->original_userid, $this->new_userid);
// 移交任务身份
ProjectTaskUser::transfer($this->original_userid, $this->new_userid);
// 移交文件
File::transfer($this->original_userid, $this->new_userid);
+ // 离职移出群组
+ 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', $this->original_userid)
+ ->orderByDesc('web_socket_dialogs.id')
+ ->chunk(100, function($list) {
+ /** @var WebSocketDialog $dialog */
+ foreach ($list as $dialog) {
+ // 离职员工退出群
+ $dialog->exitGroup($this->original_userid, 'remove', false, false);
+ if ($dialog->owner_id === $this->original_userid) {
+ // 如果是群主则把交接人设为群主
+ $dialog->owner_id = $this->new_userid;
+ if ($dialog->save()) {
+ $dialog->joinGroup($this->new_userid, 0);
+ $dialog->pushMsg("groupUpdate", [
+ 'id' => $dialog->id,
+ 'owner_id' => $dialog->owner_id,
+ ]);
+ }
+ }
+ }
+ });
}
}
diff --git a/resources/assets/js/pages/manage/components/TeamManagement.vue b/resources/assets/js/pages/manage/components/TeamManagement.vue
index 116c6f849..f7e90e816 100644
--- a/resources/assets/js/pages/manage/components/TeamManagement.vue
+++ b/resources/assets/js/pages/manage/components/TeamManagement.vue
@@ -221,16 +221,18 @@