1,"iflogin"=>1, "info" => "未登录")); exit ; } //$userid=1; $myprod = isset($_POST['prod']) ? $_POST['prod'] : "{m152603p1|r202375}";//{m152603p1|r202375} $prod_id =substr($myprod,strpos($myprod, 'm')+1, strpos($myprod, 'p')-2); $mycustomer = isset($_POST['customer']) ? $_POST['customer'] : "nono"; $order_from_org_id = isset($_POST['order_from_org_id']) ? $_POST['order_from_org_id'] : '0'; $outside_order_id = isset($_POST['outside_order_id']) ? $_POST['outside_order_id'] : '0'; $sql_price = "select cus_price from opera_product_price where prod_id =".$prod_id; $pdo= conn(); $result_price = $pdo->query($sql_price); $row_p = $result_price->fetchAll(PDO::FETCH_ASSOC); $price_list = $prod_id.','.$row_p[0]['cus_price'];//'.$row_p['0']['cus_price'].' //$u_prod_list=isset($_POST['u_prod_list'])?$_POST['u_prod_list']:""; //$f_u_prod_list=isset($_POST['f_u_prod_list'])?$_POST['f_u_prod_list']:""; ///st-xm/Api/add_new_order.php?prod={m152603p1|r202375}&customer={,fuhc_ceshi,1,15821387785,150,511621199502032173,,0,,,} //&order_from_org_id=5&outside_order_id=9999999999999&tt=20160719195230&price={60.00}&doorPrice=10&hotelPrice=20&ifcheck=1&back_pro_id={m152248p1|r203865} //.返程 1=true 0=false $ifcheck = isset($_POST['ifback']) ? $_POST['ifback'] : ""; if($ifcheck){ $back_prod = isset($_POST['back_prod']) ? $_POST['back_prod'] : ""; $prod_id_f =substr($back_prod,strpos($back_prod, 'm')+1, strpos($back_prod, 'p')-2); $sql_price_f = "select cus_price from opera_product_price where prod_id =".$prod_id_f; $result_price_f = $pdo->query($sql_price_f); $row_f = $result_price_f->fetchAll(PDO::FETCH_ASSOC); $price_list_f =$prod_id_f.','.$row_f['0']['cus_price']; } $sql = "call sp_make_order(" . $userid . ",'" . $myprod . "','" . $mycustomer . "'," . $order_from_org_id . ",'" . $outside_order_id . "')"; if ($ifcheck == 0) {//不是含有返程的 writeLog("sp_make_order---san: " . $sql); $rowset = create_order($sql,$price_list); // if (is_array($rowset) && $rowset[0]['errcode'] == 0 && SEND_MESSAGE == true) { //单程票订票成功 // send_msg($rowset[0]['order_id']); // } $order_id = $rowset[0]['order_id']; //更改支付方式为 授信支付 //根据订单号查找订单详情 $sql = "select a.order_id,a.order_price,a.order_pay_main_id,a.customer_name,a.customer_mobile,count(b.order_id) as num,b.run_date,b.run_time,b.PROD_START_STATION_AREA_NAME AS start_area,b.PROD_END_STATION_AREA_NAME AS end_area,b.PROD_START_STATION_RES_NAME AS start_res,b.PROD_END_STATION_RES_NAME AS end_res from order_main a,order_main b where a.order_id = b.PARENT_ORDER_ID and a.order_id = " . $order_id . " group by a.order_id"; $result = $pdo->query($sql); $order_info = $result->fetchAll(PDO::FETCH_ASSOC); $sql_pay = "update order_pay_detail set pay_type_id_1 =275 where pay_main_id = ".$order_info[0]['order_pay_main_id']; $pdo->query($sql_pay); $data['code'] = $rowset[0]['errcode']; $data['info'] = $rowset[0]['errinfo']; $data['order_id'] = $rowset[0]['order_id']; $data['go_list'] = $order_info[0]; $data['go_list']['site_type'] = "普通票"; echo json_encode($data); } else { $rowset = create_order($sql,$price_list); if(!$rowset){ echo json_encode(array('code'=>1,'info'=>$sql));die; } if (is_array($rowset) && $rowset[0]['errcode'] == 0 && SEND_MESSAGE == true) {//返程---单程票订票成功 $order_id_go = $rowset[0]['order_id']; //根据订单号查找订单详情 $sql = "select a.order_id,a.order_price,a.order_pay_main_id,a.customer_name,a.customer_mobile,count(b.order_id) as num,b.run_date,b.run_time,b.PROD_START_STATION_AREA_NAME AS start_area,b.PROD_END_STATION_AREA_NAME AS end_area,b.PROD_START_STATION_RES_NAME AS start_res,b.PROD_END_STATION_RES_NAME AS end_res from order_main a,order_main b where a.order_id = b.PARENT_ORDER_ID and a.order_id = " . $order_id_go . " group by a.order_id"; $result = $pdo->query($sql); $order_info_go = $result->fetchAll(PDO::FETCH_ASSOC); $sql_pay = "update order_pay_detail set pay_type_id_1 =275 where pay_main_id = ".$order_info_go[0]['order_pay_main_id']; $pdo->query($sql_pay); // $data['code'] = $rowset[0]['errcode']; // $data['info'] = $rowset[0]['errinfo']; $data['order_id'] = $rowset[0]['order_id']; $data['go_list'] = $order_info_go[0]; $data['go_list']['site_type'] = "普通票"; // $data['code_f'] = ""; // $data['info_f'] = ""; // $data['order_id_f'] = ""; $sql_f = "call sp_make_order(" . $userid . ",'" . $back_prod . "','" . $mycustomer . "'," . $order_from_org_id . ",'" . $outside_order_id . "')"; writeLog('fan_dan_success sql_f========'.$sql_f); $rowset_f = create_order($sql_f,$price_list_f); //..判断返程票是否成功,若不成功,则去程订单 if (is_array($rowset_f) && $rowset_f[0]['errcode'] == 0 && SEND_MESSAGE == true) {//返程--返程票订票成功 $order_id_back = $rowset_f[0]['order_id']; //根据订单号查找订单详情 $sql = "select a.order_id,a.order_price,a.order_pay_main_id,a.customer_name,a.customer_mobile,count(b.order_id) as num,b.run_date,b.run_time,b.PROD_START_STATION_AREA_NAME AS start_area,b.PROD_END_STATION_AREA_NAME AS end_area,b.PROD_START_STATION_RES_NAME AS start_res,b.PROD_END_STATION_RES_NAME AS end_res from order_main a,order_main b where a.order_id = b.PARENT_ORDER_ID and a.order_id = " . $order_id_back . " group by a.order_id"; $result = $pdo->query($sql); $order_info_back = $result->fetchAll(PDO::FETCH_ASSOC); $sql_pay = "update order_pay_detail set pay_type_id_1 =275 where pay_main_id = ".$order_info_back[0]['order_pay_main_id']; $pdo->query($sql_pay); $data['code'] = $rowset_f[0]['errcode']; $data['info'] = $rowset_f[0]['errinfo']; $data['order_id_f'] = $rowset_f[0]['order_id'] ; $data['back_list'] = $order_info_back[0]; $data['back_list']['site_type'] = "普通票"; writeLog('fan_fan_success'); //发两条短信 // send_msg($rowset[0]['order_id']); // send_msg($rowset_f[0]['order_id']); //订票成功写入 往返订单关系表 $to_id = $rowset[0]['order_id']; $back_id = $rowset_f[0]['order_id']; $sql_conn = "insert into to_from values(NULL,".$to_id.",".$back_id.",'". date('Y-m-d h:i:s', time())."')"; $pdo= conn(); $pdo->exec($sql_conn); echo json_encode($data);exit(); } else {//如果返程票订票不成功,则取消单程票 $sql_cancel = "CALL SP_CANCEL_ORDER(" . $userid . "," . $rowset[0]['order_id'] . ")"; writeLog('fan_dan_faile_sql_cancel======'.$sql_cancel); $pdo_cancel = conn(); $result_cancel = $pdo_cancel -> query($sql_cancel); $rowset_cancel = $result_cancel -> fetchAll(PDO::FETCH_ASSOC); $result_cancel -> closeCursor(); //取消单程不发短信,但要写入取消订单原因 $res_content = get_msg_info($rowset[0]['order_id']); // $tel = isset($res_content[1])?$res_content[1]:""; $content = $rowset_f[0]['errinfo'] . "-订单已取消"; $comment_type = 0; $comment_text = ""; $sql1 = "CALL HT_ADD_MSG_COMMENT(2,'addmsg'," . $rowset[0]['order_id'] . "," . $comment_type . ",'" . $comment_text . "','" . $tel . "','" . $content . "','" . date("Y-m-d H:i:s") . "',0)"; $result1 = $pdo_cancel -> query($sql1); $rowset1 = $result1 -> fetchAll(PDO::FETCH_ASSOC); $result1 -> closeCursor(); writeLog("order_list.php HT_ADD_MSG_COMMENT()::" . $sql1); $data['code_f'] = $rowset_f[0]['errcode']; $data['info_f'] = $rowset_f[0]['errinfo']; $data['order_id_f'] = isset($rowset_f[0]['order_id']) ? $rowset_f[0]['order_id'] : ""; echo json_encode($data);exit(); } } } function create_order($sql,$price_list) { $pdo = conn(); if (is_object($pdo)) { $result = $pdo -> query($sql); if(!$result){ echo json_encode(array('code'=>1,'info'=>'可售资源不足'));die; } // echo json_encode(array('aa'=>$sql));die; $rowset_create = $result -> fetchAll(PDO::FETCH_ASSOC); $result -> closeCursor(); writeLog('下订单成功'); writeLog(json_encode($rowset_create)); if (is_array($rowset_create) && $rowset_create[0]['errcode'] == 0 && SEND_MESSAGE == true) { //下订单成功再修改价格 writeLog('change_price.php' . json_encode($_POST)); $sql_up_price = "call SP_CHANGE_PRICE(" . $rowset_create[0]['order_id'] . ",'" . $price_list . "')"; //$sql="update order_main set order_price ='".$price_arr[$k]."' where PROD_ID=".$v." and PARENT_ORDER_ID=".$ordid." and RUN_ID>0"; $result_up_price = $pdo -> query($sql_up_price); $rowset_up_price = $result_up_price -> fetchAll(PDO::FETCH_ASSOC); writeLog("change_price.php sql:: " . $sql_up_price . "::rowset ::" . json_encode($rowset_up_price)); $result_up_price -> closeCursor(); } } return $rowset_create; } //发短信 function send_msg($ORDER_ID) { $send_pdo=conn(); $order_id = $ORDER_ID; $res_content = get_msg_info($order_id); $name = $res_content[0]; $tel = $res_content[1]; $content = $res_content[2]; writeLog("短信模板内容:【" . $content . "】"); //..发短信先取消 $response = sendTelMessage($tel, $name, $content, $order_id); writeLog(json_encode($response)); $comment_type = 0; $comment_text = ""; $send_success = (int)$response; $sql1 = "CALL HT_ADD_MSG_COMMENT(2,'addmsg'," . $order_id . "," . $comment_type . ",'" . $comment_text . "','" . $tel . "','" . $content . "','" . date("Y-m-d H:i:s") . "',{$send_success})"; $result1 = $send_pdo -> query($sql1); $rowset1 = $result1 -> fetchAll(PDO::FETCH_ASSOC); $result1 -> closeCursor(); writeLog("hotel_order_status.php HT_ADD_MSG_COMMENT()::" . $sql1); //insert order extra $hotelPrice = isset($_GET['hotelPrice']) ? $_GET['hotelPrice'] : ""; $doorPrice = isset($_GET["doorPrice"]) ? $_GET["doorPrice"] : ""; if ($hotelPrice != "" || $doorPrice != "") { $sqlInsert = " INSERT INTO order_extra_info (order_id,hotel_price,gate_price) VALUE(" . $ORDER_ID . ",'" . $hotelPrice . "','" . $doorPrice . "') "; writeLog("insert extra info: " . $sqlInsert); $result = $send_pdo -> exec($sqlInsert); } } //..短信模板-改为17:30后OK,当天下单也OK function get_msg_info($ORDER_ID) { $msg_pdo = conn(); $msg_sql = "CALL SP_GET_MESSAGE_TEMPLATE('" . $ORDER_ID . "')"; $content = ''; if (is_object($msg_pdo)) { $msg_result = $msg_pdo -> query($msg_sql); $i = 1; $data = array(); if ($msg_result) { $data['code'] = "0"; $data['info'] = ""; do { $row = $msg_result -> fetchAll(PDO::FETCH_ASSOC); if ($i == 1) { $data['seat'] = isset($row) ? $row : array(); } else if ($i == 2) { $data['run_info'] = isset($row) ? $row : array(); } else if ($i == 3) { $data['driver'] = isset($row) ? $row : array(); } else { } $i++; } while($msg_result->nextRowset()); } $json_obj = json_decode(json_encode($data), TRUE); $seat = isset($json_obj['seat'][0]) ? $json_obj['seat'][0] : array(); $run_info = isset($json_obj['run_info'][0]) ? $json_obj['run_info'][0] : array(); $driver = isset($json_obj['driver'][0]) ? $json_obj['driver'][0] : array(); //出票成功 // $content = "您预订的{出发日期 出发时间}{出发地}-{目的地}{票种名}{张数}张,已购票成功。乘车订单号为{订单号},请凭订单号或绑定微信(微信服务号“蜘蛛出行”)扫码上车,车牌号{车牌号},司机电话{司机姓司机电话}。"; // 得到明天的时间 date_default_timezone_set('prc'); //解决时区问题 $tomorrow = date("Y-m-d", strtotime("+1 day")); $now_time = date('H:i:s', time()); //判断当前时间是否在17:30:00之后 $cur_date = date('Y-m-d', time()); if (($now_time > "17:30:00" && $run_info['start_date'] == $tomorrow) || $cur_date == $run_info['start_date']) {//17:30之后的订单或者下单时间为今天出行为今天下午 发送短信模板 // if("18:30:00">"17:30:00" && $run_info['start_date']==$tomorrow){ //17:30之后的订单 发送短信模板 // $content = "您预订的{出发日期 出发时间}{出发地}-{目的地}{票种名}{张数}张,已购票成功。乘车订单号为{订单号},请凭订单号或绑定微信(微信服务号“蜘蛛出行”)扫码上车,车牌号{车牌号},司机电话{司机姓司机电话}。"; $content = "您预订的{出发日期}{出发地}-{目的地}{票种名}{张数}张,已成功出票,请在{出发时间}前到达{上车站点}。您的乘车订单号为{订单号},车牌号{车牌号},司机电话{司机姓司机电话},请凭短信订单号乘车,预祝您旅途愉快。"; } else { // $content = "您预订的{出发日期 出发时间}{出发地}-{目的地}{票种名}{张数}张,已购票成功。乘车订单号为{订单号},请凭订单号或绑定微信(微信服务号“蜘蛛出行”)扫码上车。"; $content = "您预订的{出发日期}{出发地}-{目的地}{票种名}{张数}张,已成功出票,请在{出发时间}前到达{上车站点}。您的乘车订单号为{订单号},请凭短信订单号乘车。出行前一天下午的17:30会将车牌号与司机电话发送给您,预祝您旅途愉快。"; } // $content = "您预订的{出发日期 出发时间}{出发地}-{目的地}{票种名}{张数}张,已购票成功。乘车订单号为{订单号},请凭订单号或绑定微信(微信服务号“蜘蛛出行”)扫码上车。"; if ($seat) { $seat_x = isset($seat['seat_x']) ? $seat['seat_x'] : ""; $seat_y = isset($seat['seat_y']) ? $seat['seat_y'] : ""; $seat_name = isset($seat['seat_name']) ? $seat['seat_name'] : ""; $order_main_id = isset($seat['order_main_id']) ? $seat['order_main_id'] : ""; } else { } if ($run_info) { $order_count = $run_info['order_count']; $start_date = $run_info['start_date']; $start_time = $run_info['start_time']; $parent_order_id = $run_info['parent_order_id']; $end_date = $run_info['end_date']; $start_area = $run_info['start_area']; $end_area = $run_info['end_area']; $res_name = $run_info['res_name']; $prod_name = $run_info['prod_name']; $prod_name = "标准票"; $customer_name = $run_info['customer_name']; $customer_mobile = $run_info['customer_mobile']; $start_end_date = $start_date . "," . $start_time; $content = str_replace("{出发日期}", $start_date, $content); $content = str_replace("{出发时间}", $start_time, $content); $content = str_replace("{上车站点}", $res_name, $content); $content = str_replace("{出发地}", $start_area, $content); $content = str_replace("{目的地}", $end_area, $content); $content = str_replace("{票种名}", $prod_name, $content); $content = str_replace("{张数}", $order_count, $content); $content = str_replace("{订单号}", $ORDER_ID, $content); } else { $content = str_replace("{出发日期}", "", $content); $content = str_replace("{出发时间}", "", $content); $content = str_replace("{出发地}", "", $content); $content = str_replace("{目的地}", "", $content); $content = str_replace("{票种名}", "", $content); $content = str_replace("{张数}", "", $content); $content = str_replace("{订单号}", "", $content); } if ($driver) { $bus_no = isset($driver['bus_no']) ? $driver['bus_no'] : ""; $driver_name = isset($driver['driver_name']) ? $driver['driver_name'] : ""; $driver_mobile = isset($driver['driver_mobile']) ? $driver['driver_mobile'] : ""; if ($bus_no == "") { $content = str_replace(",车牌号{车牌号}", "", $content); } else { $content = str_replace("{车牌号}", $bus_no, $content); } if ($driver_name == "") { $content = str_replace(",司机电话{司机姓司机电话},", "。", $content); } else { $driver_xing = mb_substr($driver_name, 0, 1, 'utf-8'); $driver_name_mobile = $driver_xing . $driver_mobile; $content = str_replace("{司机姓司机电话}", $driver_name_mobile, $content); } } else { $content = str_replace("车牌号{车牌号},", "", $content); $content = str_replace("司机电话{司机姓司机电话},", "", $content); } return array(isset($customer_name) ? $customer_name : "", isset($customer_mobile) ? $customer_mobile : "", isset($content) ? $content : "短信错误,联系客服!!!"); } }