diff --git a/app/Http/Controllers/Api/DialogController.php b/app/Http/Controllers/Api/DialogController.php index 4324e5ee5..ec69a4094 100755 --- a/app/Http/Controllers/Api/DialogController.php +++ b/app/Http/Controllers/Api/DialogController.php @@ -1130,7 +1130,7 @@ class DialogController extends AbstractController 'data' => [ 'id' => $msg->id, 'type' => $msg->type, - 'msg' => $msg->msg, + 'msg' => $msg->quoteTextMsg(), ] ]); if (Base::isSuccess($res)) { diff --git a/app/Models/WebSocketDialogMsg.php b/app/Models/WebSocketDialogMsg.php index 0cbb4769f..4cbb6ec84 100644 --- a/app/Models/WebSocketDialogMsg.php +++ b/app/Models/WebSocketDialogMsg.php @@ -283,7 +283,7 @@ class WebSocketDialogMsg extends AbstractModel 'data' => [ 'id' => $this->id, 'type' => $this->type, - 'msg' => $this->msg, + 'msg' => $this->quoteTextMsg(), ] ], $sender); if (Base::isSuccess($res)) { @@ -328,7 +328,7 @@ class WebSocketDialogMsg extends AbstractModel 'data' => [ 'id' => $this->id, 'type' => $this->type, - 'msg' => $this->msg, + 'msg' => $this->quoteTextMsg(), 'userids' => implode(",", $userids), ] ], $sender); @@ -490,6 +490,23 @@ class WebSocketDialogMsg extends AbstractModel }; } + /** + * 返回引用消息(如果是文本消息则截取) + * @param int $strlen + * @return array|mixed + */ + public function quoteTextMsg($strlen = 30) + { + $msg = $this->msg; + if ($this->type === 'text') { + $msg['text'] = $this->previewTextMsg($msg['text']); + if (mb_strlen($msg['text']) > $strlen) { + $msg['text'] = mb_substr($msg['text'], 0, $strlen - 3) . "..."; + } + } + return $msg; + } + /** * 返回文本预览消息 * @param $text