LiveDetailsController.class.php 5.12 KB
<?php
/*
 * 直播-详情
 * 2018.07.19
 *
 */

namespace Apicp\Controller\VhLiveTotal;


use Common\Common\Constant;
use Common\Common\Department;
use Common\Common\Job;
use Common\Common\Role;
use Common\Common\Tag;
use Common\Common\User;
use Common\Common\Vhall;

class LiveDetailsController extends AbstractController
{
    protected $_require_login = false;

    public function Index_post()
    {
        $liveId = I('post.liveId');

        if (empty($liveId)) {
            E('_EMPTY_LIVE_ID');
        }

        // 获取直播详情
        $uc_info = Vhall::instance()->details($liveId);

        // 获取配置详情
        $setting_info = $this->vhall_service->get_by_conds(['vh_id' => $liveId],[],true);

        // 如果是内部讲师
        if (Constant::INSIDE_TEACHER_TYPE == $setting_info['teacher_type']) {
            $user_info = User::instance()->getByUid($setting_info['teacher_id']);
            $setting_info['teacher_name'] = $user_info['memUsername'];
            $setting_info['teacher_face'] = $user_info['memFace'];
        }

        $liveScops = $uc_info['liveScope'];

        $uc_info['liveScopeAll'] = $liveScops['brAll'];
        $uc_info['liveVhallId'] = strval($uc_info['liveVhallId']);

        // 获取权限列表
        $setting_info['right'] = $this->get_right_data($liveScops);
        // 组装数据
        $uc_info = array_merge($uc_info, $setting_info);

        $this->_result = $uc_info;

        return true;
    }

    /**
     * 获取格式化后的权限数据
     *
     * @author daijun
     *
     * @param array $conds 权限筛选条件
     *
     * @return  array $data 组装后权限数组
     *          + array dp_list   部门信息
     *                    + string dp_id   部门ID
     *                    + string dp_name 部门名称
     *          + array user_list 人员信息
     *                    + string uid      用户ID
     *                    + string username 用户姓名
     *                    + string face     头像
     *           array $list 原始权限数组
     */
    protected function get_right_data($rights_db)
    {
        if (!empty($rights_db['brAll'])) {
            return [];
        }

        $data = [
            'user_list' => [],
            'dp_list' => [],
            'job_list' => [],
            'role_list' => [],
            'tag_list' => []
        ];


        $dpServ = &Department::instance();
        $userServ = &User::instance();
        $jobServ = &Job::instance();
        $roleServ = &Role::instance();
        $tagServ = &Tag::instance();

        // 部门
        if (!empty($rights_db['dpIds'])) {
            if (is_json($rights_db['dpIds'])) {
                $rights_db['dpIds'] = json_decode($rights_db['dpIds'], true);
            }

            sort($rights_db['dpIds']);
            $dps = $dpServ->listById($rights_db['dpIds']);
            foreach ($dps as $dp) {
                $data['dp_list'][] = [
                    'dpID' => $dp['dpId'],
                    'dpName' => $dp['dpName'],
                ];
            }
        }

        // 人员
        if (!empty($rights_db['userIds'])) {
            if (is_json($rights_db['userIds'])) {
                $rights_db['userIds'] = json_decode($rights_db['userIds'], true);
            }
            sort($rights_db['userIds']);
            // 查询
            $users = $userServ->listAll(['memUids' => $rights_db['userIds']]);

            foreach ($users as $user) {
                $data['user_list'][] = [
                    'memID' => $user['memUid'],
                    'memUsername' => $user['memUsername'],
                    'memFace' => $user['memFace'],
                ];
            }
        }

        // 岗位
        if (!empty($rights_db['jobIds'])) {
            if (is_json($rights_db['jobIds'])) {
                $rights_db['jobIds'] = json_decode($rights_db['jobIds'], true);
            }
            $jobs = $jobServ->listById($rights_db['jobIds']);
            foreach ($jobs as $job) {
                $data['job_list'][] = [
                    'jobID' => $job['jobId'],
                    'jobName' => $job['jobName'],
                ];
            }
        }

        // 角色
        if (!empty($rights_db['roleIds'])) {
            if (is_json($rights_db['roleIds'])) {
                $rights_db['roleIds'] = json_decode($rights_db['roleIds'], true);
            }
            $roles = $roleServ->listById($rights_db['roleIds']);
            foreach ($roles as $role) {
                $data['role_list'][] = [
                    'roleID' => $role['roleId'],
                    'roleName' => $role['roleName'],
                ];
            }
        }

        // 标签
        if (!empty($rights_db['tagIds'])) {
            if (is_json($rights_db['tagIds'])) {
                $rights_db['tagIds'] = json_decode($rights_db['tagIds'], true);
            }
            $tags = $tagServ->listById($rights_db['tagIds']);
            foreach ($tags as $tag) {
                $data['tag_list'][] = [
                    'tagID' => $tag['tagId'],
                    'tagName' => $tag['tagName'],
                ];
            }
        }

        return $data;
    }

}