alias("t") ->field("t.id,t.icon,t.type_name,count(distinct(g.relation_game_id)) as game_num") ->join("left join tab_game as g on g.game_type_id = t.id and g.game_status = 1 and g.apply_status =1 and g.online_status=1 and g.sdk_version like '%$devices%' and g.display_site like '%".DISPLAY_SITE."%' ") //and g.sdk_version = {$version} ->where($where) ->group("t.id") ->select(); $this->assign('data',$data); $this->assign('mate_title','游戏分类'); $this->display(); } public function categorydetail(){ $page = $page ? $page : 1; //默认显示第一页数据 $row = C('LIST_ROWS'); $id = $_REQUEST['id'];//I('request.id'); $name = I('post.name'); $model = M('Game','tab_'); $promote_id = empty(PROMOTE_ID) ? 0 : PROMOTE_ID; $rebate_join = "and (r.promote_id = {$promote_id} or r.promote_id = -1)"; $time = NOW_TIME; $devices = get_devices_type(); $where['g.game_type_id'] = $id; $where['g.game_status'] = 1; $where['g.display_site'] = ['like','%'.DISPLAY_SITE.'%']; $where['g.apply_status'] = 1; $where['g.online_status'] = 1; $where['g.sdk_version'] = array('like','%'.$devices.'%'); if(trim($name)){ $where['g.relation_game_name'] = ['like','%'.$name.'%']; } if(is_cache() &&S('mobile_game_data'.$devices.'_'.$id) &&$name=='' ){ $data=S('mobile_game_data'.$devices.'_'.$id); }else{ //去除重复数据 $data = $model ->alias('g') ->field('g.id,g.sort,g.relation_game_id,g.relation_game_name,g.sdk_version,g.down_port,g.id as game_id,g.game_name,g.icon,g.dow_num,g.marking,g.game_size,g.game_score,g.dow_status,g.features,g.and_dow_address,g.ios_dow_address,g.add_game_address,g.ios_game_address,g.bind_recharge_discount as discount,s.pack_name,IFNULL(r.ratio,0) as ratio') //游戏原包 ->join("left join tab_game_source as s on s.game_id = g.id") //返利 ->join("left join tab_rebate r on r.game_id = g.id {$rebate_join} and r.starttime <{$time} and (endtime = 0 or endtime > {$time})") ->where($where) ->page($page, $row) ->order('g.sort desc,g.id desc') ->group("g.relation_game_id") ->select(); foreach ($data as $key => $val){ $data[$key]['icon'] = get_cover($val['icon'],'path'); $data[$key]['game_score'] = $val['game_score']; $data[$key]['game_size'] = empty($val['game_size'])?"0MB":$val['game_size']; if(!is_mobile_request()){ $data[$key]['relation_game_name'] = $val['game_name']; } } if(is_cache() &&$name=='' ){ S('mobile_game_data'.$devices.'_'.$id,$data); } } $this->assign('data',$data); $this->assign('page',$page); $this->assign('name',$name); $this->assign('type',$id); $this->assign('mate_title',get_game_category_name($id)); $this->display(); } public function ajaxlists() { $id = I('post.type'); $p = I('post.p'); $status = 0; $row = C('LIST_ROWS'); $model = M('Game','tab_'); $devices = get_devices_type(); $promote_id = empty(PROMOTE_ID) ? 0 : PROMOTE_ID; $rebate_join = "and (r.promote_id = {$promote_id} or r.promote_id = -1)"; $time = NOW_TIME; $where['g.game_type_id'] = I('request.type'); $where['g.game_status'] = 1; $where['g.apply_status'] = 1; $where['g.online_status'] = 1; $where['g.sdk_version'] = array('like','%'.$devices.'%'); $data = $model ->alias('g') ->field('g.id,g.sort,g.relation_game_id,g.relation_game_name,g.sdk_version,g.down_port,g.id as game_id,g.game_name,g.icon,g.dow_num,g.marking,g.game_size,g.game_score,g.dow_status,g.features,g.and_dow_address,g.ios_dow_address,g.add_game_address,g.ios_game_address,g.bind_recharge_discount as discount,s.pack_name,IFNULL(r.ratio,0) as ratio') //游戏原包 ->join("left join tab_game_source as s on s.game_id = g.id") //返利 ->join("left join tab_rebate r on r.game_id = g.id {$rebate_join} and r.starttime < {$time} and (endtime = 0 or endtime > {$time})") ->where($where) ->page($p, $row) ->order('g.sort desc,g.id desc') ->group("g.relation_game_id") ->select(); foreach ($data as $key => $val){ $data[$key]['icon'] = get_cover($val['icon'],'path'); $data[$key]['game_score'] = round($val['game_score'] / 2); $data[$key]['game_size'] = empty($val['game_size'])?"0MB":$val['game_size']; if(!is_mobile_request()){ $data[$key]['relation_game_name'] = $val['game_name']; } } if (!empty($data) && is_array($data)) {$status=1;} echo json_encode(array('status'=>$status,'page'=>$p,'data'=>$data)); } }