feat:添加会议分享功能 - 100%

This commit is contained in:
weifashi
2023-08-30 18:21:37 +08:00
parent 3a2c40a43e
commit 0c4abb5db3
9 changed files with 180 additions and 35 deletions

View File

@@ -613,7 +613,10 @@ class UsersController extends AbstractController
*/
public function basic()
{
User::auth();
$sharekey = Request::header('Sharekey');
if(empty($sharekey) || !Meeting::getShareInfo($sharekey)){
User::auth();
}
//
$userid = Request::input('userid');
$array = Base::json2array($userid);
@@ -1120,7 +1123,7 @@ class UsersController extends AbstractController
* - join: 加入会议有效参数meetingid (必填)
* @apiParam {String} [meetingid] 频道ID不是数字
* @apiParam {String} [name] 会话ID
* @apiParam {String} [meetingsign] 签名
* @apiParam {String} [sharekey] 分享的key
* @apiParam {String} [username] 用户名称
* @apiParam {Array} [userids] 邀请成员
*
@@ -1134,11 +1137,17 @@ class UsersController extends AbstractController
$meetingid = trim(Request::input('meetingid'));
$name = trim(Request::input('name'));
$userids = Request::input('userids');
$meetingsign = trim(Request::input('meetingsign'));
$sharekey = trim(Request::input('sharekey'));
$username = trim(Request::input('username'));
$user = empty($meetingsign) ? User::auth() : null;
$user = null;
if(!empty($sharekey) && $type === 'join'){
if(!Meeting::getShareInfo($sharekey)){
return Base::retError('分享链接已过期');
}
}else{
$user = User::auth();
}
$isCreate = false;
// 创建、加入
if ($type === 'join') {
$meeting = Meeting::whereMeetingid($meetingid)->first();
@@ -1169,7 +1178,10 @@ 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(Base::generatePassword(4,1), 9, 8, STR_PAD_LEFT));
if($user){
$uid = intval(str_pad(Request::header('fd'), 5, 9, STR_PAD_LEFT).$user->userid);
}
try {
$service = new AgoraTokenGenerator($meetingSetting['appid'], $meetingSetting['app_certificate'], $meeting->channel, $uid);
} catch (\Exception $e) {
@@ -1198,13 +1210,40 @@ class UsersController extends AbstractController
//
$data['appid'] = $meetingSetting['appid'];
$data['uid'] = $uid;
$data['userimg'] = $meetingsign ? 'https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png' : $user?->userimg;
$data['nickname'] = $meetingsign ? $username : $user?->nickname;
$data['userimg'] = $sharekey ? Base::fillUrl('avatar/'.$username.'.png') : $user?->userimg;
$data['nickname'] = $sharekey ? $username : $user?->nickname;
$data['token'] = $token;
$data['msgs'] = $msgs;
$data['sharelink'] = $meeting->getShareLink();
//
Meeting::setTouristInfo($data);
//
return Base::retSuccess('success', $data);
}
/**
* @api {get} api/users/meeting/tourist 16. 【会议】游客信息
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
* @apiGroup users
* @apiName meeting__tourist
*
* @apiParam {String} tourist_id 游客ID
*
* @apiSuccess {Number} ret 返回状态码1正确、0错误
* @apiSuccess {String} msg 返回信息(错误描述)
* @apiSuccess {Object} data 返回数据
*/
public function meeting__tourist()
{
$touristId = trim(Request::input('tourist_id'));
if ($touristInfo = Meeting::getTouristInfo($touristId)) {
return Base::retSuccess('success', $touristInfo);
}
return Base::retError('Id不存在');
}
/**
* @api {get} api/users/meeting/invitation 17. 【会议】发送邀请
*