no message

This commit is contained in:
kuaifan 2022-06-28 08:24:14 +08:00
parent 688fcd3c77
commit 13ca1b18d6
2 changed files with 20 additions and 6 deletions

View File

@ -222,6 +222,8 @@ class DialogController extends AbstractController
* @apiSuccess {Number} ret 返回状态码1正确、0错误 * @apiSuccess {Number} ret 返回状态码1正确、0错误
* @apiSuccess {String} msg 返回信息(错误描述) * @apiSuccess {String} msg 返回信息(错误描述)
* @apiSuccess {Object} data 返回数据 * @apiSuccess {Object} data 返回数据
*
* @deprecated
*/ */
public function msg__lists() public function msg__lists()
{ {
@ -277,7 +279,7 @@ class DialogController extends AbstractController
* @apiName msg__list * @apiName msg__list
* *
* @apiParam {Number} dialog_id 对话ID * @apiParam {Number} dialog_id 对话ID
* @apiParam {String} [position_id] 此消息ID前后的数据优先级1 * @apiParam {Number} [position_id] 此消息ID前后的数据优先级1
* @apiParam {Number} [prev_id] 此消息ID之前的数据优先级2 * @apiParam {Number} [prev_id] 此消息ID之前的数据优先级2
* @apiParam {Number} [next_id] 此消息ID之后的数据优先级3 * @apiParam {Number} [next_id] 此消息ID之后的数据优先级3
* *
@ -297,6 +299,7 @@ class DialogController extends AbstractController
$prev_id = intval(Request::input('prev_id')); $prev_id = intval(Request::input('prev_id'));
$next_id = intval(Request::input('next_id')); $next_id = intval(Request::input('next_id'));
$take = Base::getPaginate(100, 50, 'take'); $take = Base::getPaginate(100, 50, 'take');
$data = [];
// //
$dialog = WebSocketDialog::checkDialog($dialog_id); $dialog = WebSocketDialog::checkDialog($dialog_id);
// //
@ -326,6 +329,7 @@ class DialogController extends AbstractController
$cloner->where('web_socket_dialog_msgs.id', '>=', $next_id)->orderBy('web_socket_dialog_msgs.id'); $cloner->where('web_socket_dialog_msgs.id', '>=', $next_id)->orderBy('web_socket_dialog_msgs.id');
} else { } else {
$cloner->orderByDesc('web_socket_dialog_msgs.id'); $cloner->orderByDesc('web_socket_dialog_msgs.id');
$data['dialog'] = $dialog->formatData($user->userid);
} }
$list = $cloner->take($take)->get()->sortByDesc('id', SORT_NUMERIC)->values(); $list = $cloner->take($take)->get()->sortByDesc('id', SORT_NUMERIC)->values();
// //
@ -341,6 +345,7 @@ class DialogController extends AbstractController
->orderByDesc('web_socket_dialog_msgs.id') ->orderByDesc('web_socket_dialog_msgs.id')
->value('id')); ->value('id'));
} }
$data['list'] = $list;
// 记录当前打开的任务对话 // 记录当前打开的任务对话
if ($dialog->type == 'group' && $dialog->group_type == 'task') { if ($dialog->type == 'group' && $dialog->group_type == 'task') {
$user->task_dialog_id = $dialog->id; $user->task_dialog_id = $dialog->id;
@ -353,11 +358,6 @@ class DialogController extends AbstractController
$isMarkDialogUser->save(); $isMarkDialogUser->save();
} }
// //
$data = [];
$data['list'] = $list;
if ($prev_id === 0 && $next_id === 0) {
$data['dialog'] = $dialog->formatData($user->userid);
}
return Base::retSuccess('success', $data); return Base::retSuccess('success', $data);
} }

View File

@ -2195,6 +2195,7 @@ export default {
if (!/^d+$/.test(data.reply_id)) { if (!/^d+$/.test(data.reply_id)) {
data.reply_id = 0; data.reply_id = 0;
} }
//
const loadKey = `msg::${data.dialog_id}-${data.reply_id}` const loadKey = `msg::${data.dialog_id}-${data.reply_id}`
if (getters.isLoad(loadKey)) { if (getters.isLoad(loadKey)) {
reject({msg: 'Loading'}); reject({msg: 'Loading'});
@ -2202,6 +2203,19 @@ export default {
} }
dispatch("setLoad", loadKey) dispatch("setLoad", loadKey)
// //
if (data.prev_id) {
const prevMsg = state.dialogMsgs.find(({prev_id}) => prev_id == data.prev_id)
if (prevMsg) {
prevMsg.prev_id = 0
}
}
if (data.next_id) {
const nextMsg = state.dialogMsgs.find(({next_id}) => next_id == data.next_id)
if (nextMsg) {
nextMsg.next_id = 0
}
}
//
dispatch("call", { dispatch("call", {
url: 'dialog/msg/list', url: 'dialog/msg/list',
data, data,