<?php
namespace Admin\Event;
use Think\Controller;
/**
 * 后台事件控制器
 * @author 王贺 
 */
class UserEvent extends BaseEvent {
    
    public function lists($model=null,$p=1,$extends_map=array()){
        parent::custom_list($model,$p,$extends_map);
    }
    public function user_join($model = null, $p = 0){
        $model || $this->error('模型名标识必须!');
        $page = intval($p);
        $page = $page ? $page : 1; //默认显示第一页数据
        //解析列表规则
        $fields = $model['fields'];
        // 关键字搜索
        $map    =  $model['map']; //array();
        foreach ($key as $key => $value) {
            if(isset($_REQUEST[$value])){
                $map[$value]  =   array('like','%'.$_GET[$value].'%');
                unset($_REQUEST[$value]);
            }
        }
        // 条件搜索
        foreach($_REQUEST as $name=>$val){
            if(in_array($name,$fields)){
                $map[$name] =   $val;
            }
        }

       if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;}

        //读取模型数据列表
        $name = $model['m_name'];
        //$new_model = D($name);
        $data = D($name)
            ->field('tab_user.*,tab_user_play.game_id,tab_user_play.game_name')
            ->join('tab_user_play ON tab_user.id = tab_user_play.user_id','LEFT')
            // 查询条件
            ->where($model['map'])
            /* 默认通过id逆序排列 */
            ->order($model['order'])
            ->group('tab_user.id')
            /* 数据分页 */
            ->page($page, $row)
            /* 执行查询 */
            ->select();
        /* 查询记录总数 */
        $count = D($name)
            ->field('tab_user.*,tab_user_play.game_id,tab_user_play.game_name')
            ->join('tab_user_play ON tab_user.id = tab_user_play.user_id','LEFT')
            // 查询条件
            ->group('tab_user.id')
            ->where($map)
            ->select();
            $count=count($count);
         //分页
        
				$page = set_pagination($count,$row);
				if($page) {$this->assign('_page', $page);}
				
        $this->assign('model', $model);
        $this->assign('list_data', $data);
        $this->assign('count', $count);
        $this->meta_title = $model['title'].'列表';
        
        $this->display($model['template_list']);
    }


  public function user_join_($model = null, $p = 0){
        $model || $this->error('模型名标识必须!');
        $page = intval($p);
        $page = $page ? $page : 1; //默认显示第一页数据
        //解析列表规则
        $fields = $model['fields'];
        // 关键字搜索


				if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;}
				
        // $row = 1;
        //读取模型数据列表
        $name = $model['m_name'];
        $data = M($name,"tab_")
            ->field($model['fields'])
            ->join($model['join'])
            ->join($model['joins'])
            ->join($model['joinss'])
            // 查询条件
            ->where($model['map'])
            /* 默认通过id逆序排列 */
            ->order($model['order'])
            ->group($model['group'])
            /* 数据分页 */
            ->page($page, $row)
            /* 执行查询 */
            ->select();
        //var_dump(M($name,"tab_")->getLastSql());exit;
        /* 查询记录总数 */
        $count = M($name,"tab_")
            ->field($model['fields'])
            ->join($model['join'])
            ->join($model['joins'])
            ->join($model['joinss'])
            // 查询条件
            ->where($model['map'])
            /* 默认通过id逆序排列 */
            ->order($model['order'])
            ->group($model['group'])
            /* 数据分页 */
            /* 执行查询 */
            ->count();
            if($model['ranking']==1){
            $i=($page-1)*$row;
            foreach ($data as $key => $value) {
               $ss[++$i]=$value;
            }
                 $this->assign('list_data', $ss);
            }else{
                 $this->assign('list_data', $data);
            }
          //分页
				
				$page = set_pagination($count,$row);
				if($page) {$this->assign('_page', $page);}
				
        $this->assign('model', $model);
        $this->meta_title = $model['title'].'列表';
        $this->display($model['template_list']);
    }


  public function user_join__($model = null, $p = 0){
        $model || $this->error('模型名标识必须!');
        $page = intval($p);
        $page = $page ? $page : 1; //默认显示第一页数据
        $arraypage = $page; //默认显示第一页数据
        //解析列表规则
        $fields = $model['fields'];
        // 关键字搜索
        $map    =  $model['map']; //array();
        foreach ($key as $key => $value) {
            if(isset($_REQUEST[$value])){
                $map[$value]  =   array('like','%'.$_GET[$value].'%');
                unset($_REQUEST[$value]);
            }
        }
        // 条件搜索
        foreach($_REQUEST as $name=>$val){
            if(in_array($name,$fields)){
                $map[$name] =   $val;
            }
        }

	
				if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;}

        //读取模型数据列表
        $name = $model['m_name'];
        $data = M($name,"tab_")
            ->field($model['fields'])
            ->join($model['join'])
            ->join($model['joins'])
            ->join($model['joinss'])
            // 查询条件
            ->where($model['map'])
            /* 默认通过id逆序排列 */
            ->order($model['order'])
            ->group($model['group'])
            /* 数据分页 */
            // ->page($page, $row)
            /* 执行查询 */
            ->select();
            $count=count($data);
              //分页
				
				$page = set_pagination($count,$row);
				if($page) {$this->assign('_page', $page);}
				
        if($_REQUEST['data_order']!=''){
            $data_order=reset(explode(',',$_REQUEST['data_order']));
            $data_order_type=end(explode(',',$_REQUEST['data_order']));
            $this->assign('userarpu_order',$data_order);
            $this->assign('userarpu_order_type',$data_order_type);
        }
        $data=my_sort($data,$data_order_type,(int)$data_order);
        $size=$row;//每页显示的记录数
        $pnum = ceil(count($data) / $size); //总页数,ceil()函数用于求大于数字的最小整数
        //用array_slice(array,offset,length) 函数在数组中根据条件取出一段值;array(数组),offset(元素的开始位置),length(组的长度)
        $data = array_slice($data, ($arraypage-1)*$size, $size);
        $this->assign('model', $model);
        $this->assign('list_data', $data);
        $this->meta_title = $model['title'].'列表';
        $this->display($model['template_list']);
    }




    /**
	*获取用户实体
	*@param int $id
	*@return array
	*@author 小纯洁 
    */
    public function user_entity($id=0){
    	$user = M("user","tab_");
    	$map['id'] = $id;
    	$data = $user->where($map)->find();
        if(is_numeric($data['head_img'])){
            $data['head_img'] = get_cover($data['head_img'],'path');
        }
    	return $data;
    }
    
}