feat: 添加 dialog_only 参数支持仅搜索对话

在 dialog/search 接口中增加 dialog_only 可选参数,
  启用后仅搜索会话和联系人,跳过消息内容搜索。
This commit is contained in:
kuaifan 2026-01-12 15:03:04 +00:00
parent 60387aa521
commit 78b14f4aad

View File

@ -109,7 +109,8 @@ class DialogController extends AbstractController
* @apiGroup dialog
* @apiName search
*
* @apiParam {String} key 消息关键词
* @apiParam {String} key 搜索关键词
* @apiParam {String} [dialog_only] 仅搜索会话和联系人,不搜索消息内容(可选,传任意值启用)
*
* @apiSuccess {Number} ret 返回状态码1正确、0错误
* @apiSuccess {String} msg 返回信息(错误描述)
@ -123,6 +124,7 @@ class DialogController extends AbstractController
if (empty($key)) {
return Base::retError('请输入搜索关键词');
}
$dialogOnly = Request::exists('dialog_only');
// 搜索会话
$take = 20;
$list = WebSocketDialog::searchDialog($user->userid, $key, $take);
@ -153,8 +155,8 @@ class DialogController extends AbstractController
});
$list = array_merge($list, $users->toArray());
}
// 搜索消息会话
if (count($list) < $take) {
// 搜索消息会话(仅当 dialog_only 未设置时)
if (!$dialogOnly && count($list) < $take) {
$searchResults = ManticoreMsg::searchDialogs($user->userid, $key, 0, $take - count($list));
if ($searchResults) {
foreach ($searchResults as $item) {