<?php

namespace Media\Controller;
use OT\DataDictionary;
use User\Api\MemberApi;

/**
 * 前台首页控制器
 * 主要获取首页聚合数据
 */
class IndexController extends BaseController {

	//系统首页
    public function index(){
        $this->slide();//轮播图
        $this->recommend();
        $this->hot();
        $this->area();
        $this->slide(2);//中部广告
        $this->newzixun();
        $this->slide(4);//资讯广告
        $this->gift();
        
        $user_id=session('member_auth.mid');
        $user=get_user_entity($user_id)==false?session('member_auth'):get_user_entity($user_id);
        C(api('Config/lists'));
        if (C('UC_SET') == 1 && session('member_auth.nickname') == 'Uc用户') {
            $user_play = null;
            $sqltype = 2;
            $ucuser = M('User','tab_',C('DB_CONFIG2'))->where(array('account'=>session('member_auth.account')))->find();
            if($ucuser==''){
                $sqltype = 3;
                $ucuser = M('User','tab_',C('DB_CONFIG3'))->where(array('account'=>session('member_auth.account')))->find();
            }
            $this->assign('uc_balance', $ucuser['balance']);
        } else{
            $user_play=M('User_play as u','tab_')
                    ->field('g.relation_game_id,g.relation_game_name,u.server_name,icon')
                    ->join('tab_game g on u.game_id = g.id ')
                    ->where(array('user_id'=>$user['id']))
                    ->group('g.relation_game_id')
                    ->limit(2)
                    ->select();
        }
        $this->assign('user_play',$user_play);
        $this->assign('user',$user);
        $this->display();
    }


    public function slide($pos_id=1){
        $adv = M("Adv","tab_");
        $map['status'] = 1;
        $map['pos_id'] = $pos_id; #首页轮播图广告id
        $map['start_time']=array(array('lt',time()),array('eq',0), 'or') ;
        $map['end_time']=array(array('gt',time()),array('eq',0), 'or') ;
        $carousel = $adv->where($map)->order('sort desc,id desc')->select();
        if($pos_id==2){
            // 设置媒体中部广告为一张 随机显示
        $carousel = $adv->where($map)->limit(1)->select();
            $this->assign("midcarousel",$carousel);
        }elseif($pos_id==4){
            $data[0] = array('url'=>'javascript:','title'=>'暂无广告','data'=>'0');
            $carousel = empty($carousel)?$data:$carousel;
            $this->assign("zixuncarousel",$carousel);
        }else{
            $this->assign("carousel",$carousel);
        }

    }
    /***
	*推荐游戏
    */
    public function recommend(){
    	$model = array(
    		'm_name'=>'Game',
    		'prefix'=>'tab_',
    		'map'   =>array('game_status'=>1,'recommend_status'=>1,'display_site'=>['like','%' . DISPLAY_SITE . '%']),
    		'field' =>'*,min(id) as id',
    		'order' =>'sort desc,id desc',
            'group' =>'relation_game_id',
    		'limit' =>'0,9',
    	);
        if(is_cache() && S('index_reco')){
            $reco=S('index_reco');
        }else{
    	    $reco = parent::list_data($model);
            if(is_cache() ){
                S('index_reco',$reco);
            }
        }
        $reco=game_merge($reco,$model['map']);
//        var_dump($reco);die;
    	$this->assign('recommend',$reco);
    }
    /***
    *推荐游戏
    */
    public function recommend1(){
        $shunxu = I('shunxu');
        $shuzu = M('Game','tab_')->where(array('game_status'=>1,'recommend_status'=>1))->field('relation_game_id')->group('relation_game_id')->select();
        $count = count($shuzu);
        if ($count <= 4){
            $this->ajaxReturn(array('status'=>0,'data'=>"没有更多了~"));
        }
        $arr = array();
        foreach ($shuzu as $k => $v){
            $arr[] = $shuzu[$k]['relation_game_id'];
        }

        $shunxu1 = $shunxu*4;
        $shunxu2 = $shunxu*4+4;


        if (floor($shunxu1/$count) == floor($shunxu2/$count) && floor($shunxu1/$count) == 0){
            $shunxu_x = $shunxu1.",".($shunxu2-$shunxu1);
        }elseif(floor($shunxu1/$count) == floor($shunxu2/$count) && floor($shunxu1/$count) != 0){
            $floor = floor($shunxu1/$count);
            $shunxu_x = ($shunxu1-$floor*$count).",".(($shunxu2-$floor*$count)-($shunxu1-$floor*$count));
        }elseif (floor($shunxu1/$count) == 0 && floor($shunxu2/$count)!=0){
            $floor = floor($shunxu2/$count);
            $shunxu_x1 = $shunxu1.",".($count-$shunxu1);
            $shunxu_x2 = '0'.",".($shunxu2-$floor*$count);
        }elseif(floor($shunxu1/$count) != 0 && floor($shunxu2/$count)!=0 && floor($shunxu1/$count) != floor($shunxu2/$count)){
            $floor1 = floor($shunxu1/$count);
            $floor2 = floor($shunxu2/$count);

            $shunxu_x1 = ($shunxu1-$floor1*$count).",".($count-($shunxu1-$floor1*$count));
            $shunxu_x2 = '0'.",".($shunxu2-$floor2*$count);
        }


        if ($shunxu_x){
            $model = array(
                'm_name'=>'Game',
                'prefix'=>'tab_',
                'map'   =>array('game_status'=>1,'recommend_status'=>1),
                'field' =>'*,min(id) as id',
                'order' =>'id desc',
                'group' =>'relation_game_id',
                'limit' =>$shunxu_x,
            );
            $reco = parent::list_data($model);
        }else{
            $model1 = array(
                'm_name'=>'Game',
                'prefix'=>'tab_',
                'map'   =>array('game_status'=>1,'recommend_status'=>1),
                'field' =>'*,min(id) as id',
                'order' =>'id desc',
                'group' =>'relation_game_id',
                'limit' =>$shunxu_x1,
            );
            $reco1 = parent::list_data($model1);

            if ($shunxu_x2 != '0,0'){
                $model2 = array(
                    'm_name'=>'Game',
                    'prefix'=>'tab_',
                    'map'   =>array('game_status'=>1,'recommend_status'=>1),
                    'field' =>'*,min(id) as id',
                    'order' =>'id desc',
                    'group' =>'relation_game_id',
                    'limit' =>$shunxu_x2,
                );
                $reco2 = parent::list_data($model2);
                $reco = array_merge($reco1,$reco2);
            }else{
                $reco = $reco1;
            }

        }

        $reco=game_merge($reco,$model['map']);
        foreach ($reco as $key=>$value){
            $reco[$key]['game_detail']=U('Game/game_detail',array('id'=>$value['relation_game_id']));
            $reco[$key]['dow_url_generate_and']=U('Game/dow_url_generate',array('id'=>$value['relation_game_id'],'type'=>1));
            $reco[$key]['dow_url_generate_ios']=U('Game/dow_url_generate',array('id'=>$value['relation_game_id'],'type'=>2));
            $reco[$key]['relation_game_id']=U('Game/game_detail',array('id'=>$value['relation_game_id']));
            $reco[$key]['cover']=get_cover($value['cover'],'path');
            $reco[$key]['percent']=$value['game_score']*10;
            $reco[$key]['down_total']=$value['anddow']+$value['iosdow'];
            $reco[$key]['game_type_name'] = msubstr2($reco[$key]['game_type_name'],0,10);
            $reco[$key]['relation_game_name'] = msubstr2($reco[$key]['relation_game_name'],0,10);
        }
        if($reco){
            $this->ajaxReturn(array('status'=>1,'data'=>$reco));
        }else{
            $this->ajaxReturn(array('status'=>0,'data'=>"没有更多了~"));
        }
    }

    /***
	*热门游戏
    */
    public function hot($limit=8){
    	$model = array(
    		'm_name'=>'Game',
    		'prefix'=>'tab_',
    		'map'   =>array('game_status'=>1,'recommend_status'=>2,'display_site'=>['like','%' . DISPLAY_SITE . '%']),
    		'field' =>'*,min(id) as id',
    		'order' =>'sort desc,id desc',
            'group' =>'relation_game_id',
    		'limit' =>8,
    	);
        if(is_cache() && S('index_hot')){
            $hot=S('index_hot');
        }else{
            $hot = parent::list_data($model);
            if(is_cache() ){
                S('index_hot',$hot);
            }
        }
        $hot = game_merge($hot,$model['map']);
    	$this->assign('hot',$hot);
    }

    /***
    *最新游戏
    */
    public function newgame($recommend_status=3,$order='sort desc,id desc'){
        $model = array(
            'm_name'=>'Game',
            'prefix'=>'tab_',
            'map'   =>array('game_status'=>1,'recommend_status'=>$recommend_status,'display_site'=>['like','%' . DISPLAY_SITE . '%']),
            'field' =>'*,min(id) as id,@counter:=@counter+1 AS Rank',
            'order' =>$order,
            'group' =>'relation_game_id',
            'limit' =>9,
        );
        $newgame = parent::list_data($model);
        $newgame = array_order(game_merge($newgame,$model['map']));
        $this->assign('new',$newgame);
    }

    /***
	*游戏礼包
    */
    public function gift(){
        $map['game_status']=1;
        $map['end_time']=array(array('gt',time()),array('eq',0),'or');
        //$map['giftbag_type']=2;
        $map['status'] = 1;
				$map['display_site'] = ['like','%'. DISPLAY_SITE .'%'];
    	$model = array(
    		'm_name'=>'Giftbag',
    		'prefix'=>'tab_',
    		'field' =>'tab_giftbag.id as gift_id,relation_game_name,game_id,tab_giftbag.game_name,giftbag_name,giftbag_type,tab_game.icon,tab_giftbag.create_time',
    		'join'	=>'tab_game on tab_giftbag.game_id = tab_game.id',
    		'map'   =>$map,
    		'order' =>'create_time desc',
    		'limit' =>10,
    	);
        if(is_cache() && S('index_gift')){
            $gift=S('index_gift');
        }else{
    	    $gift = parent::join_data($model);
            if(is_cache() ){
                S('index_gift',$gift);
            }
        }
        foreach ($gift as $key => $value) {
            $gift[$key]['gift_num']=gift_recorded($value['game_id'],$value['gift_id']);
        }
    	$this->assign('gift',$gift);
    }

    /***
	*游戏区服
    */
    public function area(){
    	$model = array(
            'm_name'=>'server',
            'prefix'=>'tab_',
            'field' =>'tab_server.*,tab_game.relation_game_name,tab_game.relation_game_id,tab_game.icon,tab_game.cover,tab_giftbag.id as gift_id',
            'join'	=>' left join tab_game on tab_server.game_id = tab_game.id left join tab_giftbag on tab_server.game_id = tab_giftbag.game_id',
            'map'   =>array('game_status'=>1,'show_status'=>1,'tab_server.start_time'=>array('lt',time()),'display_site'=>['like','%' . DISPLAY_SITE . '%']),
            'group' =>'tab_server.id',
            'order' =>'start_time desc',
            'limit'=>10000,
    	);
    	$area = parent::join_data($model);
    	$this->assign('area',$area);
    }


    public function newzixun($limit=''){
        $map['sys_category.name']=array('in','media_gg,media_activity,media_zx');//显示公告和资讯
        $map['sys_document.status']=1;
        $map['sys_document.display']=1;
        $map['deadline']=array(array('gt',time()),array('eq',0),'or');
        $data=M('document')
                ->field('sys_category.name,cover_id,category_id,sys_document.description,sys_document.title,sys_document.update_time,sys_document.id')
                ->join('sys_category on sys_document.category_id = sys_category.id and sys_category.pid = 84')
                ->where($map)
                ->limit($limit)
                ->limit(0,20)
                ->order('level desc,id desc')
                ->select();
        foreach ($data as $key => $value) {
            if($value['name']=='media_activity'){
                $huodong[]=$value;
                unset($data[$key]);
            }
            if($value['name']=='media_gg'){
                $media_gg[]=$value;
                unset($data[$key]);
            }
            if($value['name']=='media_zx'){
                $media_zx[]=$value;
                unset($data[$key]);
            }
        }
        $this->assign('firhuodong',$huodong[0]);
        unset($huodong[0]);
        $this->assign('huodong',$huodong);
        $this->assign('media_gg',$media_gg);
        $this->assign('media_zx',$media_zx);
        $this->assign('newzixun',$data);
    }



    public function download(){
    	$app_map['name'] = ['like','%游戏盒子%'];
    	$app_map['version'] = 1;
	    $android = M('app', 'tab_')->where($app_map)->find();
        $android_url = file_exists($android['file_url'])?$android['file_url']:"javascript:";
        $this->assign('android',$android_url);

	    $app_map['version'] = 2;
	    $ios = M('app', 'tab_')->where($app_map)->find();
        $ios['url'] = file_exists($ios['file_url'])?$ios['file_url']:"javascript:";
        $ios['plist_url'] = "https://".$_SERVER['HTTP_HOST'].substr($ios['plist_url'],1);
        if(is_mobile_request()){
            $devices = get_devices_type();
            $this->assign("devices",$devices);
        }
        $this->assign('ios',$ios);
        $this->display();
    }

    public function qrcode($url='pc.vlcms.com',$level=3,$size=4){
        $url = base64_decode(base64_decode($url));
        Vendor('phpqrcode.phpqrcode');
        $errorCorrectionLevel =intval($level) ;//容错级别
        $matrixPointSize = intval($size);//生成图片大小
        //生成二维码图片
        //echo $_SERVER['REQUEST_URI'];
        ob_clean();
        $object = new \QRcode();
        echo $object->png($url, false, $errorCorrectionLevel, $matrixPointSize, 2);
    }

    public function down_app(){

    }

    public function business(){

        $model = array(
            'm_name'=>'Game',
            'prefix'=>'tab_',
            'map'   =>array('game_status'=>1,'recommend_status'=>2,'display_site'=>['like','%' . DISPLAY_SITE . '%']),
            'field' =>'*,min(id) as id',
            'order' =>'sort desc,id desc',
            'group' =>'relation_game_id',
            'limit' =>'0,9',
        );
        if(is_cache() && S('index_reco')){
            $reco=S('index_reco');
        }else{
            $reco = parent::list_data($model);
            if(is_cache() ){
                S('index_reco',$reco);
            }
        }
        $reco = game_merge($reco,$model['map']);
        $this->assign('recommend',$reco);


        $this->display();

    }

    public function join(){

        $this->display();
    }

    public function hezuo(){


        $this->display();
    }
}