diff --git a/app/Http/Controllers/Api/DialogController.php b/app/Http/Controllers/Api/DialogController.php
index 42cd1893f..7257a4ded 100755
--- a/app/Http/Controllers/Api/DialogController.php
+++ b/app/Http/Controllers/Api/DialogController.php
@@ -2277,13 +2277,16 @@ class DialogController extends AbstractController
$dialog = WebSocketDialog::checkDialog($msg->dialog_id);
//
$before = $dialog->top_msg_id;
+ $beforeTopUserid = $dialog->top_userid;
$dialog->top_msg_id = $msg->id == $before ? 0 : $msg->id;
+ $dialog->top_userid = $dialog->top_msg_id ? $user->userid : 0;
$dialog->save();
//
$data = [
'update' => [
'dialog_id' => $dialog->id,
'top_msg_id' => $dialog->top_msg_id,
+ 'top_userid' => $dialog->top_userid,
]
];
$res = $msg->sendMsg(null, $dialog->id, 'top', [
@@ -2295,17 +2298,11 @@ class DialogController extends AbstractController
]
], $user->userid);
if (Base::isSuccess($res)) {
- if ($before != $dialog->top_msg_id) {
- $oldTop = WebSocketDialog::whereTopMsgId($before)->first();
- if ($oldTop){
- $oldTop->top_msg_id = 0;
- $oldTop->save();
- }
- }
$data['add'] = $res['data'];
$dialog->pushMsg('updateTopMsg', $data['update']);
} else {
$dialog->top_msg_id = $before;
+ $dialog->top_userid = $beforeTopUserid;
$dialog->save();
}
//
diff --git a/database/migrations/2023_12_29_145804_add_web_socket_dialogs_top.php b/database/migrations/2023_12_29_145804_add_web_socket_dialogs_top.php
index c09226ecc..80d8f2098 100644
--- a/database/migrations/2023_12_29_145804_add_web_socket_dialogs_top.php
+++ b/database/migrations/2023_12_29_145804_add_web_socket_dialogs_top.php
@@ -21,7 +21,8 @@ class AddWebSocketDialogsTop extends Migration
});
//
Schema::table('web_socket_dialogs', function (Blueprint $table) {
- $table->bigInteger('top_msg_id')->nullable()->default(0)->after('link_id')->comment('置顶的消息ID');
+ $table->bigInteger('top_userid')->nullable()->default(0)->after('link_id')->comment('置顶的用户ID');
+ $table->bigInteger('top_msg_id')->nullable()->default(0)->after('top_userid')->comment('置顶的消息ID');
});
}
@@ -40,7 +41,12 @@ class AddWebSocketDialogsTop extends Migration
});
//
Schema::table('web_socket_dialogs', function (Blueprint $table) {
- $table->dropColumn("top_msg_id");
+ if (Schema::hasColumn('web_socket_dialogs', 'top_msg_id')) {
+ $table->dropColumn("top_msg_id");
+ }
+ if (Schema::hasColumn('web_socket_dialogs', 'top_userid')) {
+ $table->dropColumn("top_userid");
+ }
});
}
}
diff --git a/resources/assets/js/pages/manage/components/DialogWrapper.vue b/resources/assets/js/pages/manage/components/DialogWrapper.vue
index 1824e7ae3..9d63d3dbb 100644
--- a/resources/assets/js/pages/manage/components/DialogWrapper.vue
+++ b/resources/assets/js/pages/manage/components/DialogWrapper.vue
@@ -147,7 +147,7 @@
{{$L('置顶人员')}}
{{$L('置顶人员')}}