hotfix/远程访问多媒体中心
cyc 8 years ago
parent 3b21e3a85f
commit 6486a067a3

@ -13,7 +13,7 @@ class search extends CI_Controller{
public function index($train_date,$fromStation,$toStation){
$url = 'http://op.juhe.cn/trainTickets/ticketsAvailable?key='.JUHE_TRAIN_API_KEY.'&train_date='.$train_date.'&from_station='.$fromStation.'&to_station='.$toStation;
$back_data = $this->get_http($url);
//print_r(json_decode($back_data));
print_r(json_decode($back_data));
$return_data = new stdClass();
$return_data->httpstatus = 200;
$return_data->data = new stdClass();
@ -99,7 +99,7 @@ class search extends CI_Controller{
}
}
$return_data->data->map = (object)$obj;
print_r(json_encode($return_data));
print_r($return_data);
}
//获取价格

@ -0,0 +1,88 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
//聚合火车订票API key
define("JUHE_TRAIN_API_KEY","79f03107b921ef31310bd40a1415c1cb");
//聚合火车订票---查询api
define("JUHE_TRAIN_CX_API","http://op.juhe.cn/trainTickets/ticketsAvailable");
//聚合火车订票---订票api
define("JUHE_TRAIN_DP_API","http://op.juhe.cn/trainTickets/submit");
//聚合火车订票---状态查询api
define("JUHE_TRAIN_STATUS_API","http://op.juhe.cn/trainTickets/orderStatus");
//聚合火车订票---取消订单api
define("JUHE_TRAIN_CANCEL_API","http://op.juhe.cn/trainTickets/cancel");
//聚合火车订票---请求出票支付api
define("JUHE_TRAIN_PAY_API","http://op.juhe.cn/trainTickets/pay");
//聚合火车订票---线上退票api
define("JUHE_TRAIN_REFUND_API","http://op.juhe.cn/trainTickets/refund");
//聚合火车订票---导出记录api
define("JUHE_TRAIN_EXPORT_API","http://op.juhe.cn/trainTickets/exportAccountChange");
//http://op.juhe.cn/trainTickets/exportAccountChange?key=79f03107b921ef31310bd40a1415c1cb&since=2016-10-01 00:00&before=2016-10-30 00:00
//订单状态说明
$config["train_order_status_msg"]=array(
"0"=>"待处理",
"1"=>"失效订单",
"2"=>"待支付",
"3"=>"已支付,待出票",
"4"=>"出票成功",
"5"=>"出票失败",
"6"=>"线上退票处理中",
"7"=>"有乘客退票(改签)成功",
"8"=>"乘客退票失败",
"e"=>"数据错误,提交失败"
);
//座次配对
$config["train_zw"]=array(
"O"=>"二等座",
"9"=>"商务座",
"P"=>"特等座",
"6"=>"高级软卧",
"M"=>"一等座",
"4"=>"软卧",
"2"=>"软座",
"3"=>"硬卧",
"1"=>"硬座",
);
//数据库座次配对,包厢硬卧(5),无座(WZ),聚合没有
$config["db_train_zw"]=array(
"9"=>"9",
"P"=>"P",
"M"=>"M",
"7"=>"M",
"O"=>"O",
"8"=>"O",
"6"=>"6",
"A"=>"6",
"S"=>"4",
"4"=>"4",
"F"=>"4",
"3"=>"3",
"2"=>"2",
"1"=>"1",
);
//票种配对
$config["train_piaotype"]=array(
"1"=>"成人票",
"2"=>"儿童票",
"3"=>"学生票",
"4"=>"残军票",
);
//证件类型配对
$config["train_passportty"]=array(
"B"=>"护照",
"1"=>"二代身份证",
"2"=>"一代身份证",
"C"=>"港澳通行证",
"G"=>"台湾通行证"
);

@ -0,0 +1,385 @@
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
//[{"ticket_no":"E855807446107001B","passengername":"陈斯坤","passporttypeseid":"1","passportseno":"450521199406098313"}]
class Auto extends CI_Controller{
private $order_status_msg;//订单状态说明
private $key;
private $cx_api;//查询api
private $dp_api;//订票api
private $qxdd_api;//取消订单api
private $pay_api;//请求出票,支付
private $refund_api;//线上退票
private $status_api;//状态查询
private $code_zw;//座次信息
private $piaotype;//票种信息
private $passportty;//证件类型信息
public function __construct()
{
header("Content-Type: text/html;charset=utf-8");
parent::__construct();
$this->config->load('config');
$this->order_status_msg=$this->config->item('train_order_status_msg');
$this->key=JUHE_TRAIN_API_KEY;
$this->cx_api=JUHE_TRAIN_CX_API;
$this->dp_api=JUHE_TRAIN_DP_API;
$this->qxdd_api=JUHE_TRAIN_CANCEL_API;
$this->pay_api=JUHE_TRAIN_PAY_API;
$this->refund_api=JUHE_TRAIN_REFUND_API;
$this->status_api=JUHE_TRAIN_STATUS_API;
$this->code_zw=$this->config->item('train_zw');
$this->piaotype=$this->config->item('train_piaotype');
$this->passportty=$this->config->item('train_passportty');
$this->load->model("BIZ_train_model");//加载模型
}
//用于自动出票,接收COLI_SN
public function auto_pay_ticket(){
date_default_timezone_set('Asia/Shanghai');
// $coli_sn="473013018";
$coli_sn = $this->input->post("coli_sn");
$list=new StdClass;
$back_data = 1;
if(!empty($coli_sn)){
$cold_sn=$this->BIZ_train_model->get_cold_sn($coli_sn);
$coli_id = $this->BIZ_train_model->coli_sn_get_coli_id($coli_sn);
$i = 0;
$list->info=array();
foreach ($cold_sn as $v) {
if($v->COLD_SPFS > 1){
//寄送票
$back_data = 0;
break;
}
$list->info[$i]=new StdClass;
$list->info[$i]->people=$this->BIZ_train_model->biz_people($v->COLD_SN);
$list->info[$i]->train=$this->BIZ_train_model->get_biz_foi($v->COLD_SN);
$list->info[$i]->status=$this->BIZ_train_model->get_biz_jol($v->COLD_SN);
if(count($list->info[$i]->people) > 5){
$back_data = 0;
break;
};
if((strtotime($list->info[$i]->train[0]->DepartureTime) - time())/3600 < 3 or (strtotime($list->info[$i]->train[0]->DepartureTime) - time())/24/3600 >29){
$back_data = 0;
break;
}
if($list->info[$i]->train[0]->adultcost > 1000){
$back_data = 0;
break;
}
$i++;
}
if($back_data == 0){
echo 0;
return false;
}else{
foreach ($cold_sn as $v) {
$reback = $this->submit_juhe_order($v->COLD_SN,$coli_id[0]->COLI_ID);
if($reback["status"] && !empty($reback["order"])){
$back_data .= ",".$reback["order"];
}
}
}
$back_data = substr($back_data, 2);
if($back_data){ //这里 $back_data 还有可能没数据,所以判断一下
echo $back_data;
}else{
echo 0;
}
return false;
}
}
//根据汉特订单明细表SN来获取车次乘客信息拼接成聚合提交订单的url
public function submit_juhe_order($cold_sn,$coli_id) {
// $cold_sn=$this->input->get("order");
$data = array();
$reback=array();//返回数据
$reback["status"]=0;
$reback["mes"]="";
// $reback["order"] = "123";
// return $reback;die;
if(!is_numeric($cold_sn)){
$reback["mes"]="订单号是数字";
echo json_encode($reback);
return false;
}
$data['train'] = $this->BIZ_train_model->biz_order_detail($cold_sn);
if (empty($data['train'])) {
//显示错误,找不到车次
$reback["mes"]="找不到车次";
echo json_encode($reback);
return false;
}
$data['people_list'] = $this->BIZ_train_model->biz_people($cold_sn);
if (empty($data['people_list'])) {
//显示错误,找不到用户信息
$reback["mes"]="找不到乘客信息";
echo json_encode($reback);
return false;
}
if (count($data['people_list']) > 5) {
//显示错误,用户超过五个
$reback["mes"]="乘客不能超过五个";
echo json_encode($reback);
return false;
}
$db_train_zw = $this->config->item('db_train_zw');
$train_zw = $this->config->item('train_zw');
$passengers='';
foreach ($data['people_list'] as $key => $item) {
$zwcode = $db_train_zw[$data['train']->Aircraft]; //座位简码
$zwname = $train_zw[$db_train_zw[$data['train']->Aircraft]]; //座位名称
//乘客姓名
$passengersename = trim($item->BPE_FirstName) . trim($item->BPE_MiddleName) . trim($item->BPE_LastName);
//乘客类型
switch ($item->BPE_GuestType) {
case 1:
$piaotype = 1;
$piaotypename = "成人票";
break;
case 2:
$piaotype = 2;
$piaotypename = "儿童票";
break;
default://外国人应该就两种票吧
$piaotype = 1;
$piaotypename = "成人票";
break;
}
$passporttypeseid = "B"; //护照
$passporttypeseidname = "护照";
$passportseno = $item->BPE_Passport;
$passengers.=',{"passengerid":' . ( ++$key) . ',"passengersename":"' . $passengersename . '","piaotype":"' . $piaotype . '","piaotypename":"' . $piaotypename . '","passporttypeseid":"' . $passporttypeseid . '","passporttypeseidname":"' . $passporttypeseidname . '","passportseno":"' . $passportseno . '","price":"1","zwcode":"' . $zwcode . '","zwname":"' . $zwname . '"}';
}
$passengers.="]";
$passengers = substr($passengers, 1);
$passengers = "[" . $passengers;
$url=$this->dp_api;
$post_data=array(
"key"=>$this->key,
"user_orderid"=>$cold_sn,//自定义订单号
"train_date"=>substr($data["train"]->DepartureDate, 0, 10),
"from_station_name"=>$data["train"]->DepartAirport_cn,
"from_station_code"=>$data["train"]->DepartAirport,
"to_station_code"=>$data["train"]->ArrivalAirport,
"to_station_name"=>$data["train"]->ArrivalAirport_cn,
"passengers"=>$passengers,
"checi"=>$data["train"]->FlightsNo
);
// $bakc_json=$this->post_data($url,$post_data);
$bakc=json_decode($bakc_json);//json=>obj
$add_data=new StdClass();
$add_data->JOL_COLD_SN=(int)$cold_sn;
$add_data->JOL_Status="0";
$add_data->JOL_RebackMsg=$bakc->reason;
$add_data->JOL_FromStation=$data["train"]->DepartAirport_cn;
$add_data->JOL_ToStation=$data["train"]->ArrivalAirport_cn;
$add_data->JOL_FromStationCode=$data["train"]->DepartAirport;
$add_data->JOL_ToStationCode=$data["train"]->ArrivalAirport;
$add_data->JOL_TrainCode=$data["train"]->FlightsNo;
$add_data->JOL_BackTxt=$bakc_json;
if(!$bakc->error_code){
$add_data->JOL_JuheOrder=$bakc->result->orderid;
$reback["status"]=1;
$reback["order"]=$bakc->result->orderid;
$reback["mes"]="订单提交成功,等待回调";
$this->send_mail_to_wl("订单:{$coli_id} 提交成功","翰特订单号:{$coli_id} ;聚合订单号:{$bakc->result->orderid}");
}else{
$add_data->JOL_JuheOrder=null;
$reback["mes"]= $bakc_json;
$add_data->JOL_Status="e";
$this->send_mail_to_wl("订单:{$coli_id} 提交失败","翰特订单号:{$coli_id}");
}
$add_back_data=$this->BIZ_train_model->add_biz_jol($add_data);
return $reback;
}
public function ticket_status($coli_sn="",$jh_id=""){
if(empty($coli_sn)){
$coli_sn = $this->input->get("sn");
}
if(empty($jh_id)){
$jh_id = $this->input->get("reback");
}
if(empty($coli_sn) or empty($jh_id)){
echo "error";
return false;
}
$jh_id = explode(",", $jh_id);
$cold_sn = $this->BIZ_train_model->get_cold_sn($coli_sn);
$cols_id = $this->BIZ_train_model->coli_sn_get_coli_id($coli_sn);
if(empty($cold_sn)){
echo "error";
return false;
}else{
$list=new StdClass;
$list->info=array();
foreach ($cold_sn as $key => $v) {
$list->info[$key]=new StdClass;
$list->info[$key]->people=$this->BIZ_train_model->biz_people($v->COLD_SN);
$list->info[$key]->train=$this->BIZ_train_model->get_biz_foi($v->COLD_SN);
foreach ($jh_id as $jh_id_v) {
$list->info[$key]->order_info = $this->BIZ_train_model->get_biz_jol_info($v->COLD_SN,$jh_id_v);
if(!empty($list->info[$key]->order_info)) break;
}
}
}
$list->cols_id = $cols_id[0]->COLI_ID;
$this->load->view("ticket_status",$list);
}
//发邮件给外联
public function send_mail_to_wl($subject,$body){
$this->load->model("Sendmail_model");
$fromName = "csk";
$fromEmail = "csk@hainatravel.com";
$toName = "ethel";
$toEmail = "ethel@chinahighlights.com";
$this->Sendmail_model->SendGuest($fromName,$fromEmail,$toName,$toEmail,$subject,$body);
}
//发邮件给客人
public function send_mail_to_guest($coli_id,$jh_order){
$this->load->model("Sendmail_model");
$guest = $this->BIZ_train_model->get_guest_info($coli_id);
$fromName = "sharon";
$fromEmail = "sharon@chinahighlights.com";
$toName = $guest[0]->GUT_LastName;
$toEmail = $guest[0]->GUT_Email;
$subject = "auto pay test $jh_order";
$body = "csk test train ticket $jh_order";
$this->Sendmail_model->SendGuest($fromName,$fromEmail,$toName,$toEmail,$subject,$body);
}
//
public function sub_callback(){
$data_post=$this->input->post();
// $data_post["data"]='{"from_station_name":"桂林北","from_station_code":"GBZ","to_station_name":"柳州","to_station_code":"LZZ","train_date":"2017-01-05","orderid":"111111H","user_orderid":"488015272","orderamount":null,"ordernumber":null,"checi":"K457","msg":"没有余票","status":"4","passengers":[{"passengerid":1,"passengersename":"CSK","piaotype":"1","piaotypename":"成人票","passporttypeseid":"B","passporttypeseidname":"护照","passportseno":"E132124","price":"1","zwcode":"1","zwname":"硬座"},{"passengerid":2,"passengersename":"TW","piaotype":"1","piaotypename":"成人票","passporttypeseid":"B","passporttypeseidname":"护照","passportseno":"E02030609","price":"1","zwcode":"1","zwname":"硬座"}],"refund_money":null,"sign":"a5bc2ac8ef2b3a4c1bca323c3898e748"}';
$data=json_decode($data_post["data"]);
$this->load->model("order_people_model","op");
$update_data=new StdClass();
$update_data->JOL_BackTxt=$data_post["data"];
$update_data->JOL_RebackMsg=$data->msg;
$update_data->JOL_Status=$data->status;
$update_data->JOL_JuheOrder=$data->orderid;
$update_data->JOL_Price=$data->passengers[0]->price;
$coli_id = $this->BIZ_train_model->cold_sn_get_coli_id($data->user_orderid);
$add_train_order_data = new StdClass;
if($data->status=="2"){
$post_data=array(
"key"=>$this->key,
"orderid"=>$data->orderid
);
$back_json=$this->my_post($this->pay_api,$post_data);
$back=json_decode($back_json);
$update_data->JOL_BackTxt=$back_json;
$update_data->JOL_RebackMsg=$back->reason;
}elseif($data->status=="4"){
//付款成功 写入TOC表
$add_train_order_data->TOC_Memo=$data->orderid;
$add_train_order_data->TOC_COLD_SN=$data->user_orderid;
$add_train_order_data->TOC_TrainNumber=$data->checi;
$add_train_order_data->TOC_DepartureDate=$data->train_date;
$add_train_order_data->TOC_TicketCost=$data->orderamount;
$add_train_order_data->poundage=(count($data->passengers)*2)."";//手续费,每人两块,转换成字符串
$add_train_order_data->FOI_TrainNetOrderNo=$data->ordernumber;
$this->op->add_train_order($add_train_order_data);
$this->send_mail_to_wl("订单:{$coli_id[0]->COLI_ID} 出票成功","翰特订单号:{$coli_id[0]->COLI_ID};聚合订单号:{$data->orderid}");
$this->send_mail_to_guest($coli_id[0]->COLI_ID,$data->orderid);
}elseif($data->status=="7"){
//退票成功 写入TOC表
$newtime="";//记录最新操作时间
$refund_passportseno="";//退票人护照号
$refund_money="";//退票金额
foreach ($data->passengers as $p) {
//找出退票人,规则:操作时间最新的
if($p->refundTimeline){//是否有退票操作
//$p->refundTimeline[count($p->refundTimeline)-1] 最新操作
if($p->refundTimeline[count($p->refundTimeline)-1]->time > $newtime){
$newtime=$p->refundTimeline[count($p->refundTimeline)-1]->time;
$refund_passportseno=$p->refundTimeline[count($p->refundTimeline)-1]->detail->passportseno;
$refund_money=$p->refundTimeline[count($p->refundTimeline)-1]->detail->returnmoney;
}
}
}
$add_train_order_data->TOC_Memo=$data->orderid." ".$refund_passportseno;
$add_train_order_data->TOC_COLD_SN=$data->user_orderid;
$add_train_order_data->TOC_TrainNumber=$data->checi;
$add_train_order_data->TOC_DepartureDate=$data->train_date;
$add_train_order_data->TOC_TicketCost=-$refund_money;
$add_train_order_data->FOI_TrainNetOrderNo=null;//退票不用更新取票号,以此在模型里面判断是否为退票消息
$this->op->add_train_order($add_train_order_data);
}else{
$this->send_mail_to_wl("订单:{$coli_id[0]->COLI_ID} 出票失败","翰特订单号:{$coli_id[0]->COLI_ID};聚合订单号:{$data->orderid};返回信息:{$data->msg}");
}
$this->op->update_jh_order($update_data);
echo "success";
}
function my_post($url,$post_data){
// $url = "http://op.juhe.cn/trainTickets/cityCode";
// $post_from = array("stationName" => $from,"key"=>"79f03107b921ef31310bd40a1415c1cb");
// $post_to = array("stationName" => $to,"key"=>"79f03107b921ef31310bd40a1415c1cb");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// post数据
curl_setopt($ch, CURLOPT_POST, 1);
// post的变量
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$output = curl_exec($ch);
curl_close($ch);
$output=json_decode($output,TRUE);//json => array
return $output;
}
function get_data($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
function post_data($url,$post_data){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// post数据
curl_setopt($ch, CURLOPT_POST, 1);
// post的变量
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$output = curl_exec($ch);
curl_close($ch);
// $output=json_decode($output,TRUE);//json => array
return $output;
}
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,168 @@
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class search extends CI_Controller{
public function __construct(){
parent::__construct();
$this->load->model("BIZ_train_model");//加载模型
}
//查询聚合余票接口,对返回的数据进行处理
public function index($train_date,$fromStation,$toStation){
$url = 'http://op.juhe.cn/trainTickets/ticketsAvailable?key='.JUHE_TRAIN_API_KEY.'&train_date='.$train_date.'&from_station='.$fromStation.'&to_station='.$toStation;
$back_data = $this->get_http($url);
print_r(json_decode($back_data));
$return_data = new stdClass();
$return_data->httpstatus = 200;
$return_data->data = new stdClass();
$return_data->data->result = array();
$return_data->data->map = new stdClass();
$obj = array();
$i = 0;
$pricestr = '';
if(!empty(json_decode($back_data)->result->list)){
foreach (json_decode($back_data)->result->list as $value){
$obj[$value->from_station_code] = $value->from_station_name;
$obj[$value->to_station_code] = $value->to_station_name;
$seat_type = '';
if(isset($value->gjrw_price)){
if($value->gjrw_price > 0){
$gjrwPrice = $value->gjrw_price * 10;
$seat_type .= '"6":"'.$gjrwPrice.'","A6":"¥'.$value->gjrw_price.'",';
}
}
if(isset($value->qtxb_price)){
if($value->qtxb_price > 0){
$seat_type .= '"H":"¥'.$value->qtxb_price.'",';
}
}
if(isset($value->rw_price)){
if($value->rw_price > 0){
$rwPrice = $value->rw_price * 10;
$seat_type .= '"4":"'.$rwPrice.'","A4":"¥'.$value->rw_price.'",';
}
}
if(isset($value->rz_price)){
if($value->rz_price > 0){
$rzPrice = $value->rz_price * 10;
$seat_type .= '"2":"'.$rzPrice.'","A2":"¥'.$value->rz_price.'",';
}
}
if(isset($value->tdz_price)){
if($value->tdz_price > 0){
$seat_type .= '"P":"¥'.$value->tdz_price.'",';
}
}
if(isset($value->wz_price)){
if($value->wz_price > 0){
$wzPrice = $value->wz_price * 10;
$seat_type .= '"WZ":"¥'.$value->wz_price.'",';
}
}
if(isset($value->yw_price)){
if($value->yw_price > 0){
$ywPrice = $value->yw_price * 10;
$seat_type .= '"3":"'.$ywPrice.'","A3":"¥'.$value->yw_price.'",';
}
}
if(isset($value->yz_price)){
if($value->yz_price > 0){
$yzPrice = $value->yz_price * 10;
$seat_type .= '"1":"'.$yzPrice.'","A1":"¥'.$value->yz_price.'",';
}
}
if(isset($value->edz_price)){
if($value->edz_price > 0){
$seat_type .= '"O":"¥'.$value->edz_price.'",';
}
}
if(isset($value->ydz_price)){
if($value->ydz_price > 0){
$seat_type .= '"M":"¥'.$value->ydz_price.'",';
}
}
if(isset($value->swz_price)){
if($value->swz_price > 0){
$swzPrice = $value->swz_price * 10;
$seat_type .= '"9":"'.$swzPrice.'","A9":"¥'.$value->swz_price.'",';
}
}
$pricestr = $seat_type.'"train_no":'.'"'.$value->train_no.'"';
//余票字符串
$return_data->data->result[$i] = '|预定|'.$value->train_no.'|'.$value->train_code.'|'.$value->from_station_name.'|'.$value->to_station_name.'|'.$value->from_station_code.'|'.$value->to_station_code.'|'.$value->start_time.'|'.$value->arrive_time.'|'.$value->run_time.'|'.$value->can_buy_now.'||'.$value->train_start_date.'||||||||'.$this->ticket_exchange($value->gjrw_num).'|'.$this->ticket_exchange($value->qtxb_num).'|'.$this->ticket_exchange($value->rw_num).'|'.$this->ticket_exchange($value->rz_num).'|'.$this->ticket_exchange($value->tdz_num).'|'.$this->ticket_exchange($value->wz_num).'||'.$this->ticket_exchange($value->yw_num).'|'.$this->ticket_exchange($value->yz_num).'|'.$this->ticket_exchange($value->edz_num).'|'.$this->ticket_exchange($value->ydz_num).'|'.$this->ticket_exchange($value->swz_num).'|'.$this->ticket_exchange($value->dw_num).'||';
$data = '{"validateMessagesShowId":"_validatorMessage","status":true,"httpstatus":200,"data":{'.$pricestr.'},"messages":[],"validateMessages":{}}';
$return_data->data->price[$i] = $data;
$this->BIZ_train_model->addOrUpdate($value->train_no,$value->train_code,$value->from_station_code,$value->to_station_code,json_encode($data));
$i++;
}
}
$return_data->data->map = (object)$obj;
print_r($return_data);
}
//获取价格
/*
fromStationCode出发站三字码
toStationCode:终点站三字码
trainCode:车次号
*/
public function get_price($fromStationCode,$toStationCode,$trainCode){
$return_data = $this->BIZ_train_model->get_price($fromStationCode,$toStationCode,$trainCode);
if(!empty($return_data)){
print_r(json_decode($return_data->TPL_Price));
}else{
print_r('没有数据返回');
}
}
//余票转换
function ticket_exchange($num){
if(is_numeric($num)){
if($num == 0){
return '无';
}elseif($num >= 99){
return '有';
}else{
return $num;
}
}else{
if($num == '--'){
return '';
}
}
}
//发送请求
function get_http($url, $data = '', $method = 'GET') {
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); // 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
if ($method == 'POST' && !empty($data)) {
curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
}
curl_setopt($curl, CURLOPT_TIMEOUT, 45); // 设置超时限制防止死循环
curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
$tmpInfo = curl_exec($curl); // 执行操作
$errno = curl_errno($curl);
if ($errno !== 0) {
return false;
$error_message = $errno . ' ' . curl_error($curl); //记录错误日志
log_message('error', "third_party/train_app/index/get_http curl {$error_message}");
}
curl_close($curl); //关闭CURL会话
return $tmpInfo; //返回数据
}
}
?>

@ -0,0 +1,92 @@
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Ticket extends CI_Controller {
public function __construct() {
parent::__construct();
$this->config->load('config');
$this->load->model("BIZ_train_model"); //加载模型
}
//输入翰特订单号cols_id,获取火车订票的相关信息,模拟翰特订单详情页面
public function index() {
$data = array();
$coli_id = $this->input->post("ht_order"); //商务订单号
//主订单信息
$data['order_detail'] = $this->BIZ_train_model->confirm_line_info($coli_id);
if (empty($data['order_detail'])) {
echo '找不到订单';
return false;
}
//外联信息
$data['operator_detail'] = $this->BIZ_train_model->operator_detail($data['order_detail']->COLI_OPI_ID);
if (empty($data['operator_detail'])) {
echo '找不到外联信息';
return false;
}
//子订单信息+产品信息,一对一
$data['order_detail_list'] = $this->BIZ_train_model->confirm_line_detail($data['order_detail']->COLI_SN);
if (empty($data['order_detail_list'])) {
echo '找不到订单详情';
return false;
}
//子订单信息+乘客信息,一对多
$cols_id = $this->input->post("ht_order");
$list = new StdClass;
if (!empty($cols_id)) {
$cold_sn = $this->BIZ_train_model->get_biz_cold($cols_id);
$list->wl = $this->BIZ_train_model->get_operatorinfo($cols_id);
$people = array();
$i = 0;
$list->info = "";
foreach ($cold_sn as $v) {
$list->info[$i]->people = $this->BIZ_train_model->biz_people($v->COLD_SN);
$list->info[$i]->train = $this->BIZ_train_model->get_biz_foi($v->COLD_SN);
$list->info[$i]->status = $this->BIZ_train_model->get_biz_jol($v->COLD_SN);
$i++;
}
$list->cols_id = $cols_id;
}
$this->load->view('bootstrap3/header');
$this->load->view('ht_train_order.html', $list);
$this->load->view('bootstrap3/footer');
}
public function search() {
$data = array();
$data['from_station'] = $this->input->get_post("from_station");
$data['to_station'] = $this->input->get_post("to_station");
$data['query_date'] = $this->input->get_post("query_date");
$url = "http://op.juhe.cn/trainTickets/cityCode";
$post_from = array("stationName" => $from, "key" => $this->key);
$post_to = array("stationName" => $to, "key" => $this->key);
$output_from = $this->my_post($url, $post_from);
$output_to = $this->my_post($url, $post_to);
if ($output_from["error_code"] === 0 && $output_to["error_code"] === 0) {//error_code=0代表成功其他有错返回错误信息
// var_dump($output_from["result"]["code"]);var_dump($output_to["result"]["code"]);
$ticket_data = array("key" => $this->key, "train_date" => $date, "from_station" => $output_from["result"]["code"], "to_station" => $output_to["result"]["code"]);
$ticket = $this->my_post("http://op.juhe.cn/trainTickets/ticketsAvailable", $ticket_data);
if ($ticket["error_code"] != 0) { //error_code=0代表成功其他有错返回错误信息
die(json_encode(array("status" => 0, "mes" => $ticket["reason"]))); //
} else {
$backdata = "";
$backdata = $this->load->view("booking_table", array("result" => $ticket["result"], "date" => $date), true);
die(json_encode(array("status" => 1, "mes" => "成功", "backdata" => $backdata)));
}
} else {
die(json_encode(array("status" => 0, "mes" => "站点名称错误")));
}
}
}

@ -0,0 +1,328 @@
<?php
class BIZ_train_model extends CI_Model {
function __construct() {
parent::__construct();
$this->HT = $this->load->database('HT', TRUE);
$this->INFO = $this->load->database('INFO', TRUE);
}
//新增或更新价格
public function addOrUpdate($TPL_Train_No,$TPL_Train_Code,$TPL_From_Station_Code,$TPL_To_Station_Code,$TPL_Price){
$sql = "IF NOT EXISTS(
SELECT 1
FROM TrainPriceList
WHERE TPL_Train_Code = '$TPL_Train_Code'
AND TPL_From_Station_Code = '$TPL_From_Station_Code'
AND TPL_To_Station_Code = '$TPL_To_Station_Code'
) BEGIN
INSERT INTO TrainPriceList
(
TPL_Train_No,
TPL_Train_Code,
TPL_From_Station_Code,
TPL_To_Station_Code,
TPL_Price,
TPL_Datetime,
TPL_Source
)
VALUES
(
'$TPL_Train_No','$TPL_Train_Code','$TPL_From_Station_Code','$TPL_To_Station_Code','$TPL_Price',GETDATE(),'juhe'
)
END
ELSE
BEGIN
UPDATE TrainPriceList
SET TPL_Train_No = '$TPL_Train_No',
TPL_Price = '$TPL_Price',
TPL_Datetime = GETDATE(),
TPL_Source = 'juhe'
WHERE TPL_Train_Code = '$TPL_Train_Code'
AND TPL_From_Station_Code = '$TPL_From_Station_Code'
AND TPL_To_Station_Code = '$TPL_To_Station_Code'
END
";
$query = $this->INFO->query($sql);
return $query;
}
//获取价格
public function get_price($fromStationCode,$toStationCode,$trainCode){
$sql = "SELECT
TPL_Price
FROM
TrainPriceList
WHERE
TPL_Train_Code = '$trainCode'
AND
TPL_From_Station_Code = '$fromStationCode'
AND
TPL_To_Station_Code = '$toStationCode'";
$query = $this->INFO->query($sql);
return $query->row();
}
function biz_order_detail($cold_sn) {
$sql = "
SELECT TOP 1 bfoi.FOI_SN
,bfoi.FOI_COLD_SN
,bfoi.DepartAirport
,bfoi.ArrivalAirport
,bfoi.FlightsNo
,bfoi.Aircraft
,bfoi.DepartureDate
,(
SELECT TOP 1 TRS_StationCN
FROM TrainStation
WHERE TRS_Code = DepartAirport
) AS DepartAirport_cn
,(
SELECT TOP 1 TRS_StationCN
FROM TrainStation
WHERE TRS_Code = ArrivalAirport
) AS ArrivalAirport_cn
FROM BIZ_FlightsOrderInfo bfoi
WHERE bfoi.FOI_COLD_SN = ?
";
$query = $this->HT->query($sql, $cold_sn);
if ($query->num_rows() > 0) {
return $query->row();
} else {
return false;
}
}
//传入一组BPE_SN获取乘客信息
function in_bpesn_people_info($bpe_sn){
$sql = "
SELECT bbp.BPE_SN
,bbp.BPE_FirstName
,bbp.BPE_MiddleName
,bbp.BPE_LastName
,bbp.BPE_GuestType
,bbp.BPE_Passport
FROM BIZ_BookPeople bbp
WHERE BPE_SN in(".$bpe_sn.")
";
$query = $this->HT->query($sql);
return $query->result();
}
//传入子订单COLD_SN获取子订单对应的乘客信息
function biz_people($cold_sn) {
$sql = "
SELECT bbp.BPE_SN
,bbp.BPE_FirstName
,bbp.BPE_MiddleName
,bbp.BPE_LastName
,bbp.BPE_GuestType
,bbp.BPE_Passport
FROM BIZ_BookPeople bbp
WHERE EXISTS(
SELECT TOP 1 1
FROM BIZ_BookPeopleList bbpl
WHERE bbpl.BPL_BPE_SN = bbp.BPE_SN
AND bbpl.BPL_COLD_SN = ?
)
";
$query = $this->HT->query($sql, $cold_sn);
return $query->result();
}
//添加聚合订单记录BIZ_JuheOrderList
function add_biz_jol($data){
$sql="
INSERT INTO BIZ_JuheOrderList(
JOL_SubTime,
JOL_COLD_SN,
JOL_JuheOrder,
JOL_Status,
JOL_RebackMsg,
JOL_FromStation,
JOL_ToStation,
JOL_FromStationCode,
JOL_ToStationCode,
JOL_TrainCode,
JOL_BackTxt
)
VALUES(getdate(),?,?,?,?,?,?,?,?,?,?)
";
$query = $this->HT->query($sql, array($data->JOL_COLD_SN,$data->JOL_JuheOrder,$data->JOL_Status,$data->JOL_RebackMsg,$data->JOL_FromStation,$data->JOL_ToStation,$data->JOL_FromStationCode,$data->JOL_ToStationCode,$data->JOL_TrainCode,$data->JOL_BackTxt
));
return $query;
}
/* 以下为get_ht_order优化代码 */
//传入主订单翰特订单号COLI_ID161014006M获取子订单中火车订单的COLD_SN
function get_biz_cold($cols_id) {
$sql = "SELECT COLD_SN
FROM BIZ_ConfirmLineDetail bcld
WHERE bcld.COLD_COLI_SN=(
SELECT COLI_SN FROM BIZ_ConfirmLineInfo bcli WHERE bcli.COLI_ID=?)
AND bcld.DeleteFlag=0 AND bcld.COLD_ServiceType='2'";
$query = $this->HT->query($sql, $cols_id);
return $query->result();
}
//传入COLD_SN获取火车车次等信息
function get_biz_foi($cold_sn) {
$sql = "
SELECT FOI_COLD_SN,
FlightsNo,
Cabin,
DepartureCity,
ArrivalCity,
DepartureDate,
DepartureTime,
ArrivalTime,
adultcost
FROM BIZ_FlightsOrderInfo
WHERE FOI_COLD_SN = ?
";
$query = $this->HT->query($sql, $cold_sn);
return $query->result();
}
//传入COLD_SN获取BIZ_JuheOrderList是否存在此子订单用来判断是否提交过给聚合
function get_biz_jol($cold_sn) {
$sql = "SELECT top 1 JOL_SN FROM BIZ_JuheOrderList WHERE JOL_COLD_SN= ?";
$query = $this->HT->query($sql, $cold_sn);
return $query->result();
}
//传入COLI_ID获取外联名
function get_operatorinfo($cols_id) {
$sql = "
SELECT OPI_Name
FROM OperatorInfo
WHERE OPI_SN = (
SELECT COLI_OPI_ID
FROM BIZ_ConfirmLineInfo bcli
WHERE bcli.COLI_ID = ?
)
";
$query = $this->HT->query($sql, $cols_id);
return $query->result();
}
/* 以上为get_ht_order优化代码 */
//修改BIZ_JuheOrderList
function update_biz_jol($where,$data){
return $this->HT->where($where)->update("BIZ_JuheOrderList", $data);
}
//获取站点简码
function get_train_station_code($where){
$data=$this->HT->where($where)->select("TRS_Code")->from("TrainStation")->get();
return $data->result();
}
//接收聚合订单号获取翰特订单号即BIZ_ConfirmLineInfo的COLI_ID
function jh_order_get_coli_id($jh_order){
$sql="SELECT COLI_ID FROM BIZ_ConfirmLineInfo bcli WHERE bcli.COLI_SN=
(SELECT COLD_COLI_SN FROM BIZ_ConfirmLineDetail bcld WHERE bcld.COLD_SN=
(SELECT JOL_COLD_SN FROM BIZ_JuheOrderList bjol WHERE bjol.JOL_JuheOrder= ? ))
";
$query = $this->HT->query($sql, $jh_order);
return $query->result();
}
//通过COLI_ID获取团名 即 GroupInfo的GRI_No
function get_gri_no($coli_id){
$sql="SELECT GRI_No FROM GroupInfo
WHERE GRI_SN=(
SELECT COLI_GRI_SN FROM BIZ_ConfirmLineInfo WHERE COLI_ID=?
)
";
$query = $this->HT->query($sql, $coli_id);
return $query->result();
}
//通过COLI_ID获取我的支付 BIZ_TrainOrderCost
function get_train_order_cost($coli_id){
$sql="SELECT TOC_Memo,TOC_TrainNumber,TOC_DepartureDate,TOC_TicketCost
FROM BIZ_TrainOrderCost btoc
WHERE btoc.TOC_COLI_SN=
(SELECT COLI_SN FROM BIZ_ConfirmLineInfo bcli
WHERE bcli.COLI_ID=?)";
$query = $this->HT->query($sql, $coli_id);
return $query->result();
}
//-----------------------------自动出票 begin-----------
//用于自动出票传入主订单翰特订单号COLI_SN获取子订单中火车订单的COLD_SN和COLD_SPFS(寄送票标示大于1的为寄送)
public function get_cold_sn($COLI_SN){
$sql="SELECT COLD_SN,COLD_SPFS
FROM BIZ_ConfirmLineDetail bcld
WHERE bcld.COLD_COLI_SN=?
AND bcld.DeleteFlag=0 AND bcld.COLD_ServiceType='2'";
$query = $this->HT->query($sql,$COLI_SN);
return $query->result();
}
//用于自动出票,传入主订单翰特订单号 COLI_ID ,获取客人的姓名和邮箱
public function get_guest_info($COLI_ID){
$sql = "SELECT GUT_LastName,GUT_Email FROM BIZ_GUEST bg WHERE bg.GUT_SN =
( SELECT COLI_GUT_SN FROM BIZ_ConfirmLineInfo bcli WHERE bcli.COLI_ID = ?)
";
$query = $this->HT->query($sql,$COLI_ID);
return $query->result();
}
//通过 JOL_JuheOrder 获取 BIZ_JuheOrderList 获取聚合订单详情
public function get_biz_jol_info($cold_sn,$jol_jo){
$sql = "SELECT top 1
JOL_SN,
JOL_COLD_SN,
JOL_JuheOrder,
JOL_SubTime,
JOL_Status,
JOL_RebackMsg,
JOL_FromStation,
JOL_ToStation,
JOL_FromStationCode,
JOL_ToStationCode,
JOL_TrainCode,
JOL_Price,
JOL_PayTime,
JOL_BackTxt
FROM BIZ_JuheOrderList
WHERE JOL_COLD_SN = ? AND JOL_JuheOrder = ?
";
$query = $this->HT->query($sql,array($cold_sn,$jol_jo));
return $query->result();
}
// 传入coli_sn获取订单号
public function coli_sn_get_coli_id($coli_sn){
$sql="SELECT COLI_ID FROM BIZ_ConfirmLineInfo WHERE COLI_SN = ? ";
$query = $this->HT->query($sql,array($coli_sn));
return $query->result();
}
// 传入 cold_sn 获取订单号
public function cold_sn_get_coli_id($cold_sn){
$sql="SELECT COLI_ID FROM BIZ_ConfirmLineInfo
WHERE COLI_SN = (
SELECT COLD_COLI_SN FROM BIZ_ConfirmLineDetail WHERE COLD_SN = ?
)
";
$query = $this->HT->query($sql,array($cold_sn));
return $query->result();
}
//-----------------------------自动出票 end-----------
function SendMail($fromName, $fromEmail, $toName, $toEmail, $subject, $body) {
$toName = str_replace("'","''",$toName);
$body = str_replace("'","''",$body);
$sql = "INSERT INTO Email_AutomaticSend
(
M_ReplyToName, M_ReplyToEmail, M_ToName, M_ToEmail, M_Title, M_Body, M_Web,
M_FromName, M_State
)
VALUES
(
?, ?, N'{$toName}', ?, N'{$subject}', N'{$body}', ?, ?, 0
) ";
$query = $this->HT->query($sql, array($fromName, $fromEmail, $toEmail, 'cht', 'information'));
echo $query;
//return $query;
}
}

@ -0,0 +1,21 @@
<?php
class Api_model extends CI_Model {
function __construct() {
parent::__construct();
$this->JH=$this->load->database('JH', TRUE);
}
function getAll($table,$where="1=1",$order="id desc") {
$query = $this->JH->order_by("id desc")->get($table);
return $query->result_array();
}
function _insert($table,$data){
return $this->JH->insert($table, $data);
}
function _update($table,$data,$where){
return $this->JH->where($where)->update($table, $data);
}
}

@ -0,0 +1,327 @@
<?php
class Order_people_model extends CI_Model {
private $order="";//订单号
function __construct() {
parent::__construct();
$this->HT=$this->load->database('HT', TRUE);
}
function biz_people($order){
//订单信息
$sql="SELECT COLD_ServiceType,COLD_StartDate FROM BIZ_ConfirmLineDetail WHERE COLD_SN= ?";
$data=new StdClass();
$query_cold=$this->HT->query($sql,$order);
$data->cold=$query_cold->result();
//城市名称
if(!empty($data->cold)){
//车次信息
$sql="SELECT DepartAirport,ArrivalAirport,FlightsNo,Aircraft,DepartureDate FROM BIZ_FlightsOrderInfo WHERE FOI_COLD_SN= ?";
$query_zdjm=$this->HT->query($sql,(int)$order);
$query_zdjm=$query_zdjm->result();
if(!empty($query_zdjm)){
$data->cold[0]->DepartAirport=$query_zdjm[0]->DepartAirport;
$data->cold[0]->ArrivalAirport=$query_zdjm[0]->ArrivalAirport;
$data->cold[0]->FlightsNo=$query_zdjm[0]->FlightsNo;
$data->cold[0]->Aircraft=$query_zdjm[0]->Aircraft;
//站点中文名称
$sql="SELECT TRS_StationCN AS LeaveStation FROM TrainStation WHERE TRS_Code='".$query_zdjm[0]->DepartAirport."'";
$query_LeaveStation=$this->HT->query($sql);
$LeaveStation=$query_LeaveStation->result();
$sql="SELECT TRS_StationCN AS ServerStation FROM TrainStation WHERE TRS_Code='".$query_zdjm[0]->ArrivalAirport."'";
$query_ServerStation=$this->HT->query($sql);
$ServerStation=$query_ServerStation->result();
$data->cold[0]->LeaveStation=$LeaveStation[0]->LeaveStation;
$data->cold[0]->ServerStation=$ServerStation[0]->ServerStation;
}
}
$sql="SELECT BPE_FirstName,BPE_MiddleName,BPE_LastName,BPE_GuestType,BPE_Passport
FROM BIZ_BookPeople
WHERE BPE_SN in (
SELECT BPL_BPE_SN FROM BIZ_BookPeopleList WHERE BPL_COLD_SN=?
)";
$query_people=$this->HT->query($sql,$order);
$data->people=$query_people->result();
return $data;
}
//添加聚合订单记录BIZ_JuheOrderList
public function add_jh_order($data){
$sql="IF NOT EXISTS(
SELECT TOP 1 1 FROM BIZ_JuheOrderList
WHERE JOL_COLD_SN=? AND JOL_JuheOrder=?
)
INSERT INTO BIZ_JuheOrderList(
JOL_SubTime,
JOL_COLD_SN,
JOL_JuheOrder,
JOL_Status,
JOL_RebackMsg,
JOL_FromStation,
JOL_ToStation,
JOL_FromStationCode,
JOL_ToStationCode,
JOL_TrainCode,
JOL_BackTxt
)
VALUES(getdate(),?,?,?,?,?,?,?,?,?,?)
ELSE UPDATE BIZ_JuheOrderList
SET
JOL_SubTime=getdate(),
JOL_JuheOrder=?,
JOL_Status=?,
JOL_RebackMsg=?,
JOL_FromStation=?,
JOL_ToStation=?,
JOL_FromStationCode=?,
JOL_ToStationCode=?,
JOL_TrainCode=?,
JOL_BackTxt=?
WHERE
JOL_COLD_SN=?
";
$query = $this->HT->query($sql, array($data->JOL_COLD_SN,$data->JOL_JuheOrder,$data->JOL_COLD_SN,$data->JOL_JuheOrder,$data->JOL_Status,$data->JOL_RebackMsg,$data->JOL_FromStation,$data->JOL_ToStation,$data->JOL_FromStationCode,$data->JOL_ToStationCode,$data->JOL_TrainCode,$data->JOL_BackTxt,
$data->JOL_JuheOrder,$data->JOL_Status,$data->JOL_RebackMsg,$data->JOL_FromStation,$data->JOL_ToStation,$data->JOL_FromStationCode,$data->JOL_ToStationCode,$data->JOL_TrainCode,$data->JOL_BackTxt,$data->JOL_COLD_SN));
return $query;
}
public function update_jh_order($data){
$sql="UPDATE BIZ_JuheOrderList
SET JOL_RebackMsg=?,
JOL_BackTxt=?,
JOL_Status=?,
JOL_Price=?
WHERE
JOL_JuheOrder=?
";
$query = $this->HT->query($sql,array($data->JOL_RebackMsg,$data->JOL_BackTxt,$data->JOL_Status,$data->JOL_Price,$data->JOL_JuheOrder));
return $query;
}
//BIZ_TrainOrderCost,我的支付
//BIZ_FlightsOrderInfo.FOI_TrainNetOrderNo,更新取票号
public function add_train_order($data){
//主表ID下面两个地方用到所以先筛选出来不知道能不能通过合并提高效率
$sql="SELECT COLD_COLI_SN FROM BIZ_ConfirmLineDetail WHERE COLD_SN=?";
$query=$this->HT->query($sql,$data->TOC_COLD_SN);
$query=$query->result();
$CCSN=$query[0]->COLD_COLI_SN;
if(empty($data->FOI_TrainNetOrderNo)){
//退票
$sql="IF NOT EXISTS(
SELECT TOP 1 1 FROM BIZ_TrainOrderCost
WHERE TOC_COLD_SN = ? AND TOC_Memo like ?
)
INSERT INTO BIZ_TrainOrderCost(
TOC_Memo,
TOC_CreateDate,
TOC_COLI_SN,
TOC_COLD_SN,
TOC_TrainNumber,
TOC_DepartureDate,
TOC_TicketCost,
TOC_WL
)
VALUES(?,getdate(),{$CCSN},?,?,?,?,(SELECT COLI_OPI_ID FROM BIZ_ConfirmLineInfo WHERE COLI_SN={$CCSN}))";
$query = $this->HT->query($sql,array($data->TOC_COLD_SN,"%".$data->TOC_Memo."%","聚合退票费 ".$data->TOC_Memo,$data->TOC_COLD_SN,$data->TOC_TrainNumber,$data->TOC_DepartureDate,$data->TOC_TicketCost));
}else{
//出票
//BIZ_FlightsOrderInfo.FOI_TrainNetOrderNo,更新取票号
$sql="UPDATE BIZ_FlightsOrderInfo
SET
FOI_TrainNetOrderNo=?
WHERE
FOI_COLD_SN=?";
$this->HT->query($sql,array($data->FOI_TrainNetOrderNo,$data->TOC_COLD_SN));
$sql="IF NOT EXISTS(
SELECT TOP 1 1 FROM BIZ_TrainOrderCost
WHERE TOC_COLD_SN = ? AND TOC_Memo like ?
)
INSERT INTO BIZ_TrainOrderCost(
TOC_Memo,
TOC_CreateDate,
TOC_COLI_SN,
TOC_COLD_SN,
TOC_TrainNumber,
TOC_DepartureDate,
TOC_TicketCost,
TOC_WL,
TOC_OtherCost
)
VALUES(?,getdate(),{$CCSN},?,?,?,?,(SELECT COLI_OPI_ID FROM BIZ_ConfirmLineInfo WHERE COLI_SN={$CCSN}),null),(?,getdate(),{$CCSN},?,?,?,?,(SELECT COLI_OPI_ID FROM BIZ_ConfirmLineInfo WHERE COLI_SN={$CCSN}),1)";
$query = $this->HT->query($sql,array($data->TOC_COLD_SN,"%".$data->TOC_Memo."%",$data->TOC_Memo." 聚合自动出票",$data->TOC_COLD_SN,$data->TOC_TrainNumber,$data->TOC_DepartureDate,$data->TOC_TicketCost,$data->TOC_Memo." 手续费",$data->TOC_COLD_SN,$data->TOC_TrainNumber,$data->TOC_DepartureDate,$data->poundage));
}
return $query;
}
public function get_order($pagesize=2,$page=0,$where="1=1"){
$data=new StdClass();
//获取总条数
$sql="SELECT COUNT(*) AS count FROM BIZ_JuheOrderList
LEFT JOIN
BIZ_ConfirmLineInfo
ON
BIZ_ConfirmLineInfo.COLI_SN=(SELECT COLD_COLI_SN FROM BIZ_ConfirmLineDetail WHERE COLD_SN=BIZ_JuheOrderList.JOL_COLD_SN)
WHERE
{$where}
";
$query = $this->HT->query($sql);
$count=$query->result();
$data->count=$count[0]->count;
$sql="SELECT TOP {$pagesize} BIZ_JuheOrderList.JOL_SubTime,
BIZ_JuheOrderList.JOL_COLD_SN,
BIZ_JuheOrderList.JOL_JuheOrder,
BIZ_JuheOrderList.JOL_Status,
BIZ_JuheOrderList.JOL_RebackMsg,
BIZ_JuheOrderList.JOL_FromStation,
BIZ_JuheOrderList.JOL_ToStation,
BIZ_JuheOrderList.JOL_TrainCode,
BIZ_JuheOrderList.JOL_Price,
BIZ_ConfirmLineInfo.COLI_ID
FROM
BIZ_JuheOrderList
LEFT JOIN
BIZ_ConfirmLineInfo
ON
BIZ_ConfirmLineInfo.COLI_SN=(SELECT COLD_COLI_SN FROM BIZ_ConfirmLineDetail WHERE COLD_SN=BIZ_JuheOrderList.JOL_COLD_SN)
WHERE
BIZ_JuheOrderList.JOL_SN NOT IN(SELECT TOP {$page} BIZ_JuheOrderList.JOL_SN FROM BIZ_JuheOrderList ORDER BY BIZ_JuheOrderList.JOL_SubTime DESC)
AND
{$where}
ORDER BY BIZ_JuheOrderList.JOL_SubTime DESC";
$query = $this->HT->query($sql);
$data->list=$query->result();
return $data;
}
//外联
public function get_wl($select="*",$where="1=1"){
// $sql="SELECT COLI_OPI_ID FROM BIZ_ConfirmLineInfo bcli WHERE bcli.COLI_ID=?";
$sql="SELECT {$select} FROM OperatorInfo WHERE {$where}";
}
//获取火车订票的相应信息
public function get_ht_order($order=""){
$sql="SELECT COLD_SN
FROM BIZ_ConfirmLineDetail bcld
WHERE bcld.COLD_COLI_SN=(
SELECT COLI_SN FROM BIZ_ConfirmLineInfo bcli WHERE bcli.COLI_ID=?)
AND bcld.DeleteFlag=0 AND bcld.COLD_ServiceType='2'";
$query = $this->HT->query($sql,$order);
$cold_sn=$query->result();
$data=new StdClass();
if(!empty($cold_sn)){
// $cold_sn_str="";
$i=0;
foreach ($cold_sn as $value) {
// $cold_sn_str.=",".$value->COLD_SN;
//乘客信息
$sql="SELECT BPE_FirstName,BPE_MiddleName,BPE_LastName,BPE_GuestType,BPE_Passport
FROM BIZ_BookPeople
WHERE BPE_SN IN (
SELECT BPL_BPE_SN FROM BIZ_BookPeopleList WHERE BPL_COLD_SN = ".$value->COLD_SN."
)";
$query=$this->HT->query($sql,$order);
$data->info[$i]->people=$query->result();
//火车订票信息
$sql="SELECT * FROM BIZ_FlightsOrderInfo WHERE FOI_COLD_SN = ".$value->COLD_SN;
$query = $this->HT->query($sql);
$data->info[$i]->train=$query->result();
//BIZ_JuheOrderList是否有JOL_COLD_SN记录 ,返回1已提交过
$sql="SELECT JOL_SN FROM BIZ_JuheOrderList WHERE JOL_COLD_SN=".$value->COLD_SN;
$query = $this->HT->query($sql);
$o=$query->result();
if(!empty($o)){
$data->info[$i]->status=1;
}else{
$data->info[$i]->status=0;
}
// $data->info[$i]->status= $query->result();
$i++;
}
// $cold_sn_str=substr($cold_sn_str, 1);
//火车订票信息
// $sql="SELECT * FROM BIZ_FlightsOrderInfo WHERE FOI_COLD_SN IN(".$cold_sn_str.")";
// $query = $this->HT->query($sql);
// $data->train=$query->result();
$sql="SELECT OPI_Name FROM OperatorInfo WHERE OPI_SN=(SELECT COLI_OPI_ID FROM BIZ_ConfirmLineInfo bcli WHERE bcli.COLI_ID=?)";
$query = $this->HT->query($sql,$order);
$data->wl=$query->result();
}
return $data;
}
/*以下为get_ht_order优化代码*/
//传入主订单翰特订单号COLI_ID161014006M获取子订单中火车订单的COLD_SN
public function get_biz_cold($order){
$sql="SELECT COLD_SN
FROM BIZ_ConfirmLineDetail bcld
WHERE bcld.COLD_COLI_SN=(
SELECT COLI_SN FROM BIZ_ConfirmLineInfo bcli WHERE bcli.COLI_ID=?)
AND bcld.DeleteFlag=0 AND bcld.COLD_ServiceType='2'";
$query = $this->HT->query($sql,$order);
return $query->result();
}
//传入子订单COLD_SN获取子订单对应的乘客信息
public function get_biz_people($cold_sn){
$sql="SELECT BPE_FirstName,BPE_MiddleName,BPE_LastName,BPE_GuestType,BPE_Passport
FROM BIZ_BookPeople
WHERE BPE_SN IN (
SELECT BPL_BPE_SN FROM BIZ_BookPeopleList WHERE BPL_COLD_SN = ?
)";
$query=$this->HT->query($sql,$cold_sn);
return $query->result();
}
//传入COLD_SN获取火车车次等信息
public function get_biz_foi($cold_sn){
$sql="SELECT FOI_COLD_SN,
FlightsNo,
Cabin,
DepartureCity,
ArrivalCity,
DepartureDate,
DepartureTime,
ArrivalTime,
adultcost
FROM BIZ_FlightsOrderInfo WHERE FOI_COLD_SN = ?";
$query = $this->HT->query($sql,$cold_sn);
return $query->result();
}
//传入COLD_SN获取BIZ_JuheOrderList是否存在此子订单用来判断是否提交过给聚合
public function get_biz_jol($cold_sn){
$sql="SELECT top 1 JOL_SN FROM BIZ_JuheOrderList WHERE JOL_COLD_SN= ?";
$query = $this->HT->query($sql,$cold_sn);
return $query->result();
}
//传入COLI_ID获取外联名
public function get_operatorinfo($order){
$sql="SELECT OPI_Name FROM OperatorInfo WHERE OPI_SN=(SELECT COLI_OPI_ID FROM BIZ_ConfirmLineInfo bcli WHERE bcli.COLI_ID=?)";
$query = $this->HT->query($sql,$order);
return $query->result();
}
/*以上为get_ht_order优化代码*/
}

@ -0,0 +1,80 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Sendmail_model extends CI_Model {
function __construct()
{
parent::__construct();
$this->HT = $this->load->database('HT', TRUE);
}
function SendMailToTable($fromName,$fromEmail,$toName,$toEmail,$subject,$body)
{
if($this->validEmail($toEmail))
{
$data = array(
"M_ReplyToName" => $fromName, //回复人
"M_ReplyToEmail" => $fromEmail, //回复地址
"M_ToName" => $toName, //收件人名
"M_ToEmail" => $toEmail, //收件邮件地址
"M_Title" => $subject, //主题
"M_Body" => $body, //邮件正文
"M_Web" => "CHT", //所属站点
"M_FromName" => "Chinahighlights.com", //站点名称
"M_State" => 0,
);
$this->HT->insert('Email_AutomaticSend',$data);
return TRUE;
}else{
return FALSE;
}
}
public function validEmail($email){
$isValid = true;
$atIndex = strrpos($email, "@");
if (is_bool($atIndex) && !$atIndex){
$isValid = false;
}else{
$domain = substr($email, $atIndex+1);
$local = substr($email, 0, $atIndex);
$localLen = strlen($local);
$domainLen = strlen($domain);
if ($localLen < 1 || $localLen > 64){
// local part length exceeded
$isValid = false;
}else if ($domainLen < 1 || $domainLen > 255){
// domain part length exceeded
$isValid = false;
}else if ($local[0] == '.' || $local[$localLen-1] == '.'){
// local part starts or ends with '.'
$isValid = false;
}else if (preg_match('/\\.\\./', $local)){
// local part has two consecutive dots
$isValid = false;
}else if (!preg_match('/^[A-Za-z0-9\\-\\.]+$/', $domain)){
// character not valid in domain part
$isValid = false;
}else if (preg_match('/\\.\\./', $domain)){
// domain part has two consecutive dots
$isValid = false;
}else if(!preg_match('/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\'*+?^{}|~.-])+$/',str_replace("\\\\","",$local))){
// character not valid in local part unless
// local part is quoted
if (!preg_match('/^"(\\\\"|[^"])+"$/',str_replace("\\\\","",$local))){
$isValid = false;
}
}
/*
不检查是否有DNS解析
if ($isValid && !(checkdnsrr($domain,"MX") || checkdnsrr($domain,"A"))){
// domain not found in DNS
$isValid = false;
}
*/
}
return $isValid;
}
}

@ -0,0 +1,160 @@
<div style="width:90%;margin:30px auto;">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">列车信息</h3>
</div>
<div class="panel-body">
<p><?php echo $date;?> <?php echo $train_code;?> <?php echo $from_station_name;?>站(<?php echo $start_time;?>开)到<?php echo $to_station_name;?>站(<?php echo $arrive_time;?>到)</p>
<p style="border-top:1px dashed #000; height:1px">
<p>
<?php if($swz_num){echo "商务座(¥{$swz_price})".$swz_num."张票&nbsp;&nbsp;&nbsp;";}?>
<?php if($tdz_num){echo "特等座(¥{$tdz_price})&nbsp;&nbsp;".$tdz_num."张票&nbsp;&nbsp;&nbsp;";}?>
<?php if($ydz_num){echo "一等座(¥{$ydz_price})&nbsp;&nbsp;".$ydz_num."张票&nbsp;&nbsp;&nbsp;";}?>
<?php if($edz_num){echo "二等座(¥{$edz_price})&nbsp;&nbsp;".$edz_num."张票&nbsp;&nbsp;&nbsp;";}?>
<?php if($gjrw_num){echo "高级软卧(¥{$gjrw_price})&nbsp;&nbsp;".$gjrw_num."张票&nbsp;&nbsp;&nbsp;";}?>
<?php if($rw_num){echo "软卧(¥{$rw_price})&nbsp;&nbsp;".$rw_num."张票&nbsp;&nbsp;&nbsp;";}?>
<?php if($yw_num){echo "硬卧(¥{$yw_price})&nbsp;&nbsp;".$yw_num."张票&nbsp;&nbsp;&nbsp;";}?>
<?php if($rz_num){echo "软座(¥{$rz_price})&nbsp;&nbsp;".$rz_num."张票&nbsp;&nbsp;&nbsp;";}?>
<?php if($yz_num){echo "硬座(¥{$yz_price})&nbsp;&nbsp;".$yz_num."张票&nbsp;&nbsp;&nbsp;";}?>
<?php if($wz_num){echo "无座(¥{$wz_price})&nbsp;&nbsp;".$wz_num."张票&nbsp;&nbsp;&nbsp;";}?>
</p>
</div>
</div>
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">乘客信息</h3>
</div>
<div class="panel-body">
<form action="booking_do" method="post">
<input type="hidden" name="train_code" value="<?php echo $train_code;?>" />
<input type="hidden" name="from_station_code" value="<?php echo $from_station_code;?>" />
<input type="hidden" name="from_station_name" value="<?php echo $from_station_name;?>" />
<input type="hidden" name="to_station_code" value="<?php echo $to_station_code;?>" />
<input type="hidden" name="to_station_name" value="<?php echo $to_station_name;?>" />
<input type="hidden" name="date" value="<?php echo $date;?>" />
<div class="table-responsive">
<table class="table table-bordered" id="back_table">
<thead>
<tr>
<!-- <th>序号</th> -->
<th>席别</th>
<th>票种</th>
<th>姓名</th>
<th>证件类型</th>
<th>证件号码</th>
<th>手机号码</th>
<th>删除</th>
</tr>
</thead>
<tbody>
<tr id="rowTemplete_0">
<!-- <td>1</td> -->
<td>
<select name="zw[]" id="">
<?php if($swz_num){echo "<option value='swz_{$swz_price}'>商务座</option>";}?>
<?php if($tdz_num){echo "<option value='tdz_{$tdz_price}'>特等座</option>";}?>
<?php if($ydz_num){echo "<option value='ydz_{$ydz_price}'>一等座</option>";}?>
<?php if($edz_num){echo "<option value='edz_{$edz_price}'>二等座</option>";}?>
<?php if($gjrw_num){echo "<option value='gjrw_{$gjrw_price}'>高级软卧</option>";}?>
<?php if($rw_num){echo "<option value='rw_{$rw_price}'>软卧</option>";}?>
<?php if($yw_num){echo "<option value='yw_{$yw_price}'>硬卧</option>";}?>
<?php if($rz_num){echo "<option value='rz_{$rz_price}'>软座</option>";}?>
<?php if($yz_num){echo "<option value='yz_{$yz_price}'>硬座</option>";}?>
<?php if($wz_num){echo "<option value='wz_{$wz_price}'>无座(这个有些问题)</option>";}?>
</select>
</td>
<td>
<select name="piaotype[]" id="">
<option value="cr">成人票</option>
<option value="et">儿童票</option>
<option value="xs">学生票</option>
<option value="cz">残军票</option>
</select>
</td>
<td>
<input type="text" name="passengersename[]" />
</td>
<td>
<select name="passportty[]" id="">
<option value="ed">二代身份证</option>
<option value="yd">一代身份证</option>
<option value="hz">护照</option>
<option value="ga">港澳通行证</option>
<option value="tw">台湾通行证</option>
</select>
</td>
<td>
<input type="text" name="passportseno[]" />
</td>
<td>
<input type="text" name="mobile[]" />
</td>
<td>
<a href='javascript:void(0);' onclick='deleteBatchRow(this)' class="btn btn-warning btn-sm" style="border-radius: 3px;" ><span class="glyphicon glyphicon-remove"></span></a>
</td>
</tr>
</tbody>
</table>
</div>
<button type="button" id="add" class="btn btn-success btn-sm"><span class="glyphicon glyphicon-plus"></span>增加乘客</button>
<p style="border-top:1px dashed #000; height:1px;margin-top:10px;" ></p>
<div style="text-align:center;">
<button type="submit" id="sub" class="btn btn-warning btn-sm"><span class="glyphicon glyphicon-ok"></span>提交订单</button>
</div>
</form>
</div>
</div>
</div>
<script>
//记录添加行数
var areaCount=1;
//记录实际表格行数
var rowCount=1;
//删除模板html
var delRowTemplete = "<td><a href='javascript:void(0);' class='content_del' onclick='deleteBatchRow(this)'>删除</a></td>";
//表格行模板
var addRowTemplete= "";
$(function(){
//首先取出需要克隆的模板,模板行<tr>id为rowTemplete_0
addRowTemplete= $("#rowTemplete_0").html();
});
//增加行
function addBatchRow(type){
if(rowCount>4){
alert("一次最多填写五位乘客");
return false;
}
var templete = $("<tr id='rowTemplete_"+areaCount+"'></tr>");
//递增序号替换掉tr或者td中存在[0]、_0或者(0)防止id相同,这么设计主要是为了后台取值时方便
templete = templete.append(addRowTemplete.replace(/\[0\]/g,"["+areaCount+"]").replace(/_0/g,"_"+areaCount).replace("processStat(\"0\")","processStat("+areaCount+")").replace(/1/g,rowCount+1));
//找到最后一条存在的行,在其后拼接一行
var flag = false;
for(var i=areaCount-1;i>=0;i--){
if($("#rowTemplete_"+i).length>0){
$("#rowTemplete_"+i).after(templete);
break;
}
}
//计数加一
areaCount++; rowCount++;
}
//删除行
function deleteBatchRow(obj){
if(rowCount>1) {
$(obj).parents("tr").remove();
rowCount--;
} else alert("至少保留一行");//如果全部删除了,那么也就没有办法再添加行了,模板行也被删了呀
}
//取得条数
function getAreaCount(){
return rowCount;
}
$("#add").click(function(){
addBatchRow();
});
</script>

@ -0,0 +1,110 @@
<thead>
<tr><th>车次</th><th>出发地->目的地</th><th>时间</th><th>历时</th><th>商务座</th><th>特等座</th><th>一等座</th><th>二等座</th><th>高级软卧</th><th>软卧</th><th>硬卧</th><th>软座</th><th>硬座</th><th>无座</th><th>预定</th></tr>
</thead>
<tbody>
<?php
foreach ($result["list"] as $v) {
switch ($v["arrive_days"]) {
case '0':
$arrive_days = "当天到达";
break;
case '1':
$arrive_days = "次日达到";
break;
case '2':
$arrive_days = "两日到达";
break;
case '3':
$arrive_days = "三日到达";
break;
case '4':
$arrive_days = "四日到达";
break;
case '5':
$arrive_days = "五日到达";
break;
case '6':
$arrive_days = "六日到达";
break;
case '7':
$arrive_days = "七日到达";
break;
default:
$arrive_days = "超过七天到达";
break;
}
$zwxx = ""; //座位信息
if (is_numeric($v['swz_num'])) {
$zwxx.="&swz_num=" . $v['swz_num'];
$zwxx.="&swz_price=" . $v['swz_price'];
}
if (is_numeric($v['tdz_num'])) {
$zwxx.="&tdz_num=" . $v['tdz_num'];
$zwxx.="&tdz_price=" . $v['tdz_price'];
}
if (is_numeric($v['ydz_num'])) {
$zwxx.="&ydz_num=" . $v['ydz_num'];
$zwxx.="&ydz_price=" . $v['ydz_price'];
}
if (is_numeric($v['edz_num'])) {
$zwxx.="&edz_num=" . $v['edz_num'];
$zwxx.="&edz_price=" . $v['edz_price'];
}
if (is_numeric($v['gjrw_num'])) {
$zwxx.="&gjrw_num=" . $v['gjrw_num'];
$zwxx.="&gjrw_price=" . $v['gjrw_price'];
}
if (is_numeric($v['rw_num'])) {
$zwxx.="&rw_num=" . $v['rw_num'];
$zwxx.="&rw_price=" . $v['rw_price'];
}
if (is_numeric($v['yw_num'])) {
$zwxx.="&yw_num=" . $v['yw_num'];
$zwxx.="&yw_price=" . $v['yw_price'];
}
if (is_numeric($v['rz_num'])) {
$zwxx.="&rz_num=" . $v['rz_num'];
$zwxx.="&rz_price=" . $v['rz_price'];
}
if (is_numeric($v['yz_num'])) {
$zwxx.="&yz_num=" . $v['yz_num'];
$zwxx.="&yz_price=" . $v['yz_price'];
}
if (is_numeric($v['wz_num'])) {
$zwxx.="&wz_num=" . $v['wz_num'];
$zwxx.="&wz_price=" . $v['wz_price'];
}
?>
<tr>
<td rowspan="2" style="vertical-align:middle;"><?php echo $v['train_code']; ?></td>
<td rowspan="2" style="vertical-align:middle;"><?php echo $v['from_station_name']; ?>-><?php echo $v['to_station_name']; ?></td>
<td rowspan="2" style="vertical-align:middle;"><?php echo $v['start_time']; ?>~<?php echo $v['arrive_time']; ?></td>
<td style="vertical-align:middle;"><?php echo $v['run_time']; ?></td>
<td><?php echo $v['swz_num']; ?></td>
<td><?php echo $v['tdz_num']; ?></td>
<td><?php echo $v['ydz_num']; ?></td>
<td><?php echo $v['edz_num']; ?></td>
<td><?php echo $v['gjrw_num']; ?></td>
<td><?php echo $v['rw_num']; ?></td>
<td><?php echo $v['yw_num']; ?></td>
<td><?php echo $v['rz_num']; ?></td>
<td><?php echo $v['yz_num']; ?></td>
<td><?php echo $v['wz_num']; ?></td>
<td rowspan="2" style="vertical-align:middle;"><a target="_blank" class="btn btn-primary btn-sm" href="<?php echo site_url("/apps/train/index/booking?from_station_code={$v['from_station_code']}&from_station_name={$v['from_station_name']}&to_station_code={$v['to_station_code']}&to_station_name={$v['to_station_name']}&train_code={$v['train_code']}&date={$date}&start_time={$v['start_time']}&arrive_time={$v['arrive_time']}{$zwxx}"); ?>">预定</a></td>
</tr>
<tr>
<td><?php echo $arrive_days; ?></td>
<td style="color:red;"><?php echo $v['swz_price']; ?></td>
<td style="color:red;"><?php echo $v['tdz_price']; ?></td>
<td style="color:red;"><?php echo $v['ydz_price']; ?></td>
<td style="color:red;"><?php echo $v['edz_price']; ?></td>
<td style="color:red;"><?php echo $v['gjrw_price']; ?></td>
<td style="color:red;"><?php echo $v['rw_price']; ?></td>
<td style="color:red;"><?php echo $v['yw_price']; ?></td>
<td style="color:red;"><?php echo $v['rz_price']; ?></td>
<td style="color:red;"><?php echo $v['yz_price']; ?></td>
<td style="color:red;"><?php echo $v['wz_price']; ?></td>
</tr>
<?php } ?>
</tbody>

@ -0,0 +1,202 @@
<div style="width:90%;margin:30px auto;">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">订单号</h3>
</div>
<div class="panel-body">
<form action="" method="post">
<input type="text" name="order" value="<?php echo isset($order_id)?$order_id:""; ?>">
<button type="submit" id="sub" class="btn btn-warning btn-sm"><span class="glyphicon glyphicon-download-alt"></span> 获取信息</button>
</form>
</div>
</div>
<form action="booking_do" method="post">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">列车信息</h3>
</div>
<div class="panel-body">
<table class="table table-bordered" id="back_table">
<thead>
<tr><th>车次</th><th>出发站简码</th><th>出发站名称</th><th>目的站简码</th><th>目的站名称</th><th>日期</th></tr>
</thead>
<tbody>
<tr>
<td><input type="text" name="train_booking_train_code" value="<?php if(!empty($order->cold[0])){echo $order->cold[0]->COLD_ServiceSN;}?>" placeholder="如D5631" /></td>
<td><input type="text" name="train_booking_from_station_code" value="" placeholder="如GLZ" /></td>
<td><input type="text" name="train_booking_from_station_name" value="<?php if(!empty($order->cold[0])){echo $order->cold[0]->COLD_LeaveCity;}?>" placeholder="如:桂林" /></td>
<td><input type="text" name="train_booking_to_station_code" value="" placeholder="如GBZ" /></td>
<td><input type="text" name="train_booking_to_station_name" value="<?php if(!empty($order->cold[0])){echo $order->cold[0]->COLD_ServiceCity;}?>" placeholder="如:桂林北" /></td>
<td><input type="text" name="train_booking_date" value="<?php if(!empty($order->cold[0])){echo date("Y-m-d",strtotime($order->cold[0]->COLD_StartDate)) ;}?>" placeholder="如2016-09-07" /></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">乘客信息</h3>
</div>
<div class="panel-body">
<div class="table-responsive">
<table class="table table-bordered" id="back_table">
<thead>
<tr>
<!-- <th>序号</th> -->
<th>席别</th>
<th>票种</th>
<th>姓名</th>
<th>证件类型</th>
<th>证件号码</th>
<th>删除</th>
</tr>
</thead>
<tbody>
<?php if(!empty($order)):?>
<?php $num=0; foreach ($order->people as $v):?>
<tr id="rowTemplete_<?php echo $num++;?>">
<!-- <td>1</td> -->
<td>
<select name="train_booking_zw[]" id="">
<?php foreach ($code_zw as $key => $value):?>
<option value="<?php echo $key;?>"><?php echo $value;?></option>
<?php endforeach;?>
</select>
</td>
<td>
<select name="train_booking_piaotype[]" id="">
<?php foreach ($piaotype as $key => $value):?>
<option value="<?php echo $key;?>" <?php if($key==$v->BPE_GuestType){echo "selected";}?>><?php echo $value;?></option>
<?php endforeach;?>
</select>
</td>
<td>
<input type="text" value="<?php echo $v->BPE_FirstName.' '.$v->BPE_LastName;?>" name="train_booking_passengersename[]" />
</td>
<td>
<select name="train_booking_passportty[]" id="">
<?php foreach ($passportty as $key => $value):?>
<option value="<?php echo $key;?>"><?php echo $value;?></option>
<?php endforeach;?>
</select>
</td>
<td>
<input type="text" value="<?php echo $v->BPE_Passport;?>" name="train_booking_passportseno[]" />
</td>
<td>
<a href='javascript:void(0);' onclick='deleteBatchRow(this)' class="btn btn-warning btn-sm" style="border-radius: 3px;" ><span class="glyphicon glyphicon-remove"></span></a>
</td>
</tr>
<?php endforeach?>
<?php else:?>
<tr id="rowTemplete_0">
<!-- <td>1</td> -->
<td>
<select name="train_booking_zw[]" id="">
<?php foreach ($code_zw as $key => $value):?>
<option value="<?php echo $key;?>"><?php echo $value;?></option>
<?php endforeach;?>
</select>
</td>
<td>
<select name="train_booking_piaotype[]" id="">
<?php foreach ($piaotype as $key => $value):?>
<option value="<?php echo $key;?>"><?php echo $value;?></option>
<?php endforeach;?>
</select>
</td>
<td>
<input type="text" name="train_booking_passengersename[]" />
</td>
<td>
<select name="train_booking_passportty[]" id="">
<?php foreach ($passportty as $key => $value):?>
<option value="<?php echo $key;?>"><?php echo $value;?></option>
<?php endforeach;?>
</select>
</td>
<td>
<input type="text" name="train_booking_passportseno[]" />
</td>
<td>
<input type="text" name="train_booking_mobile[]" />
</td>
<td>
<a href='javascript:void(0);' onclick='deleteBatchRow(this)' class="btn btn-warning btn-sm" style="border-radius: 3px;" ><span class="glyphicon glyphicon-remove"></span></a>
</td>
</tr>
<?php endif;?>
</tbody>
</table>
</div>
<button type="button" id="add" class="btn btn-success btn-sm"><span class="glyphicon glyphicon-plus"></span>增加乘客</button>
<p style="border-top:1px dashed #000; height:1px;margin-top:10px;" ></p>
<div style="text-align:center;">
<button type="submit" id="sub" class="btn btn-warning btn-sm"><span class="glyphicon glyphicon-ok"></span>提交订单</button>
</div>
</div>
</div>
</form>
</div>
<script>
//记录添加行数
var areaCount=<?php echo $order?count($order->people):1?>;;
//记录实际表格行数
var rowCount=<?php echo $order?count($order->people):1?>;
//删除模板html
var delRowTemplete = "<td><a href='javascript:void(0);' class='content_del' onclick='deleteBatchRow(this)'>删除</a></td>";
//表格行模板
var addRowTemplete= "";
$(function(){
//首先取出需要克隆的模板,模板行<tr>id为rowTemplete_0
addRowTemplete= $("#rowTemplete_0").html();
});
//增加行
function addBatchRow(type){
if(rowCount>4){
alert("一次最多填写五位乘客");
return false;
}
var templete = $("<tr id='rowTemplete_"+areaCount+"'></tr>");
//递增序号替换掉tr或者td中存在[0]、_0或者(0)防止id相同,这么设计主要是为了后台取值时方便
templete = templete.append(addRowTemplete.replace(/\[0\]/g,"["+areaCount+"]").replace(/_0/g,"_"+areaCount).replace("processStat(\"0\")","processStat("+areaCount+")").replace(/1111/g,rowCount+1));
//找到最后一条存在的行,在其后拼接一行
var flag = false;
for(var i=areaCount-1;i>=0;i--){
if($("#rowTemplete_"+i).length>0){
$("#rowTemplete_"+i).after(templete);
break;
}
}
//计数加一
areaCount++;
rowCount++;
}
//删除行
function deleteBatchRow(obj){
if(rowCount>1) {
$(obj).parents("tr").remove();
rowCount--;
} else
alert("至少保留一行");//如果全部删除了,那么也就没有办法再添加行了,模板行也被删了呀
}
//取得条数
function getAreaCount(){
return rowCount;
}
$("#add").click(function(){
addBatchRow();
});
// $("#test").blur(function(){
// alert();
// });
</script>

@ -0,0 +1,70 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
*{ font-family:Verdana, Geneva, sans-serif;}
h1{ font-size:18px; text-align:center; color:#545454; margin:0 0 10px 0!important;}
p{ font-size:14px; color:#545454; line-height:22px; margin-bottom:12px!important;}
table.table{ width:90%; border-width:1px 1px 0 1px; border-color:#d1d1d1; border-style: solid; margin-bottom:15px;}
table.table th{ background:#f1f1f1; color:#666; border-bottom:1px solid #d1d1d1; width:180px; font-size:14px; text-align:left; padding:8px 10px 8px 10px;}
table.table td{ padding:8px 0 8px 10px; border-bottom:1px solid #d1d1d1; font-size:14px; color:#545454;}
</style>
</head>
<body>
<h1>China Highlights Booking Confirmation</h1>
<p>Dear <?php echo $user[0]->GUT_LastName?>,</p>
<p>Thanks for payment US$145 . The train tickets have already been issued. </p>
<p> You can collect the paper ticket(s) from now at any train station in mainland China. </p>
<p> Please present all passenger(s) original passport(s) and Ticket Pick Up No.E601014106 &nbsp;at any ticket collecting counters (in Chinese 取票窗口)of any railway stations in mainland China. They will then issue your paper train ticket(s). </p>
<table border="0" cellpadding="0" cellspacing="0" class="table">
<tr>
<th>Passenger(s)</th>
<td><p>2 adult(s)
</p>
<p> 1. ALEXANDER JAMES JOHNSON , passport number 503406354<br />
2. SIAN MARIE JOHNSON , passport number 528876517</p></td>
</tr>
</table>
<p>Train 1:</p>
<table border="0" cellpadding="0" cellspacing="0" class="table">
<tr>
<th><strong>Ticket Pick Up No.</strong></th>
<td>E601014106&nbsp; </td>
</tr>
<tr>
<th><strong>Train No.</strong></th>
<td>Z19</td>
</tr>
<tr>
<th><strong>Departure</strong></th>
<td>20:40 Jun.06 Beijing Xi (West) Station(in Chinese 北京西火车站)</td>
</tr>
<tr>
<th><strong>Arrival</strong></th>
<td>08:31AM Jun.07 Xi'an Station(in Chinese 西安火车站) </td>
</tr>
<tr>
<th><strong>Class</strong></th>
<td>Soft Sleeper </td>
</tr>
</table>
<p>Kindly note below:</p>
<p> 1. The same passport that was used for booking should also be used for ticket collection. A renewed passport won't be acceptable even if the holder is the same person. The system does not allow us to change passport number or passenger name after issue ticket. Have to issue new ticket if wrong passport number or name.</p>
<p> 2. There is no further fee if collect train ticket(s) at the DEPARTURE station shown on your ticket(s). RMB 5 per ticket will be charged at a ticket counter at other stations. E.g. if you have booked Beijing-Shanghai and Shanghai-Beijing ticket(s), and you collect them all at Beijing, you will be charged RMB 5 per ticket for the Shanghai-Beijing ticket(s), but if you pick up the return leg ticket(s) separately in Shanghai you will avoid the charge.</p>
<p> 3. On departure day, please time your arrival wisely. If you are going to collect your tickets on departure day, we suggest you be at the station at least 1.5 hours ahead of the stated departure time to allow for waiting in queue at the ticket-counter, for security checks and for ticket checks.<br />
If you&rsquo;ve already collected before the departure day, it is also wise to be at the station at least 40 minutes ahead. </p>
<p> 4. Download railway station instructions, maps and tips at <a href="http://www.chinahighlights.com/china-trains/station-map.htm">http://www.chinahighlights.com/china-trains/station-map.htm</a> <br />
<br />
5.Terms &amp; Conditions. <a href="http://www.chinahighlights.com/china-trains/booking-policy.htm">http://www.chinahighlights.com/china-trains/booking-policy.htm</a></p>
<p> Best Regards!<br />
Iris Wang, Travel Advisor<br />
Tel: +86-773-2801368 &nbsp;Mobile:+86-18775900313 <br />
Fax: 86-773-2827424, 86-773-2885308 <br />
E-mail: <a href="mailto:iris@chinahighlights.me">iris@chinahighlights.me</a><br />
<a href="http://www.chinahighlights.com">www.chinahighlights.com</a> <br />
Address: Building 6, Chuangyi Business Park, 70 Qilidian Road, Guilin, Guangxi, 541004, China<br />
If you wish to share anything with my supervisor (Ms. Alex Yang), please feel free to send your email to <a href="mailto:alex@chinahighlights.net">alex@chinahighlights.net</a>. </p>
</body>
</html>

@ -0,0 +1,110 @@
<div style="width:90%;margin:30px auto;">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">交易记录导出&nbsp;<a style="margin-left:50px;" target='_blank' href="<?php echo site_url('apps/train/index/ht_order_list');?>">订单列表>></a> </h3>
</div>
<div class="panel-body">
<form style="width: 80%;" action="" method="post">
<input type="text" name="from_date" class="date" value="<?php echo empty($from_date)?"":$from_date;?>">
<input type="text" name="to_date" class="date" value="<?php echo empty($to_date)?"":$to_date;?>">
审核状态:<input type="checkbox" <?php echo empty($examine)?"":"checked";?> name="examine" />&nbsp;&nbsp;&nbsp;
<button type="submit" id="sub" class="btn btn-warning btn-sm"><span class="glyphicon glyphicon-download-alt"></span> Download</button>
</form>
<p style="margin: 0 0 10px; width: 200px; float: left; line-height: 30px;">
<!-- <table class="table table-hover" >
<thead>
<tr><th>时间</th><th>信息</th><th>变化值</th><th>团名</th><th>外联</th></tr>
</thead>
<tbody>
<tr data-id="161130252" title="Popover title" data-container="body" data-toggle="popover" data-placement="top" data-content="顶部的 Popover 中的一些内容">
<td>2016-12-01 11:18:28</td>
<td> 票款(有充值)</td>
<td>-1106.00</td>
<td>R161228-BYW161130252</td>
<td>李毅文</td>
</tr>
</tbody>
</table> -->
<div class="row <?php echo empty($examine)?"hidden":"";?>" style="width:90%;margin:0 auto;">
<div class="">
<table class="table table-hover" id="list_table">
<thead>
<tr><th>时间</th><th>信息</th><th>变化值</th><th>团名</th><th>外联</th></tr>
</thead>
<tbody>
<?php foreach ($data as $key => $value) {?>
<tr data-id="<?php echo $value[8];?>" title="Popover title" data-container="body" data-toggle="popover" data-placement="top" data-content="顶部的 Popover 中的一些内容">
<td><?php echo $value[2];?></td><td><?php echo $value[3];?></td><td><?php echo $value[1];?></td><td><?php echo $value[6];?></td><td><?php echo $value[7];?></td>
</tr>
<?php }?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<div class="popover fade top in" role="tooltip" id="popover" style="width:auto;max-width: 100% !important;top: 139.6px; left: 50%; display: none;">
<div class="arrow"></div>
<h3 class="popover-title">我的支付</h3>
<div class="popover-content">
<table class="table" id="my_pay_data">
<thead>
<tr>
<td>序号</td><td>车次</td><td>出发日期</td><td>价格</td><td>备注</td>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
<script>
$(".date").datepicker({
'format': 'yyyy-m-d',
'autoclose': true
});
$("body").click(function(){
$("#popover").css("display","none");
});
$("#popover").click(function(e){
e.stopPropagation();//阻止事件冒泡防止点击这个div也被隐藏
});
var popover_top=0;
var tr="";
$("#list_table>tbody>tr").click(function(e){
e.stopPropagation();
popover_top=$(this).offset().top-$("#popover").height();
var this_id=$(this).attr("data-id");
var THIS=$(this);
url="<?php echo site_url('apps/train/index/get_ht_my_pay?').'id=';?>"+this_id;
$.ajax({
url:url,
beforeSend:function(data){
// $("#popover").css("top",popover_top);
// $("#popover").css("display","block");
},
success:function(data){
tr="";
if(data.status==1){
$.each(data.datas,function(n,value){
tr+="<tr><td>"+(n+1)+"</td><td>"+value["TOC_TrainNumber"]+"</td><td>"+value["TOC_DepartureDate"]+"</td><td>"+value["TOC_TicketCost"]+"</td><td>"+value["TOC_Memo"]+"</td></tr>";
});
}
$("#my_pay_data>tbody").html(tr);
popover_top=THIS.offset().top-$("#popover").height();
$("#popover").css("top",popover_top);
$("#popover").css("display","block");
},
dataType: "json",
});
});
</script>

@ -0,0 +1,59 @@
<div style="width:90%;margin:30px auto;">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">订单搜索</h3>
</div>
<div class="panel-body">
<div class="row">
<form style="" action="" method="get">
<div class="col-md-6">
<input class="form-control" type="text" placeholder="汉特订单号或聚合订单号" name="order" value="<?php echo !empty($order)?"$order":"";?>">
</div>
<div class="col-md-5">
<button type="submit" id="sub" class="btn btn-success btn-sm"><span class="glyphicon glyphicon-search"></span> 搜索</button>
</div>
</form>
</div>
</div>
</div>
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">订单列表</h3>
</div>
<div class="panel-body">
<table class="table table-striped" style="text-align:center;">
<thead>
<tr>
<th style="text-align:center;">序号</th>
<th style="text-align:center;">汉特订单号</th>
<th style="text-align:center;">聚合订单号</th>
<th style="text-align:center;">车次</th>
<th style="text-align:center;">出发</th>
<th style="text-align:center;">到达</th>
<th style="text-align:center;">状态</th>
<th style="text-align:center;">价格</th>
<th style="text-align:center;">提交时间</th>
<th style="text-align:center;">操作</th>
</tr>
</thead>
<tbody>
<?php $num=0; foreach($data as $v):?>
<tr>
<td><?php echo ++$num;?></td>
<td><?php echo $v->COLI_ID;?></td>
<td><?php echo $v->JOL_JuheOrder;?></td>
<td><?php echo $v->JOL_TrainCode;?></td>
<td><?php echo $v->JOL_FromStation;?></td>
<td><?php echo $v->JOL_ToStation;?></td>
<td><?php echo $v->info;?></td>
<td><?php echo $v->JOL_Price;?></td>
<td><?php echo $v->JOL_SubTime;?></td>
<td><a target="_blank" href="order?order=<?php echo $v->JOL_JuheOrder;?>">详情</a></td>
</tr>
<?php endforeach;?>
</tbody>
</table>
<div style="text-align:right;"><ul class="pagination"><?php echo $page_link;?></ul></div>
</div>
</div>
</div>

@ -0,0 +1,112 @@
<div style="width:90%;margin:30px auto;">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">翰特订单号&nbsp;<a style="margin-left:50px;" target='_blank' href="<?php echo site_url('apps/train/index/ht_order_list');?>">订单列表>></a></h3>
</div>
<div class="panel-body">
<form style="width: 300px;float: left;" action="" method="post">
<input type="text" name="ht_order" value="<?php echo isset($cols_id)?$cols_id:""; ?>">
<button type="submit" id="sub" class="btn btn-warning btn-sm"><span class="glyphicon glyphicon-download-alt"></span> 获取信息</button>
</form>
<p style="margin: 0 0 10px; width: 200px; float: left; line-height: 30px;">外联:<span><?php if(!empty($wl)){echo $wl[0]->OPI_Name;}?></span></p>
</div>
</div>
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">火车订单信息</h3>
</div>
<div class="panel-body">
<?php if(!empty($info)):?>
<?php $num=1; foreach($info as $v):?>
<table class="table table-bordered table-hover" style="text-align:center;">
<thead>
<tr>
<th style="text-align:center;">序号</th>
<th style="text-align:center;">车次</th>
<th style="text-align:center;">座位</th>
<th style="text-align:center;">出发城市</th>
<th style="text-align:center;">抵达城市</th>
<th style="text-align:center;">发车日期</th>
<th style="text-align:center;">发车时间</th>
<th style="text-align:center;">抵达时间</th>
<th style="text-align:center;">票价</th>
<th style="text-align:center;">是否提交过</th>
<th style="text-align:center;">操作</th>
</tr>
</thead>
<tbody>
<tr>
<td><?php echo $num++;?></td>
<td><?php echo $v->train[0]->FlightsNo;?></td>
<td><?php echo $v->train[0]->Cabin;?></td>
<td><?php echo $v->train[0]->DepartureCity;?></td>
<td><?php echo $v->train[0]->ArrivalCity;?></td>
<td><?php echo $v->train[0]->DepartureDate;?></td>
<td><?php echo $v->train[0]->DepartureTime;?></td>
<td><?php echo $v->train[0]->ArrivalTime;?></td>
<td><?php echo $v->train[0]->adultcost;?></td>
<td><?php echo !empty($v->status)?"<span style='color:red;'>是</span>":"否";?></td>
<td><a class="pay_api" href="javascript:;" data-order="<?php echo $v->train[0]->FOI_COLD_SN;?>" >订票</a></td>
</tr>
<tr>
<td colspan="11">
<table class="table table-condensed table-bordered">
<thead>
<tr>
<th style="text-align:center;">姓名</th>
<th style="text-align:center;">护照</th>
<th style="text-align:center;">年龄类型</th>
</tr>
</thead>
<tbody>
<?php foreach($v->people as $p): ?>
<tr>
<td><?php echo $p->BPE_FirstName." ".$p->BPE_MiddleName." ".$p->BPE_LastName;?></td>
<td><?php echo $p->BPE_Passport;?></td>
<td><?php echo $p->BPE_GuestType==1?"成人":($p->BPE_GuestType==2?"儿童":"婴儿");?></td>
</tr>
<?php endforeach;?>
<tr id="back_<?php echo $v->train[0]->FOI_COLD_SN;?>" style="display:none;">
<td colspan="3">
处理结果:<span style="color:red;"></span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<?php endforeach;endif;?>
</div>
</div>
</div>
<script>
var url="<?php echo site_url('apps/train/index/submit_juhe_order?').'order=';?>";
var order_ul="<?php echo site_url('apps/train/index/order?').'order=';?>";//订单详情页面
$(".pay_api").click(function(){
// alert(url+$(this).attr("data-order"));
var THIS=$(this);
var order=$(this).attr("data-order");
$.get(
url+$(this).attr("data-order"),
function(data){
// alert("#back_"+order);
if(data.status==1){
THIS.parent().html("<a href='"+order_ul+data.order+"' target='_blank'>详情</a>");
}
$("#back_"+order+" span").html(data.mes);
$("#back_"+order).show();
},
'json'
);
return false;
});
</script>

@ -0,0 +1,169 @@
<div style="width:90%;margin:30px auto;">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">翰特订单号&nbsp;<a style="margin-left:50px;" target='_blank' href="<?php echo site_url('apps/train/index/ht_order_list');?>">订单列表>></a><a style="margin-left:50px;" target='_blank' href="<?php echo site_url('apps/train/index/export');?>">导出交易记录>></a> <span style="margin-left:200px;">版本V2.0</span><span class="pull-right">聚合余额(RMB)<?php echo $balance;?></span></h3>
</div>
<div class="panel-body">
<form style="width: 300px;float: left;" action="" method="post">
<input type="text" name="ht_order" value="<?php echo isset($cols_id)?$cols_id:""; ?>">
<button type="submit" id="sub" class="btn btn-warning btn-sm"><span class="glyphicon glyphicon-download-alt"></span> 获取信息</button>
</form>
<p style="margin: 0 0 10px; width: 200px; float: left; line-height: 30px;">外联:<span><?php if(!empty($wl)){echo $wl[0]->OPI_Name;}?></span></p>
</div>
</div>
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">火车订单信息</h3>
</div>
<div class="panel-body">
<?php if(!empty($info)):?>
<?php $num=1; foreach($info as $v):?>
<table class="table table-bordered table-hover" style="text-align:center;">
<thead>
<tr>
<th style="text-align:center;">序号</th>
<th style="text-align:center;">车次</th>
<th style="text-align:center;">座位</th>
<th style="text-align:center;">出发城市</th>
<th style="text-align:center;">抵达城市</th>
<th style="text-align:center;">发车日期</th>
<th style="text-align:center;">发车时间</th>
<th style="text-align:center;">抵达时间</th>
<th style="text-align:center;">票价</th>
<th style="text-align:center;">是否提交过</th>
<th style="text-align:center;">操作</th>
</tr>
</thead>
<tbody>
<tr>
<td><?php echo $num++;?></td>
<td><?php echo $v->train[0]->FlightsNo;?></td>
<td><?php echo $v->train[0]->Cabin;?></td>
<td><?php echo $v->train[0]->DepartureCity;?></td>
<td><?php echo $v->train[0]->ArrivalCity;?></td>
<td><?php echo $v->train[0]->DepartureDate;?></td>
<td><?php echo $v->train[0]->DepartureTime;?></td>
<td><?php echo $v->train[0]->ArrivalTime;?></td>
<td><?php echo $v->train[0]->adultcost;?></td>
<td><?php echo !empty($v->status)?"<span style='color:red;'>是</span>":"否";?></td>
<td><button type="button" class="btn btn-success pay_api" data-order="<?php echo $v->train[0]->FOI_COLD_SN;?>" title="超过五个乘客不可用" >快捷订票</button></td>
</tr>
<tr>
<td colspan="11">
<table class="table table-condensed table-bordered">
<thead>
<tr>
<th style="text-align:center;"><input class="check_people" type="checkbox" /></th>
<th style="text-align:center;">序号</th>
<th style="text-align:center;">姓名</th>
<th style="text-align:center;">护照</th>
<th style="text-align:center;">年龄类型</th>
</tr>
</thead>
<tbody>
<?php foreach($v->people as $key=>$p): ?>
<tr>
<td><input name="" type="checkbox" value="<?php echo $p->BPE_SN;?>" /></td>
<td><?php echo $key+1;?></td>
<td class="people_name"><?php echo $p->BPE_FirstName." ".$p->BPE_MiddleName." ".$p->BPE_LastName;?></td>
<td><?php echo $p->BPE_Passport;?></td>
<td><?php echo $p->BPE_GuestType==1?"成人":($p->BPE_GuestType==2?"儿童":"婴儿");?></td>
</tr>
<?php endforeach;?>
<tr style="text-align:;">
<td>
<button type="button" class="btn btn-success checked_pay" data-order="<?php echo $v->train[0]->FOI_COLD_SN;?>">订票</button>
</td>
<td colspan="4" class="biaoqian"><span class="back_mes" style="color:red;line-height: 30px;"></span>
</td>
</tr>
<tr id="back_<?php echo $v->train[0]->FOI_COLD_SN;?>" style="display:none;">
<td colspan="5">
快捷订票处理结果:<span style="color:red;"></span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<?php endforeach;endif;?>
</div>
</div>
</div>
<script>
var url="<?php echo site_url('apps/train/index/submit_juhe_order?').'order=';?>";
var order_ul="<?php echo site_url('apps/train/index/order?').'order=';?>";//订单详情页面
$(".pay_api").click(function(){
// alert(url+$(this).attr("data-order"));
var THIS=$(this);
var order=$(this).attr("data-order");
$.ajax({
url:url+$(this).attr("data-order"),
beforeSend:function(data){
THIS.html("处理中...");
THIS.attr("disabled","disabled")
},
success:function(data){
THIS.removeAttr("disabled");
THIS.html("快捷订票");
if(data.status==1){
THIS.parent().html("<a href='"+order_ul+data.order+"' target='_blank'>订单详情</a>");
}
$("#back_"+order+" span").html(data.mes);
$("#back_"+order).show();
},
dataType: "json",
});
return false;
});
$(".check_people").click(function(){
if($(this).is(":checked")){
$(this).parent().parent().parent().parent().find("input[type=checkbox]").attr("checked","checked");
}else{
$(this).parent().parent().parent().parent().find("input[type=checkbox]").removeAttr("checked");
}
});
$(".checked_pay").click(function(){
var url2="<?php echo site_url('apps/train/index/get_sn_submit_juhe?').'order=';?>";
var checkbox=$(this).parent().parent().parent().find(":checked");
var people_sn="";
checkbox.each(function(i){
people_sn+=","+$(this).val();
});
people_sn=people_sn.substring(1);
url2+=$(this).attr("data-order")+"&people="+people_sn;
var THIS=$(this);
THIS.parent().parent().find(".back_mes").html(" ");//清空提示
$.ajax({
url:url2,
beforeSend:function(data){
THIS.html("处理中...");
THIS.attr("disabled","disabled")
},
success:function(data){
THIS.removeAttr("disabled");
THIS.html("订票");
THIS.parent().parent().find(".back_mes").html(data.mes);
},
dataType: "json",
});
return false;
});
</script>

@ -0,0 +1,51 @@
<div style="width:90%;margin:30px auto;">
<div class="panel panel-primary" style="width:60%;margin:0 auto;">
<div class="panel-heading">
<h3 class="panel-title"><?php echo $result["train_date"];?>&nbsp;&nbsp;&nbsp;&nbsp;<?php echo $result["checi"];?>&nbsp;&nbsp;&nbsp;&nbsp;<?php echo isset($result["ordernumber"])?$result["ordernumber"]:"";?></h3>
</div>
<div class="panel-body">
<?php if((int)$result["status"]>1):?>
<p><?php echo $result["from_station_name"];?><span class="glyphicon glyphicon-arrow-right"></span><?php echo $result["to_station_name"];?></p>
<?php foreach ($result["passengers"] as $v):?>
<p style="border-top:1px dashed #000; height:1px;margin-top:10px;" ></p>
<p><?php echo @$v["passengersename"]."({$v['piaotypename']})&nbsp;&nbsp;&nbsp;&nbsp;{$v['zwname']}&nbsp;&nbsp;{$v['cxin']}&nbsp;&nbsp;&nbsp;&nbsp;票价:¥{$v['price']}";?></p>
<?php endforeach;?>
<?php if((int)$result["status"]===2):?>
<p style="border-top:1px dashed #000; height:1px;margin-top:10px;" ></p>
<p>占座成功,请在:<?php echo date("Y-m-d H:i:s",strtotime($result["deal_time"])+30*60);?> 前付款,超时将失效</p>
<?php if((strtotime($result["deal_time"])+30*60)<time()):?>
<p style="border-top:1px dashed #000; height:1px;margin-top:10px;" ></p>
<p style="text-align:center;color:red;">订单已超时失效</p>
<?php else:?>
<p style="border-top:1px dashed #000; height:1px;margin-top:10px;" ></p>
<p style="text-align:center;"><a href="cancel_order?order=<?php echo $result['orderid']?>" style="padding:5px 15px;" class="btn btn-warning btn-sm"><span class="glyphicon glyphicon-remove"></span>取消订单</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="pay?order=<?php echo $result['orderid']?>" style="padding:5px 15px;" class="btn btn-success btn-sm">¥支付</a></p>
<?php endif;?>
<?php endif;?>
<?php if((int)$result["status"]===4):?>
<p style="border-top:1px dashed #000; height:1px;margin-top:10px;" ></p>
<p>出票成功</p>
<p style="border-top:1px dashed #000; height:1px;margin-top:10px;" ></p>
<p style="text-align:center;"><a href="refund?order=<?php echo $result['orderid']?>" style="padding:5px 15px;" class="btn btn-warning btn-sm">前往退票 <span class="glyphicon glyphicon-forward"></span></a></p>
<?php endif;?>
<?php if((int)$result["status"]===6):?>
<p style="border-top:1px dashed #000; height:1px;margin-top:10px;" ></p>
<p>正在处理退票</p>
<p style="text-align:center;"><a href="refund?order=<?php echo $result['orderid']?>" style="padding:5px 15px;" class="btn btn-warning btn-sm">查看详情 <span class="glyphicon glyphicon-forward"></span></a></p>
<?php endif;?>
<?php if((int)$result["status"]===7):?>
<p style="border-top:1px dashed #000; height:1px;margin-top:10px;" ></p>
<p><?php echo $result["msg"];?></p>
<p style="text-align:center;"><a href="refund?order=<?php echo $result['orderid']?>" style="padding:5px 15px;" class="btn btn-warning btn-sm">查看详情 <span class="glyphicon glyphicon-forward"></span></a></p>
<?php endif;?>
<?php else:?>
<p><?php echo $result["msg"];?></p>
<?php endif;?>
</div>
</div>
</div>

@ -0,0 +1,39 @@
<div style="width:90%;margin:30px auto;">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">订单列表</h3>
</div>
<div class="panel-body">
<table class="table table-striped" style="text-align:center;">
<thead>
<tr>
<th style="text-align:center;">序号</th>
<th style="text-align:center;">订单号</th>
<th style="text-align:center;">车次</th>
<th style="text-align:center;">出发</th>
<th style="text-align:center;">到达</th>
<th style="text-align:center;">状态</th>
<th style="text-align:center;">金额</th>
<th style="text-align:center;">提交时间</th>
<th style="text-align:center;">操作</th>
</tr>
</thead>
<tbody>
<?php $num=0; foreach($data as $v):?>
<tr>
<td><?php echo ++$num;?></td>
<td><?php echo $v["order_num"];?></td>
<td><?php echo $v["train_code"];?></td>
<td><?php echo $v["from_station"];?></td>
<td><?php echo $v["to_station"];?></td>
<td><?php echo $v["info"];?></td>
<td><?php echo $v["price"];?></td>
<td><?php echo date("Y-m-d H:i:s",$v["sub_time"]);?></td>
<td><a target="_blank" href="order?order=<?php echo $v['order_num']?>">详情</a></td>
</tr>
<?php endforeach;?>
</tbody>
</table>
</div>
</div>
</div>

@ -0,0 +1,41 @@
<div style="width:90%;margin:30px auto;">
<div class="panel panel-primary" style="width:60%;margin:0 auto;">
<div class="panel-heading">
<h3 class="panel-title"><?php echo $result["train_date"];?>&nbsp;&nbsp;&nbsp;&nbsp;<?php echo $result["checi"];?>&nbsp;&nbsp;&nbsp;&nbsp;<?php echo isset($result["ordernumber"])?$result["ordernumber"]:"";?></h3>
</div>
<div class="panel-body">
<?php if((int)$result["status"]>1):?>
<p><?php echo $result["from_station_name"];?><span class="glyphicon glyphicon-arrow-right"></span><?php echo $result["to_station_name"];?></p>
<?php foreach ($result["passengers"] as $v):?>
<p style="border-top:1px dashed #000; height:1px;margin-top:10px;" ></p>
<p><?php echo @$v["passengersename"]."({$v['piaotypename']})&nbsp;&nbsp;&nbsp;&nbsp;{$v['zwname']}&nbsp;&nbsp;{$v['cxin']}&nbsp;&nbsp;&nbsp;&nbsp;票价:¥{$v['price']}";?></p>
<?php if(empty($v["refundTimeline"])){?>
<p>
<a href="refund_do?order=<?php echo $result['orderid']?>&name=<?php echo $v['passengersename']?>&passportseno=<?php echo $v['passportseno']?>&passporttypeseid=<?php echo $v['passporttypeseid']?>&ticket_no=<?php echo $v['ticket_no']?>" style="padding:5px 15px;" class="btn btn-warning btn-sm"><span class="glyphicon glyphicon-remove"></span>退票
</a>
</p>
<?php }else{?>
<p>
<table class="table table-bordered table-hover" style="text-align:center;">
<tr>
<th colspan="2" style="text-align:center;">退票处理</th>
</tr>
<?php foreach ($v["refundTimeline"] as $v_refund) {?>
<tr>
<td><?php echo $v_refund["time"]?></td>
<td><?php echo $v_refund["msg"]?></td>
</tr>
<?php }?>
</table>
</p>
<?php }?>
<?php endforeach;?>
<?php else:?>
<p><?php echo $result["msg"];?></p>
<?php endif;?>
</div>
</div>
</div>

@ -0,0 +1,62 @@
<div>
<div>火车票查询</div>
<div>
<form class="form-horizontal" role="form">
<div class="form-group">
<label class="col-sm-2 control-label" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;" id="">出发地:</label>
<div class="col-sm-4">
<input type="text" id="from" class="form-control" placeholder="如:桂林">
</div>
<label class="col-sm-2 control-label" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;">目的地:</label>
<div class="col-sm-4">
<input type="text" id="to" class="form-control" placeholder="如:桂林北">
</div>
<label for="inputEmail3" class="col-sm-2 control-label" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;">时间:</label>
<div class="col-sm-4">
<input type="text" id="date" class="form-control" placeholder="2016-09-05">
</div>
<button id="sub" type="button" class="btn btn-primary btn-sm">查询</button>
</div>
</form>
</div>
<div class="table-responsive" style="text-align: center;">
<table class="table table-bordered" id="back_table" style="">
</table>
<img id="loading" src="/bootstrap/img/loading.gif" style="display:none;margin:0 auto;" alt="">
</div>
</div>
<script>
var url='<?php echo site_url()."/apps/train/index/search";?>';
$("#sub").click(function(){
$("#loading").css("display","block");alert();
// $("#back_table").css("display","none");
$("#back_table").hide();
var from=$("#from").val();
var to=$("#to").val();
var date=$("#date").val();
$.post(url,
{
'from':from,
'to':to,
'date':date,
},
function(data){
$("#loading").css("display","none");
if(data.status===1){
// $("#back_table").css("display","block");
$("#back_table").show();
$("#back_table").html(data.backdata);
}else{
alert(data.mes);
}
},
'json');
});
</script>

@ -0,0 +1,3 @@
移植注意事项:
1、需要设置消息推送
2、添加相应的数据表

@ -46,13 +46,15 @@ class Tuniu_train extends CI_Controller{
"data": { "trainDate": "'.$date.'", "fromStation": "'.$fromStation.'", "toStation": "'.$toStation.'", "trainCode": "" }
}';
$back_data = post_tuniu($url,$post_data,$method = 'POST');
//print_r(json_decode($back_data));
print_r(json_decode($back_data));
$return_data = new stdClass();
$return_data->returnCode = json_decode($back_data)->returnCode;
echo $return_data->returnCode;
$return_data->httpstatus = 200;
$return_data->data = new stdClass();
$return_data->data->result = array();
$return_data->data->map = new stdClass();
$obj = array();
$i = 0;
$pricestr = '';
if(!empty(json_decode($back_data)->data)){
@ -132,7 +134,7 @@ class Tuniu_train extends CI_Controller{
}
}
$return_data->data->map = (object)$obj;
print_r(json_encode($return_data));
print_r($return_data);
}
//获取价格

Loading…
Cancel
Save