public function actionSaveinfo()
	{
		if(isset($_POST['term']))
		{
			//检查参数
			$arr = $this->ajaxCheckParm();
			$code = $arr['route'];
			$orderModel = $this->getOrderByRandCode($code);
			
			if($orderModel->updatetime != 0){
				echo json_encode($arr);
				exit;
			}
			
			
			$now =time();
			//防止重复提交,五秒内只能提交一次
			if(isset(Yii::app()->session['submitrepeat'])&&Yii::app()->session['submitrepeat']>($now-7)){
				$arr['statuCode'] = 302;
				$arr['msg'] = '五秒内,请不要重复提交!';
				echo json_encode($arr);
				exit;
			}else{
				Yii::app()->session['submitrepeat'] = $now;
			}
			
			//验证表单项是否为空
			$verflag = false;
			foreach($_POST['Contacter'] as $key=>$value){
				switch($key)
				{
					case 'name':
						empty($value)&&($verflag = true)?$arr['msg'] = '请填写您的姓!':'';break;
					case 'first':
						empty($value)&&($verflag = true)?$arr['msg'] = '请填写您的名!':'';break;
					case 'moblie':
						empty($value)&&($verflag = true)?$arr['msg'] = '请填写您的手机号码!':'';break;
					case 'email':
						empty($value)&&($verflag = true)?$arr['msg'] = '请填写您的邮箱!':'';break;
					case 'addr':
						empty($value)&&($verflag = true)?$arr['msg'] = '请填写您的地址!':'';break;
				}
			}
			
			if($verflag){
				echo json_encode($arr);
				exit;
			}
			$mid = 0;//Yii::app()->session['myuserid'];判断是否登录//会员ID
			if(isset(Yii::app()->session['myuserid'])){
				$mid = Yii::app()->session['myuserid'];
			}
			//存储联系人
			//过滤参数
			foreach($_POST['Contacter'] as $key=>$value){
				$_POST['Contacter'][$key] = strip_tags($value);
			}
			//判断是否存在该会员关联的联系人,如果存在则跟新,不存在则添加
			$CModel = Contacter::model()->find(array('condition'=>"mid=$mid and mid<>0"));
			if($CModel == null){//未登录
				$CModel = new Contacter;
				//自动注册,添加email,fullname,first,gender,tel,address到会员表
				$registerModel = new Member;
				$registerModel->email = strip_tags($_POST['Contacter']['email']);
				$registerModel->password = md5('123456');
				$registerModel->fullname = strip_tags($_POST['Contacter']['name']);
				$registerModel->first = strip_tags($_POST['Contacter']['first']);
				$registerModel->gender = intval($_POST['Contacter']['gender']);
				$registerModel->tel = intval($_POST['Contacter']['moblie']);
				$registerModel->address = strip_tags($_POST['Contacter']['addr']);
				$registerModel->createtime = $now;
				$registerModel->updatetime = $now;
				$registerModel->flag = 1;
				if($registerModel->save(false)){
					//注册成功,自动登录
					$CModel->mid = $registerModel->id;
					$loginModel = new LoginForm;
					$loginModel->username = $registerModel->email;
					$loginModel->password = '******';
					$loginModel->login();//登录
				}else{
					$CModel->mid = $mid;
				}
			}
			$CModel->name = strip_tags($_POST['Contacter']['name']);
			$CModel->first = strip_tags($_POST['Contacter']['first']);
			$CModel->gender = intval($_POST['Contacter']['gender']);
			$CModel->moblie = strip_tags($_POST['Contacter']['moblie']);
			$CModel->phone = strip_tags($_POST['Contacter']['phone']);
			$CModel->email = strip_tags($_POST['Contacter']['email']);
			$CModel->wechat = strip_tags($_POST['Contacter']['wechat']);
			$CModel->qq = strip_tags($_POST['Contacter']['qq']);
			/* $CModel->whatup = strip_tags($_POST['Contacter']['whatup']); */
			$CModel->addr = strip_tags($_POST['Contacter']['addr']);
			$CModel->createtime = $now;
			if(!$CModel->save(false))
			{
				$arr['statuCode'] = 302;
				$arr['msg'] = '请正确提交表单信息!';
			}else{
				$cid = $CModel->id;//联系人ID
				//将信息添加到订单表
				//$travelModel = Travel::model()->findByPk($tid);

				$orderModel->mid = $mid;
				$orderModel->cid = $cid;//联系人表 contracter 自增ID
				$orderModel->donate = $this->getDonatePrice('donate'.$orderModel->id);
				$orderModel->additionmesg = strip_tags($_POST['addimsg']);
				$orderModel->howway = $_POST['callme'] == 1?strip_tags($_POST['otherway']):strip_tags($_POST['callme']);
				$orderModel->updatetime = $now;

				if(!$orderModel->save(false)){
					$arr['statuCode'] = 302;
					$arr['msg'] = '提交订单不成功,请重试!---订单保存不成功';
				}else{
					$oid = $orderModel->id;
					
					for($i=0;$i<count($_POST['name']);$i++){
						$clientModel = new Client;
						$clientModel->oid = $oid;
						$clientModel->name = strip_tags($_POST['name'][$i]);
						$clientModel->first = strip_tags($_POST['first'][$i]);
						$clientModel->gender = strip_tags($_POST['gender'][$i]);
						$clientModel->national = strip_tags($_POST['national'][$i]);
						$clientModel->dob = strtotime($_POST['dob'][$i]);
						$clientModel->passpost = strip_tags($_POST['passpost'][$i]);
						/* $clientModel->expiration = strtotime($_POST['expiration'][$i]); */
						$clientModel->createtime = $now;
						$clientModel->save();
					}
					
					$additoninfo = $this->additionList($orderModel->tid);
					$addsToken = 'adds'.$orderModel->id;
					$addArr = $this->checkAdditionsStep($addsToken);
					if(empty($addArr)){
						$addArr[1] = array();
					}
					foreach($addArr[1] as $key=>$value){
						if($value > 0){
							$OAModel = new OrderAdditional;
							$OAModel->oid = $oid;
							$aid = $addArr[0][$key];
							$OAModel->name = $additoninfo[$aid]['name'];
							$OAModel->num = $value;
							$OAModel->price = $additoninfo[$aid]['price'];
							$OAModel->createtime = $now;
							$OAModel->save();
						}
					}
					
					//存储保险信息
					$insToken = 'ins'.$orderModel->id;
					$insurancesid = $this->getInsuranceId($insToken);
					if($insurancesid!=0){
						$insuranceArr = $this->getNowInsurance($insurancesid);
						$insModel = new OrderInsurance;
						$insModel->oid = $oid;
						$insModel->name = $insuranceArr['name'];
						$insModel->price = $insuranceArr['price'];
						$insModel->save(false);
					}
					
					//将房间信息存储到订单相应下的房间表中
					$token = 'order'.$orderModel->id;
					$roomArr = $this->checkOrderRoomStep($token);
					$roPriceArr = $this->getHousePrice();
					foreach($roomArr['type'] as $ke=>$val){
						$rModel = new OrderRoom;
						$rModel->oid = $oid;
						$rModel->aduit = $roomArr['aduit'][$ke];
						$rModel->child = $roomArr['child'][$ke];
						$rModel->type = $this->getHouseName($val);
						$arprice = ($roPriceArr[$val][0]) * ($roomArr['aduit'][$ke]);
						$crprice = ($roPriceArr[$val][1]) * ($roomArr['child'][$ke]);
						$rModel->price = $arprice + $crprice;
						$rModel->save(false);
					}
					
					//发送邮件给客户
					if(isset(Yii::app()->session['mysueremail'])){
						$useremail = Yii::app()->session['mysueremail'];
						/* $username = Yii::app()->user->name; */
					}else{
						$useremail = strip_tags($_POST['Contacter']['email']);
						/* $username = strip_tags($_POST['Contacter']['name']); */
					}
					$message = array('email'=>$useremail,'ordernumber'=>$orderModel->trackcode);
					
					$this->sendEmail($useremail,$message);
				}
			}
		 	}else{
				$arr['statuCode'] = 302;
				$arr['msg'] = '合同条款必须同意!';
			}
		echo json_encode($arr);
		exit;
	}
	public function getConInfo($cid)
	{
		return Contacter::model()->findByPk($cid);
	}
	public function actionIndex()
	{
		$orderModel = new Order;
		
		$mid = Yii::app()->session['myuserid'];
		//计算代付款订单数量
		$unpaycount = $orderModel->count(array(
				'condition'=>'status=0',
				'condition'=>"mid=$mid",
				));
		//输出当前账号订单信息
		$criteria=new CDbCriteria;
		$criteria->select = 'id,tid,sid,tattedcode,name,daynumber,departure,trackcode,createtime,status';
		$criteria->condition = "mid=$mid and updatetime<>0";
		$criteria->order = "createtime desc";
		
		$count=$orderModel->count($criteria);
		$pages=new CPagination($count);
		$pages->pageSize=5;
		$pages->applyLimit($criteria);
		
		$orderinfo = $orderModel->findAll($criteria);
		
		//查询当前账号信息
		$mid = Yii::app()->session['myuserid'];
		$memberModel = Member::model()->find(array(
				'condition'=>"id=$mid",
				));
		
		//获取当前账号评论信息
		$reviewsArr = $memberModel->Reviews;
		
		//获取单个订单的信息
		//$oneOrders = array();
		$controerM = array();
		$clentsArr = array();
		$roomArr = array();
		if(isset($_REQUEST['rute'])){
			$temstr = explode('-',$_REQUEST['rute']);
			if($temstr[0]=='v'){
				$oid = intval($temstr[1]);
				$orderModel = $orderModel->find(array(//单个订单信息
						'select'=>'id,cid,name,daynumber,departure,aduit,child,trackcode,createtime,status',
						'condition'=>"id=$oid and mid=$mid",
				));
				if($orderModel==null){
					$this->render('404',array('msg'=>'该订单不存在!'));
					exit;
				}
				//联系人信息
				$cid = $orderModel->cid;
				$controerM = Contacter::model()->findByPk($cid);//联系人信息
				//参团人信息
				$clentsArr = $orderModel->Clients;
					
				//房间信息
				$roomArr = $orderModel->Rooms;
			}
		}

		$this->render('index',array(
				'orderinfo'=>$orderinfo,
				'unpaycount'=>$unpaycount,
				'memberModel'=>$memberModel,
				'reviewsArr'=>$reviewsArr,
				'orderModel'=>$orderModel,
				'controerM'=>$controerM,
				'clentsArr'=>$clentsArr,
				'roomArr'=>$roomArr,
				'pages'=>$pages,
				));
	}
Exemple #4
0
	public function actionIndex()
	{	
		$code = $this->checkKParm();
		
		if(isset($_GET['s'])){
			$sessid = $_GET['s'];
		}else{
			$sessid = '';
		}
		//$sessid = isset($_GET['s'])?$_GET['s']:'';
		
		$orderModel = $this->getOrderByRandCode($code,$sessid);
		//如果没有该订单,说明没有通过一步步预定,非法操作
		
		if($orderModel == null){
			$this->redirect(array('/tuan'));
			exit;
		}
		
		//如果已经是支付了的订单,直接跳到成功页面
		if($orderModel->status == 1){
			$this->redirect(array('/pay/over'));
			exit;
		}
		
		//计算门票总数
		/* $addsToken = 'adds'.$orderModel->id;
		$addArr = $this->checkAdditionsStep($addsToken);
		$tickers = 0;
		foreach($addArr[1] as $val)
			$tickers += $val; */
		$tickers = count($orderModel->Adds);
		
		//输出订单信息
		$oid = $orderModel->id;
		//输出参团人员信息
		$clientModel = Client::model()->findAll(array(
				'condition'=>"oid=$oid",
				));
		//保险id
		/* $insToken = 'ins'.$orderModel->id;
		$insuranceid = $this->getInsuranceId($insToken); */
		$insuModel = OrderInsurance::model()->find(array('select'=>'id','condition'=>"oid=$oid"));
		if($insuModel == null){
			$insuranceid = 0;
		}else{
			$insuranceid = $insuModel->id;
		}
		/* $isruModel = $orderModel->Insu->id; */
		/* if($isruModel != null){
			$insuranceid = $isruModel->id;
		} */
		
		//从session中得到房间信息
		/* $token = 'order'.$orderModel->id;
		$roomArr = $this->checkOrderRoomStep($token); */
		$roomArr = count($orderModel->Rooms);
		
		//联系人信息
		$conid = $orderModel->cid;
		$contact = Contacter::model()->find(array('condition'=>"id=$conid"));
		
		$this->render('index',array(
					'departure'=>date('Y-m-d',$orderModel->departure),
					'travel'=> $this->getTravelInfo($orderModel->tid),//旅游信息
					'tuanCode'=>$this->getTuanCode($orderModel->cal_id),//出团编号
					'clientModel'=>$clientModel,//参团人员信息,是一个数组
					'insurancename'=>$this->getNowInsurance($insuranceid),//保险名称
					'ticker'=>$tickers,//门票个数
					'aduit'=>$orderModel->aduit,//成人个数
					'child'=>$orderModel->child,//儿童个数
					'house'=>$roomArr,//$roomArr['rooms'],//房间个数
					//'housetypeid'=>$roomArr['type'],//房型ID,是个数组 array
					'gethouselist'=>$this->getHouseList(),//房型名称列表
					'totalprice'=>$this->getTotalPriceFormDb($orderModel->id),//总价格
					'token'=>$orderModel->id,
					'orid'=>$orderModel->id,
				'orderno'=>$orderModel->trackcode,
				'contacts'=>$contact,
					));
	}
	public function actionTipemail($id)
	{
		echo "<b>开始发送邮件...</b><br/>";
		$cal_id = intval($id);
		$emails = Order::model()->findAll(array('select'=>'cid,departure,trackcode','condition'=>"cal_id=$id"));
		
		$all = array();
		foreach($emails as $email){
			$temp[] = $email->departure;
			$temp[] = $email->trackcode;
			$controer = Contacter::model()->find(array('select'=>'email'));//联系人
			$temp[] = $controer->email;
			$all[] = $temp;
		}
		
		foreach($all as $one){
			$data['departure'] = date('Y-m-d',$one[0]);
			$data['ordernumber'] =$one[1];
			$data['email'] = $one[2];
			$data['url'] = 'http://www.ltsl.net/account.html';
			if($this->sendEmail($data['email'],$data)){
				echo $data['email']."---发送完毕!<br/>";
			}
		}
		
		echo "<b>全部发送完毕!</b><br/>";

	}