uid = $uid; $this->events_id = $events_id; $this->objMlottery = new Lottery(); $this->objMLotteryLog = new LotteryLog($uid,$events_id); $this->thisTime = time(); $this->objMLotteryEventsLimitations = new LotteryEventsLimitations(); } /** * 获取当前“转盘”信息 */ public function getEventsData(){ $returnData = $this-> objMlottery -> getOneLotteryEventsAndPrize($this->events_id); $prize = $returnData['prize']; $turntablePrizes = array(); $tNumArr = array(); $tNum = 0; $count_prize = count($returnData['prize']); for($i=0;$i<8;$i++){ $returnData['turntable_prizes'][$tNum] = $tNum; $tNumArr[$tNum] = $tNum ; if( $i>= $count_prize){ array_push($prize, '谢谢参与'); } $tNum = $tNum + 45; } foreach($tNumArr as $tnum => $data){ $key = array_rand($prize); $turntablePrizes[$tnum] = $prize[$key]; unset($prize[$key]); } $returnData['turntable_prizes'] = $turntablePrizes; return $returnData; } /** * 抽奖【动作】 */ public function sweepstakes(){ $eventsData = $this->objMlottery->getOneLotteryEvents($this->events_id); # 活动是否开始 if($this->thisTime < $eventsData['begin_time']){ return ResultWrapper::fail('活动未开始!'); } if ($this->thisTime > $eventsData['end_time']) { return ResultWrapper::fail('活动已结束!'); } # 活动限制 if(!$this->objMLotteryEventsLimitations->ckEventRestrictions($this->uid,Request::ip(), $this->events_id)){ return ResultWrapper::fail('已达到今日活动参与上限!'); } # 记录参与日志 $other = array(); $this->objMLotteryLog ->addLog(DLog::LOG_TYPE_PARTICIPATION, $other); # 记录用户 $this->objMLotteryEventsLimitations->setUserEventNum($this->uid, $this->events_id); // 记录用户参与UID(天) $this->objMLotteryEventsLimitations->setIpEventNum(Request::ip(), $this->events_id);// 记录用户参与IP(天) $this->objMLotteryEventsLimitations->setUserParticipationNum($this->uid, $this->events_id); // 记录用户参与次数 $objMLotteryDraw = new LotteryDraw($this->uid,$this->events_id); $lotteryDataId = $objMLotteryDraw -> verifyPrize(); if(!$lotteryDataId){ #######用户行为记录######## #用户未抽中奖品 $other = array( '奖品:' =>'未抽中' ); $this->objMLotteryLog ->addUserParticipateLog($other); ######################### return ResultWrapper::fail('NoPrize');//没有中奖 } //$lotteryDataId = 1895; # 获奖数据 $data = $this->objMlottery-> getOneLotteryData($lotteryDataId); #######用户行为记录######## #用户抽中奖品 $other = array( '奖品:' => $data['run_time_data']['prize'][$data['prize_id']]['prize_name'] ); $this->objMLotteryLog ->addUserParticipateLog($other); ######################### return ResultWrapper::success($data); } /** * 判断奖品是否需要快递 * 需要用户 填写收货信息 */ public function userExpress($lotteryDataId,$user_name,$phone,$address){ $objDLotteryData = new LotteryData(); $tableInfo = array( 'user_name' => $user_name, 'phone' => $phone, 'address' => $address ); $objDLotteryData -> update($tableInfo, array('id' => $lotteryDataId)); $info = array( 'uid' => $this->uid, 'user_name' => $user_name, 'phone' => $phone, 'address' => $address ); $this->objDLotteryUserExpress -> add($info,AbstractDao::PARAM_CREATE_ACTION_REPLACE); } }