diff --git a/app/Http/Controllers/Api/DialogController.php b/app/Http/Controllers/Api/DialogController.php
index 4d85b2014..a76822a3c 100755
--- a/app/Http/Controllers/Api/DialogController.php
+++ b/app/Http/Controllers/Api/DialogController.php
@@ -487,4 +487,46 @@ class DialogController extends AbstractController
$dialogUser->save();
return Base::retSuccess("success", $dialogId);
}
+
+
+ /**
+ * @api {get} api/dialog/msg/mark 13. 消息标记操作
+ *
+ * @apiDescription 需要token身份
+ * @apiVersion 1.0.0
+ * @apiGroup dialog
+ * @apiName msg__mark
+ *
+ * @apiParam {Number} dialog_id 消息ID
+ * @apiParam {String} type 类型
+ * - read
+ * - unread
+ *
+ * @apiSuccess {Number} ret 返回状态码(1正确、0错误)
+ * @apiSuccess {String} msg 返回信息(错误描述)
+ * @apiSuccess {Object} data 返回数据
+ */
+ public function msg__mark()
+ {
+ $user = User::auth();
+ $dialogId = intval(Request::input('dialog_id'));
+ $type = Request::input('type');
+ if ($type == 'read') {
+ WebSocketDialogMsgRead::whereUserid($user->userid)
+ ->whereReadAt(null)
+ ->whereDialogId($dialogId)
+ ->update(
+ [
+ 'read_at' => Carbon::now()
+ ]);
+ } elseif ($type == 'unread') {
+ $msgRead = WebSocketDialogMsgRead::whereUserid(User::userid())->whereDialogId($dialogId)->orderByDesc('id')->first();
+ if (!$msgRead) {
+ return Base::retError("对方未发任何消息,没法设置未读");
+ }
+ $msgRead->read_at = null;
+ $msgRead->save();
+ }
+ return Base::retSuccess("success");
+ }
}
diff --git a/resources/assets/js/pages/manage/messenger.vue b/resources/assets/js/pages/manage/messenger.vue
index 622442f6a..eafe452d0 100644
--- a/resources/assets/js/pages/manage/messenger.vue
+++ b/resources/assets/js/pages/manage/messenger.vue
@@ -85,6 +85,12 @@
{{ $L(topOperateItem.top_at ? '取消置顶' : '置顶该聊天') }}
+
+ {{ $L('标记已读') }}
+
+
+ {{ $L('标记未读') }}
+
@@ -480,6 +486,22 @@ export default {
$A.modalError(msg, 301);
this.$Modal.remove();
});
+ },
+
+ updateRead(type) {
+ this.$store.dispatch("call", {
+ url: 'dialog/msg/mark',
+ data: {
+ dialog_id: this.topOperateItem.id,
+ type: type
+ },
+ }).then(() => {
+ this.$store.dispatch("getDialogs");
+ this.$Modal.remove();
+ }).catch(({msg}) => {
+ $A.modalError(msg, 301);
+ this.$Modal.remove();
+ });
}
}
}