HEX
Server: nginx/1.28.1
System: Linux 10-41-63-61 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64
User: www (1001)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot/dd.cwoyt.com/Application/Home/Controller/CarorderController.class.php
<?php
// +----------------------------------------------------------------------
// | OneThink [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013 http://www.onethink.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: 赛脑 <2233759493@qq.com> <http://www.sn.com>
// +----------------------------------------------------------------------

namespace Home\Controller;

/**
 * 前台首页控制器
 * 主要获取首页聚合数据
 */
class CarorderController extends HomeController {
	

	public function carCookiePost(){
		if(IS_POST){
			
			if(I('post.smstype') == 1){
				if(I('post.sms')){
					if(I('post.sms') != cookie('sms')){
						$arr = array(
							'status' => 4,
							'title' => '验证码不正确!',
						);
						echo json_encode($arr);exit;
					}
				}else{
					$arr = array(
						'status' => 4,
						'title' => '验证码不正确!',
					);
					echo json_encode($arr);exit;
				}
				
			}
			
			
			$ordernum = date('YmdHis',NOW_TIME).rand(10,99);
			
			$cookieNum = cookie('cookieNum');
			$cookieNumFile = './log/cookie/'.$cookieNum.'.cookie';
			$Carcookie = file_get_contents($cookieNumFile);
			
			$Carcookie = unserialize($Carcookie);
			
			
			$total = '';
			
			foreach($Carcookie as $k=>$v){
				
				$title = $v['title'];
				$nid = $v['nid'];
				$total = $v['num']*$v['price'];
				$GetIpLookup = $_SERVER["REMOTE_ADDR"];
				$GetIpLookup['province'] = '未知地区';
				$GetIpLookup['city'] = '未知地区';
				$data = array(
					'name' => I('post.name'),
					'phone' => trim(I('post.phone')),
					'province' => I('post.province'),
					'city' => I('post.city'),
					'area' => I('post.area'),
					'address' => htmlspecialchars(I('post.address')),
					'ipprovince' => $GetIpLookup['province'],
					'ipcity' => $GetIpLookup['city'],
					'ip' => $_SERVER["REMOTE_ADDR"],
					'status' => 1,
					'addtime' => NOW_TIME,
					'message' => htmlspecialchars(I('post.message')),
					'proid' => $v['proid'],
					'nid' => $nid,
					'title' =>$title,
					'ordernum' => $ordernum,
					'paytype' => I('post.paytype'),
					'total' => $total,
					'gzid' => $v['gzid'],
					'num' => $v['num'],
					'sex' => I('post.sex'),
					'age' => I('post.age'),
					'height' => I('post.height'),
					'weight' => I('post.weight'),
					'idnumber' => I('post.idnumber'),
					'tel' => I('post.tel'),
					'code' => I('post.code'),
					'qq' => I('post.qq'),
					'wechat' => I('post.wechat'),
					'email' => I('post.email'),
					'size' => $v['size'],
					'color' => $v['color'],
					'tid' => $v['tid'],
					'iframe' => I('post.iframe'),
					'uid' => $v['uid'],
					'orderway' => is_mobile()?1:0,
				);
				
			//	p($data);
				$t = time();
				$start_time = mktime(0,0,0,date("m",$t),date("d",$t),date("Y",$t));  //当天开始时间
				$end_time = mktime(23,59,59,date("m",$t),date("d",$t),date("Y",$t)); //当天结束时间
			
				//统计数据初始化
				$t1 = array(
					'proid' => $data['proid'],
					'uid' => $data['uid'],
					'gzid' => $data['gzid'],
					'province' => $GetIpLookup['province'],
					'city' => $GetIpLookup['city'],
					'ip' => $GetIpLookup['ip'],
					'browse_num' => 1,
					'addtime' => $t,
					'pay' => $data['paytype'],
				);
				
				//统计时间段,类型-2
				$paytype['pay'] = array('eq',$data['paytype']);
				$paytype['addtime'] = array(array('gt',$start_time),array('lt',$end_time));
				$paytype['type'] = array('eq',3);
				
				$paytype = M('statistical')->where($paytype)->find();
				if($paytype){
					M('statistical')->where('sid = '.$paytype['sid'])->setInc('browse_num',1);
				}else{
					$t1['type'] = 3;
					M('statistical')->add($t1);
				}
				
				
				M('order')->add($data);
				M('product')->where('proid = '.$data['proid'])->setInc('number',1);
			}
			
			
			if(is_file($cookieNumFile)){
				unlink($cookieNumFile);
			}
			cookie('cookieNum',null);
			
			if($data['paytype'] == 'huodao'){
				$return = $this->houdao_order_return($ordernum);
			}else if($data['paytype'] == 'wechat'){
				$return = $this->wechat_order_return($ordernum);
			}else if($data['paytype'] == 'alipay'){
				$return = $this->alipay_order_return($ordernum);
			}else{
				$return = $this->houdao_order_return($ordernum);
			}
			
			echo $return;exit;
						
		}
		
	}
	
	public function houdao_order_return($ordernum){
		
		$orderList = M('order')->where('ordernum = "'.$ordernum.'"')->select();
		$email_value = M('config')->where('id = 64')->getField('value');
		$status = M('config')->where('id = 71')->getField('value');
		$pay = require './Application/Common/Conf/pay.php';
		$html = M('config')->where('id = 103')->getField('value');
		$dx = M('config')->where('id = 78')->getField('value');
		
		foreach($orderList as $k=>$v){
			//减去库存
			M('product_norms')->where('nid = '.$v['nid'])->setDec('number',$v['num']);
			//计算折扣
			$temp = M('template')->where('tid = '.$v['tid'])->field('pay_type,alert,alert_type,alert_href,alert_content')->find();
			$order = M('order')->where('orderid = '.$v['orderid'])->getField('total');
			$temp['pay_type'] = unserialize($temp['pay_type']);
			$total = $temp['pay_type']['huodao']['discount']*$order;
			
			M('order')->where('orderid = '.$v['orderid'])->save(array('total' => $total));
	
			
			if($email_value == 1){
				
				$info['temp'] = M('template')->where('tid = '.$v['tid'])->field('size_title,color_title')->find();
				if($v['color']){
					$color = $info['temp']['color_title'].' :'.$v['color'];
				}
				if($v['size']){
					$size = $info['temp']['size_title'].' :'.$v['size'];
				}
				
				$v['time'] = date('Y-m-d H:i',$v['addtime']);
				$v['paytype'] = $pay[$v['paytype']];
				foreach($v as $ke=>$ve){
					$datakarr[] = "{".$ke."}";
					$datavarr[] = $ve;
				}
				$data_html .= str_replace($datakarr,$datavarr,$html);
			}
			
			if($status == 1){
				
				$dx_arr = unserialize($dx);
				if(in_array('gk',$dx_arr)){
					$gk = M('config')->where('id = 76')->getField('value');
					$order_gk = M('order')->where('orderid = '.$v['orderid'])->find();
					$order_gk['time'] = date('Y-m-d H:i',$order_gk['addtime']);
					$gk_html  = '';
					foreach($order_gk as $kgk=>$vgk){
						$gkkarr[] = "{".$kgk."}";
						$kkvarr[] = $vgk;
					}
					$gk_html = str_replace($gkkarr,$kkvarr,$gk);
					
					sms($v['phone'],$gk_html);
				}
				
				if(in_array('sj',$dx_arr)){
					$sj = M('config')->where('id = 77')->getField('value');
					$order_sj = M('order')->where('orderid = '.$v['orderid'])->find();
					$order_sj['time'] = date('Y-m-d H:i',$order_sj['addtime']);
					$sj_html  = '';
					foreach($order_sj as $ksj=>$vsj){
						$sjkarr[] = "{".$ksj."}";
						$sjvarr[] = $vsj;
					}
					$sj_html = str_replace($sjkarr,$sjvarr,$sj);
					$sj_phone = M('config')->where('id = 82')->getField('value');
					
					sms($sj_phone,$sj_html);
				}
			
			}
			
		}
		
		if($email_value == 1){
			$email_title = M('config')->where('id = 70')->getField('value');
			$email = M('config')->where('id = 60')->getField('value');
			send_email($email,$email_title,$data_html);
		}
		
		$arr = array(
			'status' => 3,
			'url' => U('order?ordernum='.$ordernum),
			'ordernum' => $ordernum,
		);
		
		return json_encode($arr);exit;
		
	}
	
	
	public function wechat_order_return($ordernum){
		
		$orderList = M('order')->where('ordernum = "'.$ordernum.'"')->select();
		
		foreach($orderList as $k=>$v){
			
			$temp = M('template')->where('tid = '.$v['tid'])->field('pay_type')->find();
			$order = M('order')->where('orderid = '.$v['orderid'])->getField('total');
			$temp['pay_type'] = unserialize($temp['pay_type']);
			
			if($temp['pay_type']['wechat']['discount'] != '1'){
				if($order > '0.01'){
					$total = number_format($temp['pay_type']['wechat']['discount']*$order,2);
				}else{
					$total = $order;
				}
			}else{
				$total = $order;
			}
			M('order')->where('orderid = '.$v['orderid'])->save(array('total' => $total));
		}
		
		
		if(is_weixin()){
			$url = U('Home/Wxpay/Carindex?ordernum='.$ordernum);
		}else{
			if(is_mobile()){
				$url = U('Home/Wxpay/CarWxh5pay?ordernum='.$ordernum);
			}else{
				$url = U('Home/Wxpay/Carnative?ordernum='.$ordernum);
			}
		}
		
		$arr = array(
			'status' => 5,
			'title' => '提交订单成功,即将跳转到支付页面...',
			'url' => $url,
			'ordernum' => $ordernum,
		);
		return json_encode($arr);exit;
		
	}
	
	
	public function alipay_order_return($ordernum){
		
		
		$orderList = M('order')->where('ordernum = "'.$ordernum.'"')->select();
		
		foreach($orderList as $k=>$v){
			
			$temp = M('template')->where('tid = '.$v['tid'])->field('pay_type')->find();
			$order = M('order')->where('orderid = '.$v['orderid'])->getField('total');
			$temp['pay_type'] = unserialize($temp['pay_type']);
			
			if($temp['pay_type']['wechat']['discount'] != '1'){
				if($order > '0.01'){
					$total = number_format($temp['pay_type']['wechat']['discount']*$order,2);
				}else{
					$total = $order;
				}
			}else{
				$total = $order;
			}
			M('order')->where('orderid = '.$v['orderid'])->save(array('total' => $total));
		}
		
		
		$url = U('Home/Alipay/index?ordernum='.$ordernum);
		$arr = array(
			'status' => 5,
			'title' => '提交订单成功,即将跳转到支付页面...',
			'url' => $url,
			'ordernum' => $data['ordernum'],
		);
		return json_encode($arr);exit;
	}
	
	
	
	
	//订单页面列表
	public function  order(){
		$ordernum = I('get.ordernum');
		
		$pay = require './Application/Common/Conf/pay.php';
		$orderList = M('order')->where('ordernum = "'.$ordernum.'"')->select();
		
		foreach($orderList as $k=>$v){
			$temp = M('template')->where('tid = '.$v['tid'])->field('options,size_title,color_title')->find();
			$orderList[$k]['options'] = unserialize($temp['options']);
			$orderList[$k]['title'] = explode(',',$v['title']);
			$orderList[$k]['currency'] = M('product')->where('proid = "'.$v['proid'].'"')->getField('currency');
			
		}
		
		$value = M('config')->where('id = 88')->getField('value');
		$language = M('config')->where('id = 97')->getField('value');
		
		
		$this->assign('_list', $orderList);
		$this->assign('language', $language);
		$this->assign('value', $value);
		$this->assign('pay', $pay);
		$this->display();
	}
	
}