$sender ?: User::token2userid(), 'msg' => $msg, ]); return AbstractModel::transaction(function () use ($dialog_id, $msg, $dialogMsg) { $dialog = WebSocketDialog::checkGroupDialog($dialogMsg->userid, $dialog_id); if (empty($dialog)) { return Base::retError('不是聊天室成员'); } $dialog->last_at = Carbon::now(); $dialog->save(); $dialogMsg->dialog_id = $dialog->id; $dialogMsg->save(); // $userids = WebSocketDialogUser::whereDialogId($dialog->id)->where('userid', '!=', $dialogMsg->userid)->pluck('userid')->toArray(); if ($userids) { PushTask::push([ 'userid' => $userids, 'msg' => [ 'type' => 'dialog', 'data' => $msg, ] ]); } return Base::retSuccess('发送成功'); }); } /** * 给会员添加并发送消息 * @param int $userid 接收的会员ID * @param array $msg 发送的消息 * @param int $sender 发送的会员ID(默认自己,0为系统) * @return array */ public static function addUserMsg($userid, $msg, $sender = 0) { $dialogMsg = self::createInstance([ 'userid' => $sender ?: User::token2userid(), 'msg' => $msg, ]); return AbstractModel::transaction(function () use ($userid, $msg, $dialogMsg) { $dialog = WebSocketDialog::checkUserDialog($dialogMsg->userid, $userid); if (empty($dialog)) { return Base::retError('创建对话失败'); } $dialog->last_at = Carbon::now(); $dialog->save(); $dialogMsg->dialog_id = $dialog->id; $dialogMsg->save(); // PushTask::push([ 'userid' => $userid, 'msg' => [ 'type' => 'dialog', 'data' => $msg, ] ]); return Base::retSuccess('发送成功'); }); } }