getEventsCreateTimeToId(); if (!Verify::unsignedInt($events_id)) { self::fail_exit('无效id'); } # 获取用户信息 $objUserData = new UserInfo(); $uid = $this->getRunTimeUid(); $userData = $objUserData -> get($uid); $this->setOutput('userData', $userData); # 获取当前活动的信息 & 字母 & 奖项 $objMLotteryEventsTypeLetters = new LotteryEventsTypeLetters($uid,$events_id); $lettersData = $objMLotteryEventsTypeLetters -> getEventsData(); # 获取登录地址 $url = Request::g('url'); $plat_form_id = $this->getPlatFormId(); $objMLottery = new Lottery(); $thisUrl = $objMLottery -> getEventsUrl($lettersData['type'],$lettersData['create_time'],$url); $loginUrl = $this -> getLoginUrl($thisUrl); $this->setOutput('loginUrl', $loginUrl); # 判断是否需要登录 $ckLogin = $this->ckLogin(); $this->setOutput('ckLogin', $ckLogin); # 获取用户当前收集的字母列表 $userLettersData = $objMLotteryEventsTypeLetters -> getUserLetters(); foreach($lettersData['letters'] as $key => $data ){ if(isset($userLettersData['ABC_data'][$key])){ $lettersData['letters'][$key]['thisUser'] = true; } } # 检查当前活动是否需要登录 $authorize = $lettersData['events']['authorize']; if ($authorize && $loginUrl) { if($ckLogin==true){ self::redirect($loginUrl); } } $objMLotteryEventsLimitations = new LotteryEventsLimitations(); # 活动状态 $TIME = time(); $eventsStatus = false; if($TIME < $lettersData['events']['begin_time'] ){ $eventsStatus = 'STATUS_NOT_START'; } elseif ($TIME > $lettersData['events']['end_time']){ $eventsStatus = 'STATUS_HAS_END'; } elseif ($lettersData['events']['display'] == \Cas\Dao\LotteryEvents::EVENT_DISPLAY_HIDE) { //$eventsStatus = 'STATUS_HIDE'; //先注释了。此隐藏 之印象列表 }elseif (!$objMLotteryEventsLimitations->ckEventRestrictions($uid,Request::ip(), $events_id)) { $eventsStatus = 'STATUS_HAS_RESTRTICTIONS'; }elseif (count($userLettersData['ABC_data'])==count($lettersData['letters'])) { $eventsStatus = 'STATUS_HAS_COMPLETE'; } # 获取其他开始的活动 $objDLottery = new Lottery(); $condition = array( 'display' => LotteryEvents::EVENT_DISPLAY_SHOW, 'id' => SqlHelper::addCompareOperator('!=', $events_id), 'begin_time' => SqlHelper::addCompareOperator('<', $TIME), 'end_time' => SqlHelper::addCompareOperator('>', $TIME) ); $otherEventsData = $objDLottery -> getLotteryEventsList($condition, 3, 'id desc'); # 获取用户最新收货地址 $objDLotteryUserExpress = new LotteryUserExpress(); $userExpress = $objDLotteryUserExpress -> getUserExpress($uid); # 页面ABC Json 增加出现位置 $i = 1; foreach ($lettersData['letters'] as $key =>$data){ $data['occurrence'] = $i; $lettersData['letters'][$key] = $data; $i++; } $ABCJsonData = json_encode($lettersData['letters']); # 记录PV UV日志 访问 $objCount = new Count(); $objCount->setPassLog( $events_id,$plat_form_id); # 页面数据 $this->tpl = 'events_letters'; $this->setOutput('display', $lettersData['events']['list_display']); $this->setOutput('title', $lettersData['events']['weixinShare']['title'] ? $lettersData['events']['weixinShare']['title'] : $lettersData['events']['events_name']); $this->setOutput('ABCJsonData', $ABCJsonData); $this->setOutput('eventsStatus', $eventsStatus); $this->setOutput('lettersData', $lettersData); $this->setOutput('userLettersData', $userLettersData); $this->setOutput('otherEventsData', $otherEventsData); $this->setOutput('userExpress', $userExpress); $this->setOutput('weixinShare', $lettersData['events']['weixinShare']); } /** * 事件:ajax 收集动作 */ public function doSweepstakes() { # 获取转盘信息 $events_id = Request::g('events_id'); if (!Verify::unsignedInt($events_id)) { self::fail_exit('无效id'); } $uid = $this->getRunTimeUid(); # 获取数据 $objLotteryEventsTypeLetters = new LotteryEventsTypeLetters($uid,$events_id); $lettersData = $objLotteryEventsTypeLetters -> getEventsData(); # 检查当前活动是否需要登录 & 获取登录地址 $plat_form_id = $this->getPlatFormId(); $objPlatForm = new Platform(); $form = $objPlatForm -> get($plat_form_id); //$thisUrl = Request::schemeDomain().'/EventsLetters/T'.$plat_form_id.'/E'.$events_id; $thisUrl = Request::schemeDomain().'/'.$form['url'].'/EventsLetters/'.$lettersData['events']['create_time']; $loginUrl = $this -> getLoginUrl($thisUrl); $authorize = $lettersData['events']['authorize']; if ($authorize && $loginUrl) { $ckLogin = $this->ckLogin(); if($ckLogin==true){ self::ajax_fail_exit(array('url' =>$loginUrl)); } } # 前端渲染的字母 $user_letters = array(); $userLettersData = $objLotteryEventsTypeLetters -> getUserLetters(); if($userLettersData){ $user_letters = $userLettersData['ABC_data']; } # 开始抽字母 & 奖项 $tmpLotteryData = $objLotteryEventsTypeLetters ->sweepstakes(); if(!$tmpLotteryData -> isSuccess()){ # 失败:返回页面所需要的成功数据 $data = $tmpLotteryData->getData(); if(is_array($data)){ $data['user_letters'] = $user_letters; } self::ajax_fail_exit($data); } # 成功:返回页面所需要的成功数据 $data = $tmpLotteryData->getData(); if(isset($data['lotteryData'])){ $prize_id = $data['lotteryData']['prize_id']; $thisPrizeData = array(); $thisPrizeData['prize_name'] = $data['lotteryData']['run_time_data']['prize'][$prize_id]['prize_name']; $thisPrizeData['id'] = $prize_id; $thisPrizeData['lottery_data_id'] = $data['lotteryData']['id']; $thisPrizeData['express'] = $data['lotteryData']['run_time_data']['prize'][$prize_id]['express']; $thisPrizeData['img_url'] = $data['lotteryData']['run_time_data']['prize'][$prize_id]['img_url']; $thisPrizeData['express'] = $data['lotteryData']['run_time_data']['prize'][$prize_id]['express']; $thisPrizeData['type'] = $data['lotteryData']['run_time_data']['prize'][$prize_id]['type']; $thisPrizeData['virtual_data'] = isset($data['lotteryData']['virtual_data'])?$data['lotteryData']['virtual_data']:''; $data['lotteryData'] = $thisPrizeData; } $user_letters[$data['lottery_id']] = $data['lottery_id']; $data['user_letters'] = $user_letters; self::ajax_success_exit($data); } public function display() { return $this->render(); } }