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 @@