{$time} or end_time = 0"; if(is_cache() &&S('mobile_gift_data') &&I('name')=='' ){ $data=S('mobile_gift_data'); }else{ $table = D('Giftbag') ->field("tab_giftbag.id,tab_giftbag.game_id,tab_giftbag.desribe,tab_giftbag.game_name,tab_giftbag.giftbag_name,g.icon,g.relation_game_name") ->join("left join tab_game g on g.id = tab_giftbag.game_id and g.game_status = 1 and g.display_site like '%" . DISPLAY_SITE . "%' ") ->where($map) ->order('tab_giftbag.create_time desc') ->select(false); $data = D('Giftbag')->table('('.$table.') as a' )->field('count(a.id) as num,a.desribe,a.game_name,a.giftbag_name,a.icon,a.relation_game_name,a.game_id')->group('a.game_id')->page($page,$row)->select(); foreach ($data as $key => $val){ $data[$key]['icon'] = get_cover($val['icon'],'path'); if(!is_mobile_request()){ $data[$key]['relation_game_name'] = $val['game_name']; } } if(is_cache()&&I('name')=='' ){ S('mobile_gift_data',$data); } } $this->assign('data',$data); $this->assign('page',$page); $this->assign('category',array('title'=>'礼包')); $this->display(); } public function gamegift(){ $game_id = I('get.id'); $page = intval($_REQUEST['p']); $page = $page ? $page : 1; //默认显示第一页数据 $row = C('LIST_ROWS'); $map['status'] = 1; $map['g.game_status'] = 1; $map['g.display_site'] = ['like','%'. DISPLAY_SITE .'%']; $time = NOW_TIME; $map['game_id'] = $game_id; //$map['start_time'] = ['elt',$time]; $map['_string'] = "end_time > {$time} or end_time = 0"; if(is_mobile_request()){ $map['giftbag_version'] = get_devices_type(); } $map['novice'] = array('neq',''); $data = D('Giftbag') ->field("tab_giftbag.*,g.icon,g.relation_game_name") ->join("left join tab_game g on g.id = tab_giftbag.game_id ") ->where($map) ->order('create_time desc') ->page($page,$row) ->select(); if (empty($data) || !is_array($data)) {$this->error('此礼包不存在!!');} foreach ($data as $key => $val){ $novice_arr = str2arr($val['novice'],','); $novice_num = count(array_filter($novice_arr)); $data[$key]['novice_num'] = $novice_num;$member = new SuserApi; $exist = D("Giftbag")->checkAccountGiftExist($member->login_info("user_id"),$val['id']); if(empty($exist)){ $exist = 1;//未领取 }else{ $data[$key]['get_novice'] = $exist['novice']; $exist = 0;//已领取 } if($novice_num == 0){ $exist = 2;//激活码已领取完 } $data[$key]['exist'] = $exist; $data[$key]['icon'] = get_cover($val['icon'],'path'); $data[$key]['novice_num'] = $novice_num; } $this->assign('data',$data); $this->assign('game_id',$game_id); $this->assign('page',$page); if(!is_mobile_request()){ $this->assign('mate_title',"《{$data[0]['game_name']}》礼包"); }else{ $this->assign('mate_title',"《{$data[0]['relation_game_name']}》礼包"); } $this->display(); } public function ajaxlists() { $p = I('post.p'); $devices = get_devices_type(); $status=0; $row = C('LIST_ROWS'); $map['status'] = 1; $map['g.sdk_version'] = array('like','%'.$devices.'%'); $time = NOW_TIME; $map['novice'] = array('neq',''); //$map['start_time'] = ['elt',$time]; $map['_string'] = "end_time > {$time} or end_time = 0"; $lists = D('Giftbag') ->field("count(tab_giftbag.id) as num,tab_giftbag.game_id,tab_giftbag.desribe,tab_giftbag.game_name,tab_giftbag.giftbag_name,g.icon,g.relation_game_name") ->join("left join tab_game g on g.id = tab_giftbag.game_id and g.game_status=1 and g.display_site like '%". DISPLAY_SITE ."%' ") ->where($map) ->page($p,$row) ->group("game_id") ->select(); foreach ($lists as $key => $val){ $lists[$key]['url'] = U('Gift/gamegift?id='.$val['game_id']); $lists[$key]['icon'] = get_cover($val['icon'],'path'); if(!is_mobile_request()){ $lists[$key]['relation_game_name'] = $val['game_name']; } } if (!empty($lists) && is_array($lists)) { $status = 1; } echo json_encode(array('status'=>$status,'page'=>$p,'lists'=>$lists)); } public function ajaxgift() { $p = I('post.p'); $game_id = I('post.id'); $status=0; $row = C('LIST_ROWS'); $map['status'] = 1; $time = NOW_TIME; $map['game_id'] = $game_id; $map['novice'] = array('neq',''); //$map['start_time'] = ['elt',$time]; $map['_string'] = "end_time > {$time} or end_time = 0"; $lists = D('Giftbag') ->field("tab_giftbag.*,g.icon,g.relation_game_name") ->join("left join tab_game g on g.id = tab_giftbag.game_id and g.game_status=1 and g.display_site like '%". DISPLAY_SITE ."%' ") ->where($map) ->page($p,$row) ->select(); foreach ($lists as $key => $val){ $novice_arr = str2arr($val['novice'],','); $novice_num = count(array_filter($novice_arr)); $lists[$key]['novice_num'] = $novice_num;$member = new SuserApi; $exist = D("Giftbag")->checkAccountGiftExist($member->login_info("user_id"),$val['id']); if(empty($exist)){ $exist = 1;//未领取 }else{ $exist = 0;//已领取 } if($novice_num == 0){ $exist = 2;//激活码已领取完 } $lists[$key]['exist'] = $exist; $lists[$key]['url'] = U('Gift/detail?id='.$val['id']); $lists[$key]['icon'] = get_cover($val['icon'],'path'); if(is_mobile_request()){ $lists[$key]['game_name'] = "《{$val['relation_game_name']}》".$val['giftbag_name']; }else{ $lists[$key]['game_name'] = "《{$val['game_name']}》".$val['giftbag_name']; } } if (!empty($lists) && is_array($lists)) { $status = 1; } echo json_encode(array('status'=>$status,'page'=>$p,'lists'=>$lists)); } public function detail($id) { $id = I('get.id'); $map['tab_giftbag.id'] = $id; $record = M('gift_record','tab_')->field('id')->where(['user_id'=>UID,'gift_id'=>$id])->find(); !empty($record) || $map['g.display_site'] = ['like','%'. DISPLAY_SITE .'%']; $data = D('Giftbag') ->field("tab_giftbag.*,g.icon,g.relation_game_name") ->join("left join tab_game g on g.id = tab_giftbag.game_id and g.game_status = 1 ") ->where($map) ->find(); if (empty($data) || !is_array($data)) {$this->error('此礼包不存在!!');} $novice_arr = str2arr($data['novice'],','); $novice_num = count(array_filter($novice_arr)); unset($data['novice']); $data['novice_num'] = $novice_num; $data['icon'] = get_cover($data['icon'],'path'); $data['end'] = $data['end_time']==0 ? '永久' : date('Y-m-d');$member = new SuserApi; $exist = D("Giftbag")->checkAccountGiftExist($member->login_info("user_id"),$id); if(empty($exist)){ $exist = 1;//未领取 }else{ $data['get_novice'] = $exist['novice']; $exist = 0;//已领取 } if($novice_num == 0){ $exist = 2;//激活码已领取完 } $this->assign('exist',$exist); if(is_mobile_request()){ $this->assign('mate_title',"《{$data['relation_game_name']}》{$data['giftbag_name']}"); }else{ $this->assign('mate_title',"《{$data['game_name']}》{$data['giftbag_name']}"); } $this->assign('data',$data); $this->display(); } /** * 领取激活码 * @param $token * @param $gift_id * author: xmy 280564871@qq.com */ public function get_novice($gift_id){ if(!$this->islogin()){$this->error('请先登录','Mobile/User/login');}$member = new SuserApi; $logininfo = $member->login_info(); $model = D("Giftbag"); $exist = $model->checkAccountGiftExist($logininfo['user_id'],$gift_id); if($exist){ $this->error("您已经领取过该礼包!"); } $novice = $model->getNovice($logininfo['user_id'],$logininfo['account'],$gift_id); if(empty($novice)){ $this->error("暂无激活码"); } $this->success("领取成功",$novice); } public function getTFGiftbags() { $game_id = I('post.game_id'); $status = 0; $row = C('LIST_ROWS'); $map['status'] = 1; $time = NOW_TIME; $map['game_id'] = $game_id; $map['giftbag_version'] = 4; $map['novice'] = array('neq',''); //$map['start_time'] = ['elt',$time]; $map['_string'] = "end_time > {$time} or end_time = 0"; $lists = D('Giftbag') ->field("tab_giftbag.*,g.icon,g.relation_game_name") ->join("left join tab_game g on g.id = tab_giftbag.game_id and g.game_status=1 and g.display_site like '%". DISPLAY_SITE ."%' ") ->where($map) ->select(); $existRecords = []; if (count($lists) > 0 && $this->islogin()) { $member = new SuserApi; $logininfo = $member->login_info(); $conditions = []; $conditions['user_id'] = $logininfo['user_id']; $conditions['gift_id'] = ['in', array_column($lists, 'id')]; $existRecords = M("gift_record",'tab_')->field(['id', 'gift_id', 'novice'])->where($conditions)->select(); $existRecords = index_by_column('gift_id', $existRecords); } $records = []; foreach ($lists as $key => $val){ $novices = str2arr($val['novice'],','); $noviceNum = count(array_filter($novices)); $novice = ''; if (isset($existRecords[$val['id']])) { $getStatus = 1; $novice = $existRecords[$val['id']]['novice']; } else { $getStatus = 0; } $records[$key]['id'] = $val['id']; $records[$key]['desribe'] = $val['desribe']; $records[$key]['giftbag_name'] = $val['giftbag_name']; $records[$key]['digest'] = $val['digest']; $records[$key]['get_status'] = $getStatus; $records[$key]['novice'] = $novice; $records[$key]['novice_num'] = $noviceNum; $records[$key]['game_icon'] = get_cover($val['icon'],'path'); $records[$key]['game_name'] = $val['giftbag_name']; $records[$key]['useful_date'] = set_show_time($val['start_time'],'date') . ' 至 '. set_show_time($val['end_time'],'date','forever'); } echo json_encode(['status' => true, 'message' => '获取成功', 'data' => ['records' => $records]]); } public function getNovice($gift_id){ if(!$this->islogin()) { echo json_encode(['status' => false, 'code' => '1001', 'message' => '请先登录']); exit(); } $giftId = I('post.gift_id'); $member = new SuserApi; $logininfo = $member->login_info(); $model = D("Giftbag"); $exist = $model->checkAccountGiftExist($logininfo['user_id'], $giftId); if($exist){ echo json_encode(['status' => false, 'code' => '1000', 'message' => '您已经领取过该礼包!']); exit(); } $novice = $model->getNovice($logininfo['user_id'], $logininfo['account'], $giftId); if(empty($novice)){ echo json_encode(['status' => false, 'code' => '1000', 'message' => '暂无激活码']); exit(); } echo json_encode(['status' => true, 'code' => '0000', 'message' => '领取成功', 'data' => ['novice' => $novice]]); exit(); } }