| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791 | <?phpnamespace Cas\Controller\Admin\Activity;use Cas\Module\Lottery;use Cas\Dao\PlatformBulletin;use KIF\Core\Request;use Cas\Dao\LotteryEvents;use Cas\Controller\Admin\Controller;use Cas\Dao\Platform;use Cas\Dao\LotteryDeliveryChannels;use KIF\Core\Config;use Cas\Module\LotteryLog;use KIF\Page\Page;use Cas\Module\User;use KIF\Data\Convert;use Cas\Dao\LotteryData;use Cas\Dao\LotteryPrize;use Cas\Dao\LotteryEventsForms;use KIF\Verify;use Cas\Dao\LotteryUserExpress;use Cas\Dao\LotteryUserParticipateLog;/** * "活动相关" - "互动数据" *  * @author lihuanchun  *           */class UserParticipateLog  extends Controller {	private $objLottery; // 活动后端	private $peratorData;		/**	 *  初始化	 */	public function __construct() {		header ( "Content-Type: text/html; charset=utf-8" );		$this->objLottery = new Lottery ();		$this->operatorData = $this->getUser ();				$this->setOutput('action', Request::g('action'));	}		public function doDefault() {			}		/**	 * 获取当前互动的互动数据	 * 地址:页面: http://cas.lishuy.com/?c=Admin_Activity_UserParticipateLog&a=PageList&events_id=n	 * 参数:events_id 活动ID 必填	 * 参数:groupByUid 是否用户排重 	 * 	 */	public function doPageList() {				$events_id = Request::varGetInt ( 'events_id' );		$groupByUid = Request::g ( 'groupByUid' ); // 用户是否排重		$objMLotteryLog = new LotteryLog ( null, $events_id );		$eventData = $this->objLottery->getOneLotteryEvents ( $events_id );		$this->setOutput ( 'eventData', $eventData );				$page = Request::varGetInt ( 'page', 1 );		$size = 10;		$offset = ($page - 1) * $size;		$limit = "{$offset},{$size}";		$order = ' id desc';		$total_user_num = $objMLotteryLog->getUserParticipateLogNumGroupByUid ();				if ($groupByUid) {			$logData = $objMLotteryLog->findUserParticipateDataGroupByUid ( $limit, $order );			$total_num = $total_user_num;		} else {			$condition = array (					'events_id' => $events_id			);			$logData = $objMLotteryLog->findUserParticipateData ( $condition, $limit, $order );			$total_num = $objMLotteryLog->getUserParticipateLogNum ( $condition );		}		// 分页		$url_tpl = Request::url();		$url_tpl .= "&page={page}";		$objPage = new Page ( $total_num, $url_tpl, $page, $size );		$page_html = $objPage->html ();				$uids = array ();		foreach ( $logData as $key => $data ) {			$uids [$data ['uid']] = $data ['uid'];		}				# 通过UIDs 获取用户信息		$objMUser = new User();		$userData = $objMUser -> gets($uids);				$this->tpl = 'admin/activity/user_participate_log';		$title = '互动数据';		$this->setOutput('title', $title);		$this->setOutput('menu_active', array('name' => 'mypublish', 'item' => '')); //激活菜单		$this->addNavMenu('活动列表');		$this->addNavMenu($title);				// 获取所有活动类型		$typeData = LotteryEvents::getType ();				// 转换格式		if($eventData['type'] == LotteryEvents:: TYPE_EVENTS_SURVEY && $_GET['action'] == 'all'){			$logData =$this->setData($eventData,$logData);		}				$navConfig = $this->getUpPageNav($events_id, 'UserLog');		$eventsDisplayStatus = LotteryEvents::getDisplay (); // [活动] 是否显示				$this->setOutput ( 'eventsDisplayStatus', $eventsDisplayStatus );		$this->setOutput ( 'groupByUid', $groupByUid );		$this->setOutput ( 'navConfig', $navConfig ); //公用内部导航信息		$this->setOutput ( 'page_html', $page_html ); //分页HTML		$this->setOutput ( 'logData', $logData ); // i日志		$this->setOutput ( 'total_user_num', $total_user_num ); // 参与人数		$this->setOutput ( 'userData', $userData ); // 当前列表用户信息		$this->setOutput ( 'eventData', $eventData ); // 当前活动信息		$this->setOutput ( 'typeData', $typeData );		$this->setOutput('displayDesc', LotteryEvents::getDisplay());		$this->setOutput('pagePublicData', $this->getPagePublicData($events_id)); // 后台管理相关数据				$isPrizes = in_array($eventData['type'], array(LotteryEvents::TYPE_EVENTS_TURNTABLE, LotteryEvents::TYPE_EVENTS_SCRATCH, LotteryEvents::TYPE_EVENTS_TRY, LotteryEvents::TYPE_EVENTS_INVITATION));		$this->setOutput('isPrizes', $isPrizes);				if ($groupByUid) {			$download_url = Request::schemeDomain() . "/?c=Admin_Activity_UserParticipateLog&a=ShowUserParticipateLogExportData&groupByUid=true&events_id={$events_id}";		} else {			$download_url = Request::schemeDomain() . "/?c=Admin_Activity_UserParticipateLog&a=ShowUserParticipateLogExportData&events_id={$events_id}";		}		$this->setOutput('download_url', $download_url);	}		/**	 * 事件:更新审核状态	 * 地址:http://cas.lishuy.com/index.php?c=Admin_Category_Index&a=Audit	 * 参数:见方法内	 */	public function doAudit() {		$tableInfo = $_POST;		$events_id = $tableInfo['id'];		$eventData = $this->objLottery->getOneLotteryEvents ( $events_id );		$this->objDLotteryEventsForms = new LotteryEventsForms();// 用户"参与"活动日志		$this->objDLotteryData = new LotteryData();		if (isset($tableInfo['yes']) && $tableInfo['yes']) {			$tableInfo['yes'] = explode(',', $tableInfo['yes']);			foreach ($tableInfo['yes'] as $k => $v) {				$info = array(					'audit' => 2,					'operator_uid' => $operator_uid				);				$this->objDLotteryEventsForms->modify( $info, array (						'id' => $v 				));				# 审核成功后,要把数据加到中奖表中				$this->updateAuditData(2, $events_id, $eventData, $v, 0);			}		}		if (isset($tableInfo['no']) && $tableInfo['no']) {			$tableInfo['no'] = explode(',', $tableInfo['no']);			foreach ($tableInfo['no'] as $k => $v) {				$info = array(					'audit' => 3,					'operator_uid' => $operator_uid				);				$this->objDLotteryEventsForms->modify( $info, array (						'id' => $v 				));				# 审核失败后,要把数据从中奖表中拿出来				$this->updateAuditData(3, $events_id, $eventData, $v, 0);			}		}				$this->ajax_success_exit();	}	private function updateAuditData($audit, $events_id, $eventData, $formId, $prize_id)	{		$form = $this->objDLotteryEventsForms->get($formId);		if ($eventData['type'] == 4) {			# 试用			$img = $eventData['weixinShare']['imgUrl'];			$img = $img ? $img : $eventData['img_url'];			$prize = array(				0 => array(					'events_id' => $events_id,					'prize_name'  =>$eventData['events_name'],					'img_url' => $img,					'type' => LotteryPrize::TYPE_VIRTUAL,				)			);			$virtual_data = "/?c=EventsTry&events_id={$events_id}&formsId=" . $form['id'];		} elseif ($eventData['type'] == 6) {			# 邀请函			$prize = array(				0 => array(					'events_id' => $events_id,					'prize_name'  =>$eventData['events_name'],					'img_url' => '/public/static/img/qricon.png',					'type' => LotteryPrize::TYPE_ENTITY,				)			);			$virtual_data = "/?c=EventsInvitation&a=Qrcode&events_id={$events_id}&formsId=" . $form['id'];		}		$info  = array(				'events_id' => $events_id,				'form_id' => $form['id'],				'prize_id' => $prize_id,				'audit' => $audit,				'uid' => $form['uid'],				'winners_time' => $form['update_time'],				'winning_time' => $form['update_time'],				'run_time_data' => array(					'events' => $eventData,					'prize' => $prize,				),				'virtual_data' => $virtual_data,		);		$dataInfo = $this->objDLotteryData->fetchOne(array		(			'events_id' => $events_id,			'uid' => $info['uid'],			'prize_id' => $prize_id,		));		if (!$dataInfo) {			$this->objDLotteryData -> add($info);		} else {			$this->objDLotteryData -> modify($info, array('id' => $dataInfo['id']));		}	}		/**	 *  显示 用户调查问卷 选择的结果集	 */	public function doShowResultSet(){		$events_id = Request::varGetInt ( 'events_id' );		$objMLotteryLog = new LotteryLog ( null, $events_id );		$condition = array (				'events_id' => $events_id		);		$logData = $objMLotteryLog->findUserParticipateData ( $condition);		$eventData = $this->objLottery->getOneLotteryEvents ( $events_id );		if($eventData['type'] != LotteryEvents:: TYPE_EVENTS_SURVEY){			exit('end');		}		$return_data = array();				$survery_question = $eventData['survery_question'];			foreach($survery_question as $key => $data){						$survery_question[$key]['choice'] = $data['choice']==0?'单选':'多选';			$survery_question[$key]['num'] = 0;			foreach($survery_question[$key]['answer'] as $k =>$d){				$survery_question[$key]['answer'][$k]['num'] = 0;			}		}				$log = array();		foreach($logData as $key =>$data){			$xznr = $data['other']['选择内容:'];			if($xznr){				$wtData = explode('|', $xznr);								foreach($wtData as $key=> $wt){					$survery_question[$key+1]['num'] ++;										if($wt){						$xz = explode(',', $wt);						foreach($xz as $xzkey){							$xzkey = (int)$xzkey;							$survery_question[$key+1]['answer'][$xzkey]['num'] ++ ;						}					}									}			}		}		$mp=	$survery_question[1]['num'];	echo "此次活动共计: {$mp}次 完成问卷<br><br><br>";	foreach( $survery_question as $key=>$data){			echo "问题[{$key}]:".$data['question'].'<br>';			echo "选择类型:[".$data['choice'].']<br>';			echo '选择:<br>';			foreach($data['answer'] as $k => $d){				$hhl=round(($d['num']/$data['num'])*100);				echo "  ({$k}) ;  {$d['answer']};   [  {$hhl} %]<br>";			}			echo '<br><br><br>';	}			}			/**	 * 转换数据格式	 */	public function setData($eventData,$logData){		foreach($logData as $key => $data){			$txt = '';			$tmpLog = $data['other']['选择内容:'] ;							$tmpData  = explode('|', $tmpLog) ;			foreach($tmpData as  $k =>$d){						$txt .= "<br><br>    题目  :".$eventData['survery_question'][$k+1]['question']."<br>用户选择:  ";									$ttdd = explode(',', $d);						foreach($ttdd as $tt){					$tmptt = (int)$tt;					$txt  = $txt .$eventData['survery_question'][$k+1] ['answer'][$tmptt]['answer']." |  ";				}			}			$logData[$key]['other']['tmp'] = $txt;						}					foreach($logData as $key => $data){			if(isset($logData[$key]['other']['tmp'])){				$logData[$key]['other']['选择内容:']  = 	$logData[$key]['other']['tmp']."<br><br>" ;				unset($logData[$key]['other']['tmp']);			}else{				$logData[$key]['other']['选择内容:'] = "用户未选择"."<br><br>" ;			}		}		return $logData;	}				/**	 * 导出:获取用户参与活动日志	 * ?c=Admin_Activity_UserParticipateLog&a=ShowUserParticipateLogExportData&events_id=x	 * ?c=Admin_Activity_UserParticipateLog&a=ShowUserParticipateLogExportData&groupByUid=true&events_id=x	 */	public function doShowUserParticipateLogExportData() {		$events_id = Request::varGetInt ( 'events_id' );		$groupByUid = Request::g ( 'groupByUid' );			$datalist = array ();		$objMLotteryLog = new LotteryLog ( null, $events_id );				$allData = array ();		if ($groupByUid) {			$allData = $objMLotteryLog->findUserParticipateDataGroupByUid (null,null);		} else {			$condition = array (					'events_id' => $events_id			);			$allData = $objMLotteryLog->findUserParticipateData ( $condition,null,null );		}				$uids = array ();		foreach ( $allData as $key => $data ) {			$uids [$data ['uid']] = $data ['uid'];		}							// 转换格式		$eventData = $this->objLottery->getOneLotteryEvents ( $events_id );				/*		if($eventData['type'] == LotteryEvents:: TYPE_EVENTS_SURVEY ){			$allData =$this->setData($eventData,$allData);			foreach($allData as $key => $data){				$allData[$key]['other']['选择内容:'] = str_replace("<br>",",", $allData[$key]['other']['选择内容:']);			}		}		*/						# 通过UIDs 获取用户信息		$objMUser = new User();		$userData = $objMUser -> gets($uids);			$filename = '' . date ( 'YmdHis' ) . '.csv';		header ( "Content-Type: application/vnd.ms-excel; charset=GBK" );		header ( "Pragma: public" );		header ( "Expires: 0" );		header ( 'Content-Disposition: attachment; filename=' . $filename );				$titleTag = '用户ID,昵称,时间,其他' . "\n";			foreach ( $allData as $data ) {			if (isset ( $data ['other'] )) {				$otherStr = '';				foreach ( $data ['other'] as $k => $d ) {					$otherStr = $otherStr . $k . $d;				}				$titleTag .= $data ['uid'] . ',' . $userData [$data ['uid']] ['nickname'] . ',' . date ( 'Y-m-d H:i:s', $data ['create_time'] ) . ',' . $otherStr . "\n";			} else {				$titleTag .= $data ['uid'] . ',' . $userData [$data ['uid']] ['nickname'] . ',' . date ( 'Y-m-d H:i:s', $data ['create_time'] ) . ',空' . "\n";			}		}				$titleTag = Convert::u82gb ( $titleTag );			exit ( $titleTag );	}			/**	 *  页面:[查看中奖详情]  	 *  地址:页面: http://cas.lishuy.com/?c=Admin_Activity_UserParticipateLog&a=PageLotteryDataList&events_id=n	 *  活动ID:events_id	 *  筛选条件[奖品ID]:prize_id 	 *  分页:page	 *  详情:scratch_receive=false	 */	public function doPageLotteryDataList(){				$events_id = Request::g ( 'events_id' );		$scratch_receive = Request::g ( 'scratch_receive' );		$eventsAndPrizeData =$this->objLottery->getOneLotteryEventsAndPrize($events_id);		if($eventsAndPrizeData['events']['type'] == LotteryEvents::TYPE_EVENTS_SCRATCH){				}		// 取数据		$page = Request::varGetInt ( 'page', 1 );		$size = 20;		$offset = ($page - 1) * $size;		$limit = "{$offset},{$size}";		$condition = array (				'events_id' => $events_id,				# 只有审核通过的才显示				'audit' => 2,		);				// 刮刮卡 跳将特殊处理		$pieze_notreceive_num = array();		if($eventsAndPrizeData['events']['type'] == LotteryEvents::TYPE_EVENTS_SCRATCH){							$condition['scratch_receive'] = LotteryData::EVENT_SCRATCH_RECEIVE_TRUE;							foreach($eventsAndPrizeData['prize'] as $prize){				$for_condition = array(						'events_id' => $events_id,						'prize_id' => $prize['id'],						'scratch_receive' => LotteryData::EVENT_SCRATCH_RECEIVE_FALSE				);				$pieze_notreceive_num[$prize['id']] = $this->objLottery->getLotteryDataListNum($for_condition);			}		}				// 筛选条件		$prize_id = Request::g ( 'prize_id' );		if ($prize_id) {			$condition ['prize_id'] = $prize_id;		}				if($scratch_receive=='false'){// 			$condition['scratch_receive'] = LotteryData::EVENT_SCRATCH_RECEIVE_FALSE;		}						$total_num = $this->objLottery->getLotteryDataListNum($condition);		$url_tpl = Request::url();		if($prize_id){			$url_tpl .= "&prize_id={$prize_id}";		}		$url_tpl .= "&page={page}";		// 分页		$objPage = new Page ( $total_num, $url_tpl, $page, $size );		$page_html = $objPage->html ();				$order = 'id desc';		$lotteryData = $this->objLottery->getLotteryDataList ( $condition, $limit, $order );				$uids = array();		foreach ($lotteryData as $tmpItem) {			$uids[] = $tmpItem['uid'];		}				# 通过UIDs 获取用户信息		$objMUser = new User();		$users = $objMUser -> gets($uids);				# 获取用户收货地址		$objLotteryUserExpress = new LotteryUserExpress();		$condition = array(			'uid' => $uids		);		$tmpUserExpIds = $objLotteryUserExpress->findIdsBy($condition);		$userExpData = $objLotteryUserExpress -> gets($tmpUserExpIds);		$newUserExpData = array();		foreach($userExpData as $key => $data){			$newUserExpData[$data['uid']] = $data;		}				$objLotteryEventsForms = new LotteryEventsForms();		$formCondition = array(			'events_id' => $events_id,		);		$ids = $objLotteryEventsForms->fetchOne($formCondition);		if ($ids) {			$formData = $objLotteryEventsForms->gets($ids);			if ($formData) {				foreach ($formData as $k => $v) {					$formUserData[$v['uid']] = $v;				}				# 表单类型数据				$formType = array();				foreach ($eventsAndPrizeData['events']['forms'] as $tmpForms) {					$formType[] = $tmpForms['name'];				}				$this->setOutput ( 'formType', $formType );				$this->setOutput ( 'formUserData', $formUserData );			}		}		$objDLotteryPrize = new LotteryPrize();		$prizeType  = $objDLotteryPrize -> getType();		$prizeDisplayStatus  = $objDLotteryPrize ->getDisplay();				$this->tpl = 'admin/activity/user_participate_win';		$title = '互动数据';		$this->setOutput('title', $title);		$this->setOutput('menu_active', array('name' => 'mypublish', 'item' => '')); //激活菜单		$this->addNavMenu('活动列表');		$this->addNavMenu($title);				$this->setOutput ( 'newUserExpData', $newUserExpData );		$this->setOutput ( 'page_html', $page_html );		$this->setOutput ( 'eventData', $eventsAndPrizeData['events'] );		$this->setOutput ( 'prizeData', $eventsAndPrizeData['prize'] );		$this->setOutput ( 'pieze_notreceive_num', $pieze_notreceive_num );		$this->setOutput ( 'prizeType', $prizeType );		$this->setOutput ( 'lotteryData', $lotteryData );		$this->setOutput('userData', $users);				$navConfig = $this->getUpPageNav($events_id, 'UserLog');		$this->setOutput ( 'navConfig', $navConfig );		$typeData = LotteryEvents::getType ();		$this->setOutput ( 'typeData', $typeData );		$this->setOutput('displayDesc', LotteryEvents::getDisplay());		$this->setOutput('pagePublicData', $this->getPagePublicData($events_id)); // 后台管理相关数据		$this->setOutput('total_num', $total_num);				$download_url = Request::schemeDomain() . "/?c=Admin_Activity_UserParticipateLog&a=ExportWinData&events_id={$events_id}";		$this->setOutput('download_url', $download_url);	}		public function doExportWinData() {		$events_id = Request::g ( 'events_id' );		$condition = array (				'events_id' => $events_id,				# 只有审核通过的才显示				'audit' => 2,		);		$order = 'id desc';		$lotteryData = $this->objLottery->getLotteryDataList ( $condition, null, $order );				$uids = array();		foreach ($lotteryData as $tmpItem) {			$uids[] = $tmpItem['uid'];		}				$eventsAndPrizeData =$this->objLottery->getOneLotteryEventsAndPrize($events_id);		$prizeData = $eventsAndPrizeData['prize'];				# 通过UIDs 获取用户信息		$objMUser = new User();		$users = $objMUser -> gets($uids);		# 获取用户收货地址		$objLotteryUserExpress = new LotteryUserExpress();		$condition = array(			'uid' => $uids		);		$tmpUserExpIds = $objLotteryUserExpress->findIdsBy($condition);		$userExpData = $objLotteryUserExpress -> gets($tmpUserExpIds);		$newUserExpData = array();		foreach($userExpData as $key => $data){			$newUserExpData[$data['uid']] = $data;		}							############发送头部信息############				$fileName = date('YmdHis',time()) .".csv"; # 文件名		$fileName = Convert::u82gb($fileName);		header ( "Content-Type: application/vnd.ms-excel; charset=GBK" );		header ( "Pragma: public" );		header ( "Expires: 0" );		header ( 'Content-Disposition: attachment; filename=' . $fileName );						$title = "用户ID,昵称,时间,行为,用户收货信息\r\n";		echo Convert::u82gb($title);				foreach ($lotteryData as $tmpData) {			$uid = $tmpData['uid'];			$date = date('Y-m-d H:i:s', $tmpData['create_time']);			$otherInfo = "获得奖品:{$prizeData[$tmpData['prize_id']]['prize_name']} ";			if(isset($newUserExpData[$uid]['user_name'])){				$info = "{$uid},{$users[$uid]['nickname']},{$date},{$otherInfo},姓名:{$newUserExpData[$uid]['user_name']}  地址:{$newUserExpData[$uid]['address']}  电话:{$newUserExpData[$uid]['phone']}\r\n";			}else{				$info = "{$uid},{$users[$uid]['nickname']},{$date},{$otherInfo},未填写\r\n";			}						echo Convert::u82gb($info);		}						exit;	}			/**	 * 页面: [表单数据]	 * 地址:http://cas.lishuy.com/?c=Admin_Activity_UserParticipateLog&a=PageEventFormData&events_id=n	 * 活动ID:events_id	 * 分页:page	 */	public function doPageEventFormData(){		$events_id = Request::varGetInt ( 'events_id');		if (!Verify::unsignedInt($events_id)) {			self::fail_exit_bs('无效events_id');		}			$page = Request::varGetInt ( 'page', 1 );		$size = 10;		$offset = ($page - 1) * $size;		$limit = "{$offset},{$size}";		$condition = array (				'events_id' => $events_id		);			$objLotteryEventsForms = new LotteryEventsForms();		$ids = $objLotteryEventsForms->findIdsBy($condition,$limit,'id desc');		$formData = $objLotteryEventsForms->gets($ids);				$uids = array();		foreach ($formData as $tmpItem) {			$uids[] = $tmpItem['uid'];		}			$objLotteryEvents = new LotteryEvents();		$eventData = $objLotteryEvents->get($events_id);		# 审核状态只有在邀请函和试用才有,type=6&4		$audit = false;		if (in_array($eventData['type'], array(4,6))) {			$audit = true;		}		$this->setOutput ( 'audit', $audit );			# 表单类型数据		$formType = array();		foreach ($eventData['forms'] as $tmpForms) {			$formType[] = $tmpForms['name'];		}			# 分页		$total_num = $objLotteryEventsForms->totals($condition);		$url_tpl = Request::url();		$url_tpl .= "&page={page}";		$objPage = new Page ( $total_num, $url_tpl, $page, $size );		$page_html = $objPage->html ();				# 通过UIDs 获取用户信息		$objMUser = new User();		$users = $objMUser -> gets($uids);		$this->tpl = 'admin/activity/user_participate_form';		$title = '互动数据';		$this->setOutput('title', $title);		$this->setOutput('menu_active', array('name' => 'mypublish', 'item' => '')); //激活菜单		$this->addNavMenu('活动列表');		$this->addNavMenu($title);		$isPrizes = in_array($eventData['type'], array(LotteryEvents::TYPE_EVENTS_TURNTABLE, LotteryEvents::TYPE_EVENTS_SCRATCH, LotteryEvents::TYPE_EVENTS_TRY, LotteryEvents::TYPE_EVENTS_INVITATION));		$this->setOutput('isPrizes', $isPrizes);				$this->setOutput('eventData', $eventData);		$this->setOutput ( 'page_html', $page_html );		$this->setOutput ( 'formData', $formData );		$this->setOutput('formType', $formType);		$this->setOutput('userData', $users);				$navConfig = $this->getUpPageNav($events_id, 'UserLog');		$this->setOutput ( 'navConfig', $navConfig );		$typeData = LotteryEvents::getType ();		$this->setOutput ( 'typeData', $typeData );		$this->setOutput('displayDesc', LotteryEvents::getDisplay());		$this->setOutput('pagePublicData', $this->getPagePublicData($events_id)); // 后台管理相关数据		$this->setOutput('total_num', $total_num);		$download_url = Request::schemeDomain() . "/?c=Admin_Activity_UserParticipateLog&a=ExportFormData&events_id={$events_id}";		$this->setOutput('download_url', $download_url);	}		public function doExportFormData() {		$events_id = Request::varGetInt ( 'events_id');		if (!Verify::unsignedInt($events_id)) {			self::fail_exit_bs('无效events_id');		}				$condition = array (			'events_id' => $events_id		);				$objLotteryEventsForms = new LotteryEventsForms();		$ids = $objLotteryEventsForms->findIdsBy($condition,null,'id desc');		$formData = $objLotteryEventsForms->gets($ids);				$uids = array();		foreach ($formData as $tmpItem) {			$uids[] = $tmpItem['uid'];		}				$objLotteryEvents = new LotteryEvents();		$eventData = $objLotteryEvents->get($events_id);				# 表单类型数据		$formType = array();		foreach ($eventData['forms'] as $tmpForms) {			$formType[] = $tmpForms['name'];		}				# 通过UIDs 获取用户信息		$objMUser = new User();		$users = $objMUser -> gets($uids);				############发送头部信息############		$fileName = date('YmdHis',time()) .".csv"; # 文件名		$fileName = Convert::u82gb($fileName);		header ( "Content-Type: application/vnd.ms-excel; charset=GBK" );		header ( "Pragma: public" );		header ( "Expires: 0" );		header ( 'Content-Disposition: attachment; filename=' . $fileName );				# 审核状态只有在邀请函和试用才有,type=6&4		$audit = false;		if (in_array($eventData['type'], array(4,6))) {			$audit = true;		}		$this->setOutput ( 'audit', $audit );		$title = "用户ID,昵称,时间,行为\r\n";		if ($audit) {			$title = "用户ID,昵称,时间,行为,审核状态\r\n";		}		echo Convert::u82gb($title);				foreach ($formData as $tmpData) {			$uid = $tmpData['uid'];			$date = date('Y-m-d H:i:s', $tmpData['create_time']);			$formInfo = '';			foreach ($formType as $formName) {				$formInfo = "{$formName}:{$tmpData[$formName]} ";			}			$info = "{$uid},{$users[$uid]['nickname']},{$date},{$formInfo}\r\n";			if ($audit) {				$status = $tmpData['audit'];				if ($status == 1) {					$status = '未审核';				} elseif ($status == 2) {					$status = '审核通过';				} elseif ($status == 3) {					$status = '审核未通过';				}				$info = "{$uid},{$users[$uid]['nickname']},{$date},{$formInfo},{$status}\r\n";			}			echo Convert::u82gb($info);		}		exit;	}			public function display() {		return $this->render ();	}}	
 |