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();
}
}