直播间小程序码生成问题修复代码清单
修复提交:
9d3fb09fc56b0c0a9c668ac5e95980e58642d21c提交说明:
fix(live): 修复直播间分享二维码生成问题
1. 直播间分享接口
文件:
text
app/controller/admin/v1/marketing/live/LiveRoom.php
方法:
text
LiveRoomShare($id)
行数:
text
68-86
代码:
php
public function LiveRoomShare($id)
{
$id = (int)$id;
if ($id <= 0) return app('json')->fail('数据不存在');
$roomInfo = $this->services->get($id);
if (!$roomInfo) return app('json')->fail('直播间不存在');
$roomId = (int)$roomInfo['id'];
if ($roomId <= 0) return app('json')->fail('直播间ID错误');
/** @var QrcodeServices $qrcodeService */
$qrcodeService = app()->make(QrcodeServices::class);
// 小程序
$name = $roomId . '_live_room_detail_share_routine.jpg';
// 生成小程序地址(type=211,确保 scene 内 room_id 与直播间ID严格一致)
$data['share_routine_url'] = $qrcodeService->getRoutineQrcodePath($roomId, 0, 211, $name, true, 'qrcode/routine', $roomId);
$data['share_h5_url'] = $qrcodeService->getWechatQrcodePath($roomId . '_live_room_detail_share_wap.jpg', '/pages/activity/liveRoom/index?room_id=' . $roomId);
return app('json')->success('ok', $data);
}
2. 小程序码生成参数处理
文件:
text
app/services/other/QrcodeServices.php
方法:
text
getRoutineQrcodePath(...)
行数:
text
242-246
代码:
php
public function getRoutineQrcodePath(int $id, int $uid, int $type = 0, string $namePath = '', bool $isSaveAttach = true, string $savePath = 'qrcode/routine', int $roomId = 0)
{
$id = (int)$id;
$uid = (int)$uid;
$roomId = (int)$roomId;
3. 直播间小程序码页面类型
文件:
text
app/services/other/QrcodeServices.php
方法:
text
getRoutineQrcodePath(...)
行数:
text
263
代码:
php
211 => 'pages/activity/liveRoom/index',//直播
4. 直播间小程序码 scene 参数
文件:
text
app/services/other/QrcodeServices.php
方法:
text
getRoutineQrcodePath(...)
行数:
text
275-277
代码:
php
if ($type == 211) {
$data = 'room_id=' . ($roomId > 0 ? $roomId : $id);
}
5. 关联路由
文件:
text
route/admin.php
路由:
text
直播间分享地址
行数:
text
879-880
代码:
php
//直播间分享地址
Route::get('room/share/:id', 'v1.marketing.live.LiveRoom/LiveRoomShare')->option(['real_name' => '直播间分享地址']);