From 3a2c40a43e023a2b8d9e05e732e969eefd9527d7 Mon Sep 17 00:00:00 2001 From: weifashi <605403358@qq.com> Date: Tue, 29 Aug 2023 17:09:32 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E4=BC=9A=E8=AE=AE=E5=8F=AF?= =?UTF-8?q?=E5=88=86=E4=BA=AB=20-=2060%?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/Api/UsersController.php | 18 +++++--- app/Http/Controllers/IndexController.php | 12 ++++++ .../manage/components/MeetingManager.vue | 43 +++++++++++++++---- .../pages/manage/components/MeetingPlayer.vue | 8 +++- resources/assets/js/pages/meeting.vue | 23 ++++++++++ resources/assets/js/routes.js | 5 +++ resources/assets/js/store/actions.js | 6 ++- 7 files changed, 95 insertions(+), 20 deletions(-) create mode 100644 resources/assets/js/pages/meeting.vue diff --git a/app/Http/Controllers/Api/UsersController.php b/app/Http/Controllers/Api/UsersController.php index d6a4d7e96..b3854a43f 100755 --- a/app/Http/Controllers/Api/UsersController.php +++ b/app/Http/Controllers/Api/UsersController.php @@ -1120,6 +1120,8 @@ class UsersController extends AbstractController * - join: 加入会议,有效参数:meetingid (必填) * @apiParam {String} [meetingid] 频道ID(不是数字) * @apiParam {String} [name] 会话ID + * @apiParam {String} [meetingsign] 签名 + * @apiParam {String} [username] 用户名称 * @apiParam {Array} [userids] 邀请成员 * * @apiSuccess {Number} ret 返回状态码(1正确、0错误) @@ -1128,13 +1130,15 @@ class UsersController extends AbstractController */ public function meeting__open() { - $user = User::auth(); - // $type = trim(Request::input('type')); $meetingid = trim(Request::input('meetingid')); $name = trim(Request::input('name')); $userids = Request::input('userids'); + $meetingsign = trim(Request::input('meetingsign')); + $username = trim(Request::input('username')); + $user = empty($meetingsign) ? User::auth() : null; $isCreate = false; + // 创建、加入 if ($type === 'join') { $meeting = Meeting::whereMeetingid($meetingid)->first(); @@ -1143,13 +1147,13 @@ class UsersController extends AbstractController } } elseif ($type === 'create') { $meetingid = strtoupper(Base::generatePassword(11, 1)); - $name = $name ?: "{$user->nickname} 发起的会议"; + $name = $name ?: "{$user?->nickname} 发起的会议"; $channel = "DooTask:" . substr(md5($meetingid . env("APP_KEY")), 16); $meeting = Meeting::createInstance([ 'meetingid' => $meetingid, 'name' => $name, 'channel' => $channel, - 'userid' => $user->userid + 'userid' => $user?->userid ]); $meeting->save(); $isCreate = true; @@ -1165,7 +1169,7 @@ class UsersController extends AbstractController if (empty($meetingSetting['appid']) || empty($meetingSetting['app_certificate'])) { return Base::retError('会议功能配置错误,请联系管理员'); } - $uid = intval(str_pad( Request::header('fd'), 6, 9, STR_PAD_LEFT) . $user->userid); + $uid = intval(str_pad( Request::header('fd'), 6, 9, STR_PAD_LEFT) . $user?->userid); try { $service = new AgoraTokenGenerator($meetingSetting['appid'], $meetingSetting['app_certificate'], $meeting->channel, $uid); } catch (\Exception $e) { @@ -1194,8 +1198,8 @@ class UsersController extends AbstractController // $data['appid'] = $meetingSetting['appid']; $data['uid'] = $uid; - $data['userimg'] = $user->userimg; - $data['nickname'] = $user->nickname; + $data['userimg'] = $meetingsign ? 'https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png' : $user?->userimg; + $data['nickname'] = $meetingsign ? $username : $user?->nickname; $data['token'] = $token; $data['msgs'] = $msgs; return Base::retSuccess('success', $data); diff --git a/app/Http/Controllers/IndexController.php b/app/Http/Controllers/IndexController.php index b2a19105c..e06e2c938 100755 --- a/app/Http/Controllers/IndexController.php +++ b/app/Http/Controllers/IndexController.php @@ -438,4 +438,16 @@ class IndexController extends InvokeController } return implode("\n", array_values($array)); } + + /** + * 提取所有中文 + * @return array|string + */ + public function meeting__share() + { + return response()->view('meeting.share', [ + 'version' => Base::getVersion(), + ])->header('Link', "<" . url('manifest.txt') . ">; rel=\"prefetch\""); + } + } diff --git a/resources/assets/js/pages/manage/components/MeetingManager.vue b/resources/assets/js/pages/manage/components/MeetingManager.vue index c5e76bb6d..aeb43c941 100644 --- a/resources/assets/js/pages/manage/components/MeetingManager.vue +++ b/resources/assets/js/pages/manage/components/MeetingManager.vue @@ -4,13 +4,17 @@ + :mask-closable="false" + :closable="!addData.meetingsign">