public function userList($page = 1, $r = 20)
 {
     $aRoleId = I('role_id', 0, 'intval');
     $aUserStatus = I('user_status', 0, 'intval');
     $aSingleRole = I('single_role', 0, 'intval');
     $role_list = $this->roleModel->field('id,title as value')->order('sort asc')->select();
     $role_id_list = array_column($role_list, 'id');
     if ($aRoleId && in_array($aRoleId, $role_id_list)) {
         //筛选角色
         $map_user_list['role_id'] = $aRoleId;
     } else {
         $map_user_list['role_id'] = $role_list[0]['id'];
     }
     if ($aUserStatus) {
         //筛选状态
         $map_user_list['status'] = $aUserStatus == 3 ? 0 : $aUserStatus;
     }
     if ($aSingleRole) {
         //单角色筛选
         $uids = $this->userRoleModel->group('uid')->field('uid')->having('count(uid)=1')->select();
         $uids = array_column($uids, 'uid');
         //单角色用户id列表
         if ($aSingleRole == 1) {
             $map_user_list['uid'] = array('in', $uids);
         } else {
             $map_user_list['uid'] = array('not in', $uids);
         }
     }
     $user_list = $this->userRoleModel->where($map_user_list)->page($page, $r)->order('id desc')->select();
     $totalCount = $this->userRoleModel->where($map_user_list)->count();
     foreach ($user_list as &$val) {
         $user = query_user(array('nickname', 'avatar64'), $val['uid']);
         $val['nickname'] = $user['nickname'];
         $val['avatar'] = $user['avatar64'];
     }
     unset($user, $val);
     $statusOptions = array(0 => array('id' => 0, 'value' => '全部'), 1 => array('id' => 1, 'value' => '启用'), 2 => array('id' => 2, 'value' => '未审核'), 3 => array('id' => 3, 'value' => '禁用'));
     $singleRoleOptions = array(0 => array('id' => 0, 'value' => '全部'), 1 => array('id' => 1, 'value' => '单角色用户'), 2 => array('id' => 2, 'value' => '非单角色用户'));
     $builder = new AdminListBuilder();
     $builder->title('角色用户列表')->setSelectPostUrl('Role/userList');
     if ($map_user_list['status'] == 2) {
         $builder->setStatusUrl(U('Role/setUserAudit', array('role_id' => $map_user_list['role_id'])))->buttonEnable('', '审核通过')->buttonDelete('', '审核失败');
     } else {
         $builder->setStatusUrl(U('Role/setUserStatus', array('role_id' => $map_user_list['role_id'])))->buttonEnable()->buttonDisable();
     }
     $builder->modalPopupButton(U('Role/changeRole', array('role_id' => $map_user_list['role_id'])), array(), '迁移用户', array('data-title' => '迁移用户到其他角色'))->select('角色:', 'role_id', 'select', '', '', '', $role_list)->select('状态:', 'user_status', 'select', '', '', '', $statusOptions)->select('', 'single_role', 'select', '', '', '', $singleRoleOptions)->keyId()->keyImage('avatar', '头像')->keyLink('nickname', '昵称', 'ucenter/index/information?uid=###')->keyStatus()->pagination($totalCount, $r)->data($user_list)->display();
 }