<?php /** * 【后台】直播活动详情接口 * Created by PhpStorm. * User: yingcai * Date: 2018/1/10 * Time: 上午10:58 */ namespace Apicp\Controller\Room; use Common\Common\Constant; use Common\Common\User; use Common\Service\MainService; use Common\Service\RangeService; use Common\Service\RoleService; use Common\Service\StudioService; class DetailController extends AbstractController { /** * Detail * @author houyingcai * @desc 直播活动详情接口 * @param Int lm_id:true:1 直播活动ID * @return array|bool 直播列表 array( 'live_status' => 1, // 直播状态(1:草稿,2:未开始,3:进行中,4:已结束) 'start_time' => 1515407868910, // 直播开始时间 'name' => '产品培训讲解', // 直播名称 'estimated_duration' => 45, // 预计时长(单位:分钟) 'live_desc' => '直播描述', // 直播描述 'pic' => 'b3ddbc502e307665f346cbd6e52cc10d', // 封面图ID 'pic_url' => 'http://qy.vchangyi.org', // 封面图片URL 'lecturer' => '王宇', // 讲师姓名 'avatar' => 'http://qy.vchangyi.org', // 讲师头像URL 'lecturer_uid' => 'B4B3BA5B7F00000173E870DA6ADFEA2A', // 讲师UID 'lecturer_title' => '金牌讲师', // 讲师头衔 'lecturer_desc' => '讲师简介', // 讲师简介 'notice_posting' => 2, // 是否推送发布消息提醒(1:推送,2:不推送) 'notice_will_start' => 0, // 直播开始前(分钟)推送消息提醒(0:不推送,大于0表示推送) 'notice_start' => 1, // 直播开始时推送消息提醒 (1: 推送 2: 不推送) 'recomend' => 1, // 移动端首页推荐 (1: 推荐 2: 不推荐) 'range' => array( 'is_all' => 1, // 是否全公司(1=是,2=否) 'dp_list' => array(// 部门 array( 'dp_id' => 'B65085507F0000017D3965FCB20CA747',// 部门ID 'dp_name' => '一飞冲天',// 部门名 ), ), 'user_list' => array(// 人员 array( 'uid' => 'B4B3BA5B7F00000173E870DA6ADFEA2A',// 人员UID 'username' => '缘来素雅',// 人员姓名 'face' => 'http://shp.qpic.cn/bizmp/gdZUibR6BHrmiar6pZ6pLfRyZSVaXJicn2CsvKRdI9gccXRfP2NrDvJ8A/'// 人员头像 ), ), 'job_list' => array(// 职位 array( 'job_id' => '62C316437F0000017AE8E6ACC7EFAC22',// 职位ID 'job_name' => '攻城狮',// 职位名称 ), ), 'role_list' => array(// 角色 array( 'role_id' => '62C354B97F0000017AE8E6AC4FD6F429',// 角色ID 'role_name' => '国家元首',// 角色名称 ), ), 'tag_list' => array(// 标签 array( 'tag_id' => '62C354B97F0000017AE8E6AC4FD6F429',// 标签ID 'tag_name' => '外贸客户',// 标签名称 ), ), ), 'stream_name' => '2334_f40d273cafbd57d0be02091d7c128ecb', // 流名称 'stream_url' => 'rtmp://2334.livepush.myqcloud.com/live/', // 推流地址 'live_password' => 'abc123', // 直播密令 ) */ public function Index_post() { $lmId = I('post.lm_id', 0, 'rintval'); // 直播ID不存在 if (!$lmId) { E('_EMPTY_LIVE_ID'); } // 获取直播信息 $mainService = new MainService(); $mainDetail = $mainService->get($lmId); // 直播信息不存在 if (empty($mainDetail)) { E('_ERR_LIVE_IS_NOT_EXIST'); } // 格式化直播状态 $live_status = $mainService->live_status($mainDetail['live_status'], $mainDetail['start_time']); // 获取讲师信息 $roleService = new RoleService(); $roleInfo = $roleService->get_by_conds([ 'lm_id' => $lmId, ]); if ($roleInfo['type'] == Constant::LIVE_ROLE_TYPE_DEFAULT) { $lecturer = $roleInfo['obj_id']; // 系统管理员没有头像 $avatar = ''; $roleInfo['obj_id'] = ''; } else { // 获取讲师个人信息 $userService = &User::instance(); $lecturerInfo = $userService->getByUid($roleInfo['obj_id']); $lecturer = $lecturerInfo['memUsername']; $avatar = $userService->avatar($roleInfo['obj_id'], $lecturerInfo); } // 获取权限范围 $rangeServ = new RangeService(); $range = $rangeServ->getData(['lm_id' => $lmId]); // 获取直播推流信息 $studioServ = new StudioService(); $studio = $studioServ->get_by_conds(['lm_id' => $lmId]); // 返回数据 $this->_result = [ 'live_status' => intval($live_status), 'start_time' => $mainDetail['start_time'], 'name' => $mainDetail['name'], 'estimated_duration' => $mainDetail['estimated_duration'], 'live_desc' => $mainDetail['desc'], 'pic' => $mainDetail['pic'], 'pic_url' => $mainService->formatCover($mainDetail['pic']), 'lecturer' => $lecturer, 'avatar' => $avatar, 'lecturer_uid' => $roleInfo['obj_id'], 'lecturer_title' => $roleInfo['title'], 'lecturer_desc' => $roleInfo['desc'], 'notice_posting' => intval($mainDetail['notice_posting']), 'notice_will_start' => intval($mainDetail['notice_will_start']), 'notice_start' => intval($mainDetail['notice_start']), 'recomend' => intval($mainDetail['recomend']), 'range' => $range, 'stream_name' => (string)$studio['stream_name'], 'stream_url' => (string)$studio['stream_url'], 'live_password' => $roleInfo['password'], ]; return true; } }