ListController.class.php 2.4 KB
<?php
/**
 * 管理员角色列表
 * ListController.class.php
 *
 */
namespace Apicp\Controller\AdminRole;

use VcySDK\Adminer;
use VcySDK\AdminerRole;

class ListController extends AbstractController
{
    public function Index()
    {
        // 接收数据
        $pageSize = I('post.limit', 1500); // 每页条数
        $pageNum = I('post.page'); // 页码
        $earId = I('post.earId'); // 角色ID
        $eaLevel = I('post.eaLevel'); // 管理级别

        // 当前管理员信息
        $user = $this->_login->user;
        if (!isset($user['eaLevel'])) {
            E('_ERR_ADMIN_MANAGER_EALEVEL_UNDEFINED');
        }

        // 当前管理员为分级管理,只可见本身所在的角色组(添加、编辑管理员页面;管理员列表页面)
        if ($user['eaLevel'] == Adminer::ADMIN_LEVEL_BRANCH) {
            $earId = $user['earId'];
        }

        // 查询条件数组拼接
        $condition = array(
            'earId' => $earId,
            'filterType' => AdminerRole::ROLE_LIST_FILTER_TYPE,
        );

        // 调用UC接口,查询符合条件的列表
        $result = $this->_sdkRole->listAll($condition, $pageNum, $pageSize);

        // 当前管理员为超级管理,设置超级管理、分级管理(添加、编辑管理员页面)
        $list = [];
        if (!empty($result['list']) && !empty($eaLevel) && $user['eaLevel'] == Adminer::ADMIN_LEVEL_SUPER) {
            foreach ($result['list'] as $v) {
                // 设置超管时,获取通讯录管理权限为全公司的角色组列表
                if ($eaLevel == Adminer::ADMIN_LEVEL_SUPER && empty($v['readDpIdList']) && empty($v['writeDpIdList'])) {
                    $list[] = $v;
                }

                // 设置分管时,获取通讯录管理权限为制定对象的角色组列表
                if ($eaLevel == Adminer::ADMIN_LEVEL_BRANCH && (!empty($v['readDpIdList']) || !empty($v['writeDpIdList']))) {
                    $list[] = $v;
                }
            }
        }

        // 输出
        $this->_result = array(
            'total' => $user['eaLevel'] == Adminer::ADMIN_LEVEL_SUPER && !empty($eaLevel)  ? count($list) : $result['total'],
            'limit' => $pageSize,
            'page' => $pageNum,
            'list' => $user['eaLevel'] == Adminer::ADMIN_LEVEL_SUPER && !empty($eaLevel) ? $list : $result['list'],
        );

        return true;
    }
}