<?php
define('IN_SSE', true);
require(str_replace('\\', '/',dirname(__FILE__)) . '/includes/init_includes.php');
$act=isset($_REQUEST['act'])?trim($_REQUEST['act']):'';
if(!$_SESSION[$session_tag]['u_id'] && $act != "addcart"){
    sse_header("Location: user_login.shtml");
    exit;
}

// 用户id
// $_SESSION[$session_tag]['u_id'] = 9;
// echo $act;die;
if($act == "" || $act == "list"){
    //获取购物车缓存信息
    $data = read_cartpros_cache();
//     print_r($data);die;
    $smarty->assign("data",$data);
    $smarty->display("shoppingcart.htm");

}elseif($act == "addcart"){
    if(!$_SESSION[$session_tag]['u_id']){
        echo 404;
        exit;
    }
    //存入购物车
    $pro  = $_POST['pro'];
    // print_r($_POST);die;
    //生成购物货品文件
    write_cartpros_cache($pro['p_id'],$pro['p_options'],$pro['p_num']);
    // echo get_cartpros_totalprice();die;
}elseif($act == "clearcart"){
    del_cartpros_cache();
    echo 888;
    exit;
}elseif($act == "checkcart"){
    //获取购物车缓存信息
    $data = read_cartpros_cache();

    if(empty($data)){
        echo "{'code':404,'msg':'请选择产品！'}";
        exit;
    }else{


        foreach ($data['cartproinfo'] as $key => $cartproinfo) {
            $proname = $cartproinfo['info']['p_name'];
            $minbuynum = $db->getOne("select p_min_buynum from ".$GLOBALS['sse']->table('pro')." where p_id = ".$cartproinfo['info']['p_id']);
            $num = 0;

            foreach ($cartproinfo['oinfo'] as $k => $oinfo) {
                $num += $oinfo['num'];
            }
      
            if($num < $minbuynum){
                $msgstr = "产品{$proname}最低起购数量为{$minbuynum}!";
                echo '{"code":"404","msg": "'.$msgstr.'"}';exit;
            }
        }
    }
   echo "{'code':888}";
}elseif($act == "pay"){
    //获取购物车缓存信息
    $data = read_cartpros_cache();
    if($data){
		foreach ($data['cartproinfo'] as $key=>$proinfo){
            $sql = "select p_source from ".$sse->table('pro')." where p_id = {$key}";
            $needsfz = $db->getOne($sql);
            if($needsfz){
                $smarty->assign('needsfz',$needsfz);
                break;
            }
        }
        // 获取用户信息
        $userinfo = get_userinfo();
        //获取用户地址信息
        $useraddr = get_addrlist($_SESSION[$session_tag]['u_id']);
        // print_r($useraddr);die;
        $isdefaddr = array();
        if($useraddr){
            $isdefaddr = $useraddr[0];
            foreach ($useraddr as $key => $value) {
                if($value['a_isdef'] == 1){
                    $isdefaddr = $value;
                    break;
                }
            }
        }


        $payment_list = available_payment_list(1, 0,false);
        if($payment_list){
            foreach ($payment_list['online_1'] as $key => $pay) {
                $payment_list['online_1'][$key]['pay_fee_rate'] = (float)$pay/100;

                $payment_list['online_1'][$key]['payfee_price'] = get_payfee($data['cartproprice']['all_cart_price'],$pay['pay_id']);
            }
        }
        //获取购物车的数量
        $cart_num = get_cart_total_num($data);
        $shipping_fee = get_shipping_fee($GLOBALS['_lang']['data']['conf_shipping_per_price'],$cart_num);
        //获取购物车的运费描述
        $smarty->assign("shipping_fee",$shipping_fee);

        $shipping_fee_text = "￥".$shipping_fee;
        $smarty->assign("shipping_fee_text",$shipping_fee_text);
        //获取支付信息
        $smarty->assign('paylist',$payment_list);
//         print_r($data);die;
        $smarty->assign("data",$data);
        $smarty->assign("userinfo",$userinfo);
        $smarty->assign("isdefaddr",$isdefaddr);
//        $smarty->assign("shipping_fee",get_shipping_fee($GLOBALS['_lang']['data']['conf_shipping_per_price'],$pro['p_num']));
        $smarty->display("shoppingcart_pay.htm");
    }else{
        $smarty->display("shoppingcart.htm");
    }
}elseif($act == "editcart"){
    //获取购物车缓存信息
    // $data = read_cartpros_cache();
    $pro  = $_POST['pro'];
    // print_r($pro);die;
    write_cartpros_cache($pro['p_id'],$pro['p_options'],$pro['p_num'],1);
    // echo 888;
    $userinfo = get_userinfo();
    $newprice = get_afterdc_price($pro['p_id'],$userinfo['u_rank'],$pro['p_num']);
    echo "{'code':888,'newprice':".$newprice."}";
}elseif($act == "delpro"){
    $pro  = $_POST['pro'];
    write_cartpros_cache($pro['p_id'],$pro['p_options'],$pro['p_num'],2);
    echo 888;

}elseif($act=='dopay'){
    //生成订单表
    $val = $_POST['val'];

    // echo 1111;die;
    $proinfo = read_cartpros_cache('cartpros'.$_SESSION[$session_tag]['u_id']);

    // 获取用户信息
    $userinfo = get_userinfo();
    // print_r($userinfo);die;
    if(empty($proinfo)){
        echo '{"code":"-1"}';exit;
    }else{
        $num = 0;
        foreach ($proinfo['cartproinfo'] as $key => $cartproinfo) {
            $proname = $cartproinfo['info']['p_name'];
            $minbuynum = $db->getOne("select p_min_buynum from ".$GLOBALS['sse']->table('pro')." where p_id = ".$cartproinfo['info']['p_id']);

            foreach ($cartproinfo['oinfo'] as $k => $oinfo) {
                $num += $oinfo['num'];
            }

            if($num < $minbuynum){
                $msgstr = "产品{$proname}最低起购数量为{$minbuynum}!";
                echo '{"code":"-404","error": "'.$msgstr.'"}';exit;
            }
        }
    }
    $allprice = get_all_price($proinfo['cartproprice']['all_cart_price'],$val['o_payment_id'],$val['o_shipping_type'],$num);
    if($val['o_payment_id']==0 && $userinfo['u_money'] <  $allprice){
       echo '{"code":"-2"}';exit;
    }
    if(!$val['address_id']){
        echo '{"code":"-3"}';exit;
    }
    //获取地址信息
    $addinfo = get_addrinfo($val['address_id']);
    $info['o_desc'] = isset($val['o_desc'])?$val['o_desc']:'';
	$info['o_sfz'] = isset($val['o_sfz'])?$val['o_sfz']:'';
    $info['o_price'] = isset($val['o_price'])?floatval($val['o_price']):0;
    $info['o_price_payfee'] = isset($val['o_price_payfee'])?floatval($val['o_price_payfee']):0;
    $info['o_price_shipping'] = isset($val['o_price_shipping'])?floatval($val['o_price_shipping']):0;
    $info['o_shipping_type'] = isset($val['o_shipping_type'])?floatval($val['o_shipping_type']):0;
    $info['o_payment_name'] = isset($val['o_payment_name'])?$val['o_payment_name']:'';
    //$info['o_shipping_name'] = isset($val['o_shipping_name'])?$val['o_shipping_name']:'';
    $info['o_payment_id'] = isset($val['o_payment_id'])?(int)$val['o_payment_id']:0;
    //$info['o_shipping_id'] = isset($val['o_shipping_id'])?(int)$val['o_shipping_id']:0;
    // ***************************
    $info['o_addrid'] = isset($val['address_id'])?(int)$val['address_id']:0;
    // ***************************
    $info['o_price_all'] = $allprice;
    $info['o_sn'] = get_ordersn();
    $info['o_userid'] = $_SESSION[$session_tag]['u_id'];
    $info['o_addtime'] = gmtime();
    $info['o_state'] = $info['o_payment_id']?0:1;
    // **************************************************
    $ainfo = get_addrinfo($info['o_addrid']);
    $info['o_addrsfz'] = $ainfo['a_sfz'];
//    $money_year_addr = $db->getOne("select sum(o_price_all) from ".$GLOBALS['sse']->table('order')." where o_state>=1 and o_state<>5 and o_paytime > ".strtotime(local_date("Y")."-1-1")." and o_addrid=".$info['o_addrid']);
//
//    if(($info['o_price_all']+$money_year_addr) >=$GLOBALS['_lang']['data']['conf_max_consume_year']){
//        echo '{"code":"-4"}';exit;
//    }
//    $money_year_sfz = $db->getOne("select sum(o_price_all) from ".$GLOBALS['sse']->table('order')." left join ".$GLOBALS['sse']->table('user_address')." on o_addrid=a_id where o_state>=1 and o_state<>5 and o_paytime > ".strtotime(local_date("Y")."-1-1")." and o_addrsfz='".$ainfo['a_sfz']."'");
//
//    if(($info['o_price_all']+$money_year_sfz) >=$GLOBALS['_lang']['data']['conf_max_consume_year']){
//        echo '{"code":"-5"}';exit;
//    }
//
//    $money_day_addr = $db->getOne("select sum(o_price_all) from ".$GLOBALS['sse']->table('order')." where o_state>=1 and o_state<>5 and o_paytime > ".strtotime(local_date("Y-m-d"))." and o_addrid=".$info['o_addrid']);
//    if(($info['o_price_all']+$money_day_addr) >= $GLOBALS['_lang']['data']['conf_max_consume_day']){
//        echo '{"code":"-6"}';exit;
//    }
//    $money_day_sfz = $db->getOne("select sum(o_price_all) from ".$GLOBALS['sse']->table('order')." left join ".$GLOBALS['sse']->table('user_address')." on o_addrid=a_id where o_state>=1 and o_state<>5 and o_paytime > ".strtotime(local_date("Y-m-d"))." and o_addrsfz='".$ainfo['a_sfz']."'");
//    if(($info['o_price_all']+$money_day_sfz) >=$GLOBALS['_lang']['data']['conf_max_consume_day']){
//        echo '{"code":"-7"}';exit;
//    }

    // **************************************************
    if($info['o_payment_id'] == 0){
        $info['o_paytime'] = gmtime();
    }
    $info['o_realname'] = isset($addinfo['a_realname'])?$addinfo['a_realname']:'';
    $info['o_mobile'] = isset($addinfo['a_mobile'])?$addinfo['a_mobile']:'';
    $info['o_sheng'] = isset($addinfo['a_sheng'])?(int)$addinfo['a_sheng']:0;
    $info['o_shi'] = isset($addinfo['a_shi'])?(int)$addinfo['a_shi']:0;
    $info['o_qu'] = isset($addinfo['a_qu'])?(int)$addinfo['a_qu']:0;
    $info['o_area'] = isset($addinfo['a_area'])?$addinfo['a_area']:'';
    $info['o_address'] = isset($addinfo['a_address'])?$addinfo['a_address']:'';
    $info['o_zipcode'] = isset($addinfo['a_zipcode'])?$addinfo['a_zipcode']:'';
    $db->autoExecute($sse->table('order'), $info, 'INSERT');
    $oid = $db->insert_id();
    // $oid = 4;
    if($oid){
        if($info['o_payment_id'] == 0){
            operate_caiwu($_SESSION[$session_tag]['u_id'],0,0,$info['o_price_all'],1,1,$oid);
        }
        // print_r($proinfo);
        foreach ($proinfo['cartproinfo'] as $key => $info) {
            foreach ($info['oinfo'] as $k => $v) {
                $pro = array();
                $pro['op_orderid'] = $oid;
                $pro['op_proid'] = $info['info']['p_id'];
                $pro['op_proname'] = $info['info']['p_name'];
                $pro['op_price_market'] = $info['info']['p_market_price'];
                $pro['op_num'] = $v['num'];
                $pro['op_price'] = $v['final_price'];
                if(isset($v['op'])){
                    foreach ($v['op'] as $ok => $op) {
                        $pro['op_attr_id'] .= $pro['op_attr_id']?','.$op['pov_id']:$op['pov_id'];
                        $pro['op_attr_txt'] .= $pro['op_attr_txt']?','.$op['pov_name']:$op['pov_name'];
                        $pro['op_attr_type_name'] .= $pro['op_attr_type_name']?','.$op['po_name']:$op['po_name'];
                    }
                }
                $pro['op_addtime'] = gmtime();
                $db->autoExecute($sse->table('order_pro'), $pro, 'INSERT');
            }
            // print_r($pro);die;
        }
        //状态入库
        $state = array(
                'os_oid'=>$oid,
                'os_userid'=>$_SESSION[$session_tag]['u_id'],
                'os_type'=>$info['o_state'],
                'os_maintype'=>1,
                'os_addtime'=>gmtime()
            );
        $db->autoExecute($sse->table('order_status'), $state, 'INSERT');
        //生成订单，变更默认地址，$_SESSION[$session_tag]['u_id']当前用户id,$ainfo['a_id']当前地址id
        // print_r($info);die;
        setdefaddress($_SESSION[$session_tag]['u_id'],$ainfo['a_id']);
    }
    //清除购物车缓存
    del_cartpros_cache();
    echo '{"code":"1","oid":'.$oid.'}';exit;
}elseif($act == 'buynow'){
    $pro  = $_POST['pro'];
    $data = get_buynowpro_info($pro['p_id'],$pro['p_options'],$pro['p_num']);
        // 获取用户信息
        $userinfo = get_userinfo();
        //获取用户地址信息
        $useraddr = get_addrlist($_SESSION[$session_tag]['u_id']);
        // print_r($useraddr);die;
        $isdefaddr = array();
        if($useraddr){
            $isdefaddr = $useraddr[0];
            foreach ($useraddr as $key => $value) {
                if($value['a_isdef'] == 1){
                    $isdefaddr = $value;
                    break;
                }
            }
        }


    $payment_list = available_payment_list(1, 0,false);
    if($payment_list){
        foreach ($payment_list['online_1'] as $key => $pay) {
            $payment_list['online_1'][$key]['pay_fee_rate'] = (float)$pay/100;

            $payment_list['online_1'][$key]['payfee_price'] = get_payfee($data['cartproprice']['all_cart_price'],$pay['pay_id']);
        }
    }
//    Array
//    (
//        [p_id] => 34
//    [p_num] => 1
//    [ispin] => 1
//    [pinid] => 0
//)

    $pin['ispin'] = $pro['ispin'];
    $pin['pinid'] = $pro['pinid'];
    $sql = "select p_source from ".$sse->table('pro')." where p_id = {$pro['p_id']}";
    $smarty->assign('needsfz',$db->getOne($sql));
    //获取支付信息
    $smarty->assign('paylist',$payment_list);
    //订单拼单与否的信息， 已付款1
    $smarty->assign('pin',$pin);
    $rank_vp_list = get_rank_vp_list($pro['p_id']);
    $smarty->assign("rank_vp_list",$rank_vp_list);
    $smarty->assign("final_total_price",$rank_vp_list['vplist'][1]['vp_price'] * $pro['p_num']);

    $shipping_fee = get_shipping_fee($GLOBALS['_lang']['data']['conf_shipping_per_price'],$pro['p_num']);
    $smarty->assign("shipping_fee",$shipping_fee);
    $shipping_fee_text = "￥".$shipping_fee;
    $smarty->assign("shipping_fee_text",$shipping_fee_text);
    $smarty->assign("userinfo",$userinfo);
    $smarty->assign("isdefaddr",$isdefaddr);
    $smarty->assign('data',$data);
    $smarty->assign('buynow',1);
    $smarty->display('shoppingcart_pay.htm');
}elseif($act == 'dobuynowpay'){
    $val = $_POST['val'];
    $pro = $_POST['pro'];
    $pin = $_POST['pin'];
    $pin['ispin'] = isset($pin['ispin'])?(int)$pin['ispin']:0;
    $pin['pinid'] = isset($pin['pinid'])?(int)$pin['pinid']:0;

    $rank_vp_list = get_rank_vp_list($pro['p_id']);
    //拼团最少数量
    $pin_vp_num = $rank_vp_list['vplist'][1]['vp_num'];
    //拼团支付价格，待返
    $pin_vp_price = $rank_vp_list['vplist'][1]['vp_price'];
//print_r($pin_vp_price);die;
    // 获取用户信息
    $userinfo = get_userinfo();

    $rankprice = get_afterdc_price($pro['p_id'],$userinfo['u_rank'],$pro['p_num']);

    $proinfo = get_buynowpro_info($pro['p_id'],$pro['p_options'],$pro['p_num']);
    $allprice = get_all_price($proinfo['cartproprice']['all_cart_price'],$val['o_payment_id'],$val['o_shipping_type'],$pro['p_num']);
    $minbuynum = $db->getOne("select p_min_buynum from ".$GLOBALS['sse']->table('pro')." where p_id = ".$pro['p_id']);
    //拼团成功是否升级
    $p_issheng = $db->getOne("select p_issheng from ".$GLOBALS['sse']->table('pro')." where p_id = ".$pro['p_id']);

    //拼团成交信息
    $pinok = $db->getRow("select p_pinok_price,p_pinok_num from ".$GLOBALS['sse']->table('pro')." where p_id = ".$pro['p_id']);

//print_r($proinfo);die;
    if(empty($proinfo)){
        echo '{"code":"-1"}';exit;
    }
    if($pin['pinid']!= 0 && !is_pindan($pin['pinid'])){
        echo '{"code":"-9"}';exit;
    }
    //验证是否在有校拼团时间内
    if($pin['pinid']!= 0 && !is_inpintime($pro['p_id'])){
        echo '{"code":"-9"}';exit;
    }

    //验证参团数据
    if($pin['ispin'] == 1){

        //验证参团数量
        if($pro['p_num'] < $pin_vp_num){
            exit(json_encode(array('code'=>-404404,'msg'=>'拼团单次购买不得低于'.$pin_vp_num.'件商品',data=>''),true));
        }

    }


    if($val['o_payment_id']==0 && $userinfo['u_money'] <  $allprice){
        echo '{"code":"-2"}';exit;
    }
    if(!$val['address_id']){
        echo '{"code":"-3"}';exit;
    }
    if($pro['p_num'] < $minbuynum){
        echo '{"code":"-8"}';exit;
    }
    // print_r($_SESSION[$session_tag]['u_id']);die;
    //获取地址信息
    $addinfo = get_addrinfo($val['address_id']);
    // $proinfo = $_POST['proinfo'];
    // print_r($proinfo);die;
    $info['o_desc'] = isset($val['o_desc'])?$val['o_desc']:'';
	$info['o_sfz'] = isset($val['o_sfz'])?$val['o_sfz']:'';
    $info['o_price'] = isset($val['o_price'])?floatval($val['o_price']):0;
    $info['o_price_payfee'] = isset($val['o_price_payfee'])?floatval($val['o_price_payfee']):0;
    $info['o_price_shipping'] = isset($val['o_price_shipping'])?floatval($val['o_price_shipping']):0;
    $info['o_shipping_type'] = isset($val['o_shipping_type'])?$val['o_shipping_type']:0;
    // $info['o_price_all'] = isset($val['o_price_all'])?floatval($val['o_price_all']):0;
    $info['o_payment_name'] = isset($val['o_payment_name'])?$val['o_payment_name']:'';
//    $info['o_shipping_name'] = isset($val['o_shipping_name'])?$val['o_shipping_name']:'';
    $info['o_payment_id'] = isset($val['o_payment_id'])?(int)$val['o_payment_id']:0;
//    $info['o_shipping_id'] = isset($val['o_shipping_id'])?(int)$val['o_shipping_id']:0;
    // ***************************
    $info['o_addrid'] = isset($val['address_id'])?(int)$val['address_id']:0;
    // ***************************
    $info['o_price_all'] = get_all_price($proinfo['cartproprice']['all_cart_price'],$info['o_payment_id'],$info['o_shipping_type'],$pro['p_num']);
    //拼团支付总价
    if($pin['ispin'] == 1){
        $info['o_price_all'] = $pro['p_num'] * $pin_vp_price;
    }


    $info['o_sn'] = get_ordersn();
    $info['o_userid'] = $_SESSION[$session_tag]['u_id'];
    $info['o_addtime'] = gmtime();
    $info['o_state'] = $info['o_payment_id']?0:1;
    // **************************************************
    $ainfo = get_addrinfo($info['o_addrid']);
    $info['o_addrsfz'] = $ainfo['a_sfz'];
//    $money_year_addr = $db->getOne("select sum(o_price_all) from ".$GLOBALS['sse']->table('order')." where o_state>=1 and o_state<>5 and o_paytime > ".strtotime(local_date("Y")."-1-1")." and o_addrid=".$info['o_addrid']);
//
//    if(($info['o_price_all']+$money_year_addr) >=$GLOBALS['_lang']['data']['conf_max_consume_year']){
//       echo '{"code":"-4"}';exit;
//    }
//    $money_year_sfz = $db->getOne("select sum(o_price_all) from ".$GLOBALS['sse']->table('order')." left join ".$GLOBALS['sse']->table('user_address')." on o_addrid=a_id where o_state>=1 and o_state<>5 and o_paytime > ".strtotime(local_date("Y")."-1-1")." and o_addrsfz='".$ainfo['a_sfz']."'");
//
//    if(($info['o_price_all']+$money_year_sfz) >=$GLOBALS['_lang']['data']['conf_max_consume_year']){
//        echo '{"code":"-5"}';exit;
//    }
//
//    $money_day_addr = $db->getOne("select sum(o_price_all) from ".$GLOBALS['sse']->table('order')." where o_state>=1 and o_state<>5 and o_paytime > ".strtotime(local_date("Y-m-d"))." and o_addrid=".$info['o_addrid']);
//    if(($info['o_price_all']+$money_day_addr) >= $GLOBALS['_lang']['data']['conf_max_consume_day']){
//        echo '{"code":"-6"}';exit;
//    }
//    $money_day_sfz = $db->getOne("select sum(o_price_all) from ".$GLOBALS['sse']->table('order')." left join ".$GLOBALS['sse']->table('user_address')." on o_addrid=a_id where o_state>=1 and o_state<>5 and o_paytime > ".strtotime(local_date("Y-m-d"))." and o_addrsfz='".$ainfo['a_sfz']."'");
//    if(($info['o_price_all']+$money_day_sfz) >=$GLOBALS['_lang']['data']['conf_max_consume_day']){
//       echo '{"code":"-7"}';exit;
//    }

    // **************************************************
    if($info['o_payment_id'] == 0){
        $info['o_paytime'] = gmtime();
    }
    $info['o_realname'] = isset($addinfo['a_realname'])?$addinfo['a_realname']:'';
    $info['o_mobile'] = isset($addinfo['a_mobile'])?$addinfo['a_mobile']:'';
    $info['o_sheng'] = isset($addinfo['a_sheng'])?(int)$addinfo['a_sheng']:0;
    $info['o_shi'] = isset($addinfo['a_shi'])?(int)$addinfo['a_shi']:0;
    $info['o_qu'] = isset($addinfo['a_qu'])?(int)$addinfo['a_qu']:0;
    $info['o_area'] = isset($addinfo['a_area'])?$addinfo['a_area']:'';
    $info['o_address'] = isset($addinfo['a_address'])?$addinfo['a_address']:'';
    $info['o_zipcode'] = isset($addinfo['a_zipcode'])?$addinfo['a_zipcode']:'';
    $db->autoExecute($sse->table('order'), $info, 'INSERT');

    $oid = $db->insert_id();
    // $oid = 4;
    if($oid){
        if($info['o_payment_id'] == 0){
            operate_caiwu($_SESSION[$session_tag]['u_id'],0,0,$info['o_price_all'],1,1,$oid);
        }
        // print_r($proinfo);
        foreach ($proinfo['cartproinfo'] as $key => $info) {
            foreach ($info['oinfo'] as $k => $v) {
                $pro = array();
                $pro['op_orderid'] = $oid;
                $pro['op_proid'] = $info['info']['p_id'];
                $pro['op_proname'] = $info['info']['p_name'];
                $pro['op_price_market'] = $info['info']['p_market_price'];
                $pro['op_num'] = $v['num'];
                $pro['op_price'] = $v['final_price'];
                if($pin['ispin'] == 1){
                    $pro['op_price'] = $pin_vp_price;
                }
                if(isset($v['op'])){
                    foreach ($v['op'] as $ok => $op) {
                        $pro['op_attr_id'] .= $pro['op_attr_id']?','.$op['pov_id']:$op['pov_id'];
                        $pro['op_attr_txt'] .= $pro['op_attr_txt']?','.$op['pov_name']:$op['pov_name'];
                        $pro['op_attr_type_name'] .= $pro['op_attr_type_name']?','.$op['po_name']:$op['po_name'];
                    }
                }
                $pro['op_addtime'] = gmtime();
                $db->autoExecute($sse->table('order_pro'), $pro, 'INSERT');
            }
//             print_r($pro);die;
        }

        //状态入库
        $state = array(
                'os_oid'=>$oid,
                'os_userid'=>$_SESSION[$session_tag]['u_id'],
                'os_type'=>$info['o_state'],
                'os_maintype'=>1,
                'os_addtime'=>gmtime()
            );
        $db->autoExecute($sse->table('order_status'), $state, 'INSERT');
        //生成订单，变更默认地址，$_SESSION[$session_tag]['u_id']当前用户id,$ainfo['a_id']当前地址id
        // print_r($info);die;
        setdefaddress($_SESSION[$session_tag]['u_id'],$ainfo['a_id']);

        //    $pin['ispin'];
        //    $pin['pinid'] ;
//        开始创建拼单,余额付款时候
        if($info['o_payment_id'] == 0){

            if($pin['ispin']){
                $pinid = $pin['pinid'];
                $sample_pin = get_sample_pininfo($pro['op_proid']);
                if(!$pin['pinid']){
                    //发起拼单

//                    Array ( [p_id] => 34 [p_num] => 1 )
                    $pin = array(
                        'pin_sn'=>get_ordersn(),
                        'pin_proid'=>$pro['op_proid'],
                        'pin_min_num'=>$pinok['p_pinok_num'],
//                        'pin_min_num'=>$sample_pin['num'],
                        'pin_price'=>$pin_vp_price,
                        'pin_state'=>$pro['op_num'] >= $pinok['p_pinok_num']?3:1,
                        'pin_addtime'=>gmtime(),
                    );
                    $db->autoExecute($sse->table('pin'), $pin, 'INSERT');
                    $pinid = $db->insert_id();
                }


                //发起拼单
                $pininfo = array(
                    'pininfo_pinid'=>$pinid,
                    'pininfo_orderid'=>$oid,
                    'pininfo_userid'=>$_SESSION[$session_tag]['u_id'],
                    'pininfo_isfa'=>$pin['pinid']?0:1,
                    'pininfo_pronum'=>$pro['op_num'],
                    'pininfo_proprice'=>$pin_vp_price,
                    'pininfo_fanprice'=>$pin_vp_price - $pinok['p_pinok_price'],
                    'pininfo_addtime'=>gmtime()
                );
                $db->autoExecute($sse->table('pininfo'), $pininfo, 'INSERT');
                $pininfoid = $db->insert_id();

                //                检查拼单是否成功
                if(check_ispined($pinid,0)){
//                    成功，更新状态：3
                    update_pinstate($pinid,3);
                    //更新成设置团长升级成vvip,参数拼单id
                    //获取产品是否升级标记
                    if(pinok_isupgrade($pro['op_proid'])){
                        upgrade_vvip($pinid);
                    }
                }

                if($pinid && $pininfoid){
                    //添加订单拼单标记
                    $sql = "update ".$sse->table('order')." set o_pinid = $pinid , o_pininfoid = $pininfoid where o_id = $oid";
                    $db->query($sql);
                }
            }
        }
    }
    echo '{"code":"1","oid":'.$oid.'}';exit;

}elseif($act == 'dopaymoney'){
    $oid = isset($_REQUEST['oid'])?$_REQUEST['oid']:0;
    $orderinfo = get_orderinfo_index($oid);
	$orderinfo['order_sn']=$orderinfo['o_sn'];
	
    if($orderinfo['o_payment_id'] == 0){
        sse_header('location:userorder_payed.shtml');
        exit;
    }
    $orderprosinfo = get_orderpros_info($oid);
	$orderinfo['order_amount']=$orderinfo['o_price_all'];
	$orderinfo['dotype']=1;
    $payment_info=get_payment_info($orderinfo['o_payment_id']);
    $payment = unserialize_config($payment_info['pay_config']);

    include_once(HOME_DIR . 'payfile/' . $payment_info['pay_code'] . '.php');
    $pay_obj = new $payment_info['pay_code'];
    $payment_info['pay_button'] = $pay_obj->get_code($orderinfo, $payment);
    // print_r($payment_info);die;
    $smarty->assign('orderinfo',$orderinfo);
    $smarty->assign('payment_info',   $payment_info);
    $smarty->assign('orderprosinfo',$orderprosinfo);
//    print_r($orderinfo);die;
    $smarty->display('shoppingcart_dopaymoney.htm');
}elseif($act=='dobank'){
    $val=$_POST['val'];
    $val['oid']=isset($val['oid'])?intval($val['oid']):0;
    $val['bankname']=isset($val['bankname'])?trim($val['bankname']):'';
    $val['bankuser']=isset($val['bankuser'])?trim($val['bankuser']):'';
    $val['bankaccount']=isset($val['bankaccount'])?trim($val['bankaccount']):'';
    if($val['bankname']=='' || $val['bankuser']=='' || $val['bankaccount']==''){
        echo '{"error": "请认真填写每项资料!"}';
        exit;
    }
    $oid=$val['oid'];
    unset($val['oid']);
    $setval=json_encode($val);

    $db->query("update ".$sse->table('order')." set o_bankinfo='".$setval."'  where o_id = '".$oid."'");
    sse_header('location:userorder_list.shtml');
    exit;
}
function setdefaddress($uid,$aid){
    global $sse,$db;
    if(!$uid || !$aid){
        return;
    }
    //将非订单地址设为0
    $sql = "update ".$sse->table('user_address').' set a_isdef = 0 where a_userid = '.$uid.' and a_id != '.$aid.' and a_isdef=1';
    $db->query($sql);
    $res = $db->query('update '.$sse->table('user_address').' set a_isdef = 1 where a_userid='.$uid.' and a_id ='.$aid);
  
}
