完善会议功能

This commit is contained in:
kuaifan
2022-06-01 17:10:10 +08:00
parent bf59fae173
commit 357f0e4df4
8 changed files with 196 additions and 24 deletions

View File

@@ -773,9 +773,12 @@ class UsersController extends AbstractController
* @apiGroup users
* @apiName meeting__open
*
* @apiParam {String} [meetingid] 会议ID(不是数字,留空自动创建)
* @apiParam {String} [name] 会话ID
* @apiParam {Array} [userids] 邀请成员
* @apiParam {String} type 类型
* - create: 创建会议,有效参数:name、userids
* - join: 加入会议,有效参数:meetingid (必填)
* @apiParam {String} [meetingid] 频道ID(不是数字)
* @apiParam {String} [name] 会话ID
* @apiParam {Array} [userids] 邀请成员
*
* @apiSuccess {Number} ret 返回状态码(1正确、0错误)
* @apiSuccess {String} msg 返回信息(错误描述)
@@ -785,17 +788,18 @@ class UsersController extends AbstractController
{
$user = User::auth();
//
$type = trim(Request::input('type'));
$meetingid = trim(Request::input('meetingid'));
$name = trim(Request::input('name'));
$userids = Request::input('userids');
$isCreate = false;
//
if ($meetingid) {
if ($type === 'join') {
$meeting = Meeting::whereMeetingid($meetingid)->first();
if (empty($meeting)) {
return Base::retError('会议不存在');
return Base::retError('频道ID不存在');
}
} else {
} elseif ($type === 'create') {
$meetingid = strtoupper(Base::generatePassword());
$name = $name ?: "{$user->nickname} 发起的会议";
$channel = "DooTask:" . substr(md5($meetingid . env("APP_KEY")), 16);
@@ -807,14 +811,20 @@ class UsersController extends AbstractController
]);
$meeting->save();
$isCreate = true;
} else {
return Base::retError('参数错误');
}
// 创建令牌
$appid = '342c604542484b0d9659527f79aefcdb';
$app_certificate = '920eb911c1f549948366e44d6dcabcbe';
$channel = $meeting->channel;
$meetingSetting = Base::setting('meetingSetting');
if ($meetingSetting['open'] !== 'open') {
return Base::retError('会议功能未开启,请联系管理员开启');
}
if (empty($meetingSetting['appid']) || empty($meetingSetting['app_certificate'])) {
return Base::retError('会议功能配置错误,请联系管理员');
}
$uid = $user->userid . '_' . Request::header('fd');
try {
$service = new AgoraTokenGenerator($appid, $app_certificate, $channel, $uid);
$service = new AgoraTokenGenerator($meetingSetting['appid'], $meetingSetting['app_certificate'], $meeting->channel, $uid);
} catch (\Exception $e) {
return Base::retError($e->getMessage());
}
@@ -840,7 +850,7 @@ class UsersController extends AbstractController
}
//
$data = $meeting->toArray();
$data['appid'] = $appid;
$data['appid'] = $meetingSetting['appid'];
$data['uid'] = $uid;
$data['token'] = $token;
$data['msgs'] = $msgs;