From 6486a067a36a00c9260d0279549514a1b4d87568 Mon Sep 17 00:00:00 2001 From: cyc Date: Fri, 15 Sep 2017 10:07:50 +0800 Subject: [PATCH 1/9] LMR --- .../third_party/train/controllers/search.php | 4 +- .../third_party/train_it/config/config.php | 88 ++ .../third_party/train_it/controllers/auto.php | 385 ++++++ .../train_it/controllers/index.php | 1216 +++++++++++++++++ .../train_it/controllers/search.php | 168 +++ .../train_it/controllers/ticket.php | 92 ++ .../train_it/models/BIZ_train_model.php | 328 +++++ .../third_party/train_it/models/api_model.php | 21 + .../train_it/models/order_people_model.php | 327 +++++ .../train_it/models/sendmail_model.php | 80 ++ .../third_party/train_it/views/booking.php | 160 +++ .../train_it/views/booking_table.php | 110 ++ .../train_it/views/booking_write.php | 202 +++ .../third_party/train_it/views/email.php | 70 + .../third_party/train_it/views/export.php | 110 ++ .../train_it/views/ht_order_list.html | 59 + .../train_it/views/ht_train_order.html | 112 ++ .../train_it/views/ht_train_order_info.php | 169 +++ .../third_party/train_it/views/order.php | 51 + .../train_it/views/order_list.html | 39 + .../third_party/train_it/views/refund.php | 41 + .../third_party/train_it/views/welcome.php | 62 + .../train_it/移植注意事项.txt | 3 + .../tuniu/controllers/tuniu_train.php | 6 +- 24 files changed, 3899 insertions(+), 4 deletions(-) create mode 100644 application/third_party/train_it/config/config.php create mode 100644 application/third_party/train_it/controllers/auto.php create mode 100644 application/third_party/train_it/controllers/index.php create mode 100644 application/third_party/train_it/controllers/search.php create mode 100644 application/third_party/train_it/controllers/ticket.php create mode 100644 application/third_party/train_it/models/BIZ_train_model.php create mode 100644 application/third_party/train_it/models/api_model.php create mode 100644 application/third_party/train_it/models/order_people_model.php create mode 100644 application/third_party/train_it/models/sendmail_model.php create mode 100644 application/third_party/train_it/views/booking.php create mode 100644 application/third_party/train_it/views/booking_table.php create mode 100644 application/third_party/train_it/views/booking_write.php create mode 100644 application/third_party/train_it/views/email.php create mode 100644 application/third_party/train_it/views/export.php create mode 100644 application/third_party/train_it/views/ht_order_list.html create mode 100644 application/third_party/train_it/views/ht_train_order.html create mode 100644 application/third_party/train_it/views/ht_train_order_info.php create mode 100644 application/third_party/train_it/views/order.php create mode 100644 application/third_party/train_it/views/order_list.html create mode 100644 application/third_party/train_it/views/refund.php create mode 100644 application/third_party/train_it/views/welcome.php create mode 100644 application/third_party/train_it/移植注意事项.txt diff --git a/application/third_party/train/controllers/search.php b/application/third_party/train/controllers/search.php index dee7bf9d..52bc70fe 100644 --- a/application/third_party/train/controllers/search.php +++ b/application/third_party/train/controllers/search.php @@ -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); } //获取价格 diff --git a/application/third_party/train_it/config/config.php b/application/third_party/train_it/config/config.php new file mode 100644 index 00000000..573d5514 --- /dev/null +++ b/application/third_party/train_it/config/config.php @@ -0,0 +1,88 @@ +"待处理", + "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"=>"台湾通行证" + ); \ No newline at end of file diff --git a/application/third_party/train_it/controllers/auto.php b/application/third_party/train_it/controllers/auto.php new file mode 100644 index 00000000..a6d1dff4 --- /dev/null +++ b/application/third_party/train_it/controllers/auto.php @@ -0,0 +1,385 @@ +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; + } + +} \ No newline at end of file diff --git a/application/third_party/train_it/controllers/index.php b/application/third_party/train_it/controllers/index.php new file mode 100644 index 00000000..04074e90 --- /dev/null +++ b/application/third_party/train_it/controllers/index.php @@ -0,0 +1,1216 @@ +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->balance_api = "http://op.juhe.cn/trainTickets/balance.php";//余额 + $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");//加载模型 + } + public function index() + { + $this->ht_train_order_info(); + + // $this->load->view('bootstrap3/header'); + // $this->load->view('welcome'); + // $this->load->view('bootstrap3/footer'); + } + public function welcome(){ + $this->load->view('bootstrap3/header'); + $this->load->view('welcome'); + $this->load->view('bootstrap3/footer'); + } + public function export_bk(){ + $from_date=$this->input->post("from_date"); + $to_date=$this->input->post("to_date"); + if(!empty($from_date) && !empty($to_date)){ + $from_date=date("Y-m-d H:i",strtotime($from_date)); + $to_date=date("Y-m-d H:i",strtotime($to_date)); + $r="";//聚合返回的数据 + $string_r="";//写入excel表格数据 + $coli_id=""; + $wl_name=""; + $arr="";//整合完成的数组 + $url=JUHE_TRAIN_EXPORT_API;//请求的url + $url.="?key=".$this->key; + $url.="&since=".$from_date; + $url.="&before=".$to_date; + $r=$this->get_data($url); + // $r=mb_convert_encoding($r, "utf-8", "gb2312"); + $r=explode("\n",$r); + $excel_head='"记录编号","时间","火车票订单号","最新余额","信息","变化值","翰特订单号","外联"'; + $excel_head=mb_convert_encoding($excel_head,"gbk","utf-8"); + $string_r=$excel_head; + for($i=1;$iBIZ_train_model->jh_order_get_coli_id($juhe_order); + if($coli_id){ + $r_info[6]=$coli_id[0]->COLI_ID; + $wl_name = $this->BIZ_train_model->get_operatorinfo($r_info[6]); + $r_info[7]=mb_convert_encoding($wl_name[0]->OPI_Name, "gbk", "utf-8"); + // $r_info[7]=$wl_name[0]->OPI_Name; + }else{ + $r_info[6]=""; + $r_info[7]=""; + } + $r_info[3]=mb_convert_encoding($r_info[3],"utf-8","gbk"); + + if(is_numeric(mb_strpos($r_info[3],"扣款"))){ + $r_info[3]="票款"; + } + if(is_numeric(mb_strpos($r_info[3],"扣手续费"))){ + $r_info[3]="手续费"; + } + if(is_numeric(mb_strpos($r_info[3],"线上退票成功"))){ + $r_info[3]="退票费"; + } + $r_info[3]=mb_convert_encoding($r_info[3],"gbk","utf-8"); + $arr[]=$r_info; + } + $ht_order_sort = array(); + $wl_name_sort = array(); + foreach ($arr as $a) { + $wl_name_sort[] = $a[7]; + } + foreach ($arr as $a) { + $ht_order_sort[] = $a[6]; + } + array_multisort($wl_name_sort, $ht_order_sort,SORT_ASC, SORT_STRING, $arr); + foreach ($arr as $a) { + $ht_order_sort[] = $a[6]; + $string_r.="\n"."$a[0],$a[2],$a[4],$a[5],$a[3],$a[1]".',"'.$a[6].'"'.',"'.$a[7].'"'; + } + $string_r=mb_convert_encoding($string_r,"utf-8","gbk"); + header("Content-type:application/vnd.ms-excel"); + header("Content-Disposition:attachment;filename=juhe_train.csv"); + echo $string_r;die; + } + $this->load->view('bootstrap3/header'); + $this->load->view('export'); + $this->load->view('bootstrap3/footer'); + } + public function export(){ + $from_date=$this->input->post("from_date"); + $to_date=$this->input->post("to_date"); + $examine=$this->input->post("examine"); + $reback=array();//返回的数据 + $reback["from_date"]=$from_date; + $reback["to_date"]=$to_date; + $reback["examine"]=$examine; + if(!empty($from_date) && !empty($to_date)){ + $from_date=date("Y-m-d H:i",strtotime($from_date)); + $to_date=date("Y-m-d H:i",strtotime($to_date)); + $r="";//聚合返回的数据 + $string_r="";//输出 + $coli_id=""; + $wl_name=""; + $arr="";//整合完成的数组,写进excel表的数据 + $url=JUHE_TRAIN_EXPORT_API;//请求的url + $url.="?key=".$this->key; + $url.="&since=".$from_date; + $url.="&before=".$to_date; + $r=$this->get_data($url); + $r=explode("\n",$r); + for($i=1;$iBIZ_train_model->jh_order_get_coli_id($juhe_order); + //去掉数据两边的双引号 + $r_info[2]=substr($r_info[2], stripos($r_info[2],'"')+1,strrpos($r_info[2],'"')-1); + $r_info[1]=substr($r_info[1], stripos($r_info[1],'"')+1,strrpos($r_info[1],'"')-1); + $r_info[5]=substr($r_info[5], stripos($r_info[5],'"')+1,strrpos($r_info[5],'"')-1); + $r_info[6]="";//储存团名 + $r_info[7] = "";//储存外联名 + $r_info[8] = "";//储存coli_id + if($coli_id){ + $r_info[8] = $coli_id[0]->COLI_ID; + $gri_no=$this->BIZ_train_model->get_gri_no($r_info[8]);//团名 + $wl_name = $this->BIZ_train_model->get_operatorinfo($r_info[8]); + + if($gri_no){ + $r_info[6] = $gri_no[0]->GRI_No; + } + if($wl_name){ + $r_info[7] = $wl_name[0]->OPI_Name; + } + } + $r_info[3]=mb_convert_encoding($r_info[3],"utf-8","gbk"); + + if(is_numeric(mb_strpos($r_info[3],"充值"))){ + if(is_numeric(mb_strpos($r_info[3],"扣款"))){ + $r_info[3]="票款(有充值)"; + } + if(is_numeric(mb_strpos($r_info[3],"扣手续费"))){ + $r_info[3]="手续费(有充值)"; + } + if(is_numeric(mb_strpos($r_info[3],"线上退票成功"))){ + $r_info[3]="退票费(有充值)"; + } + } + if(is_numeric(mb_strpos($r_info[3],"扣款"))){ + $r_info[3]="票款"; + } + if(is_numeric(mb_strpos($r_info[3],"扣手续费"))){ + $r_info[3]="手续费"; + } + if(is_numeric(mb_strpos($r_info[3],"线上退票成功"))){ + $r_info[3]="退票费"; + } + // $r_info[3]=mb_convert_encoding($r_info[3],"gbk","utf-8"); + $arr[]=$r_info; + } + if(empty($examine)){ + header("Content-type:application/vnd.ms-excel"); + header("Content-Disposition:attachment;filename=juhe_train.xml"); + $string_r= $this->load->view("train_transaction_excel",array("arr"=>$arr),TRUE); + echo $string_r;die; + }else{ + krsort($arr);//数组倒序 + $reback["data"]=$arr; + } + + } + $this->load->view('bootstrap3/header'); + $this->load->view('export',$reback); + $this->load->view('bootstrap3/footer'); + } + //用于外联审核账单,查询我的支付信息 + public function get_ht_my_pay(){ + $coli_id=$this->input->get("id"); + $reback=array(); + $reback["status"]=0; + if(is_numeric($coli_id)){ + $r=$this->BIZ_train_model->get_train_order_cost($coli_id); + $reback["status"]=1; + $reback["datas"]=$r; + } + echo json_encode($reback); + return false; + } + public function search(){ + $from=$this->input->post("from"); + $to=$this->input->post("to"); + $date=$this->input->post("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"=>"站点名称错误"))); + } + } + public function ch_train_search(){ + $from=$this->input->get("from"); + $to=$this->input->get("to"); + $date=$this->input->get("date"); + $ticket_data=array("key"=>$this->key,"train_date"=>$date,"from_station"=>$from,"to_station"=>$to); + $ticket=$this->post_data("http://op.juhe.cn/trainTickets/ticketsAvailable",$ticket_data); + $ticket=json_decode($ticket); + } + public function ch_train_search_t(){ + + // $seat_key = array( + // 'A' => @$train_item->gr_num,//高级软卧 + // 'X' => @$train_item->qt_num,//其他 + // '4' => @$train_item->rw_num,//软卧 + // '2' => @$train_item->rz_num,//软座 + // 'P' => @$train_item->tz_num,//特等座 + // '13' => @$train_item->wz_num,//无座 + // '3' => @$train_item->yw_num,//硬卧 + // '1' => @$train_item->yz_num,//硬座 + // 'O' => @$train_item->ze_num,//二等座 + // 'M' => @$train_item->zy_num,//一等座 + // '9' => @$train_item->swz_num//商务座 + // ); + // $from=$this->input->post("from"); + // $to=$this->input->post("to"); + // $date=$this->input->post("date"); + $this->load->model("BIZ_train_model"); + //$code=$this->BIZ_train_model->get_train_station_code(array("TRS_StationCN"=>"北京南")); + //var_dump($code[0]->TRS_Code);die; + $from=$this->input->get("from_station"); + $to=$this->input->get("to_station"); + $date=$this->input->get("queryDate"); + + // $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"=>$from,"to_station"=>$to); + $ticket=$this->post_data("http://op.juhe.cn/trainTickets/ticketsAvailable",$ticket_data); + $ticket=json_decode($ticket); + // var_dump($ticket); + if($ticket->error_code==0){ + $reback='{"validateMessagesShowId":"_validatorMessage","status":true,"httpstatus":200,"data":{"datas":['; + $reback_list=""; + foreach ($ticket->result->list as $v) { + $seat_key="";//座位代码串 + $yp_info="";//价格 + // $seat_key.=$v->gjrw_price!=0?"A":""; + // $seat_key.=$v->qtxb_price!=0?"X":""; + // $seat_key.=$v->rw_price!=0?"4":""; + // $seat_key.=$v->rz_price!=0?"2":""; + // $seat_key.=$v->tdz_price!=0?"P":""; + // $seat_key.=$v->wz_price!=0?"13":""; + // $seat_key.=$v->yw_price!=0?"3":""; + // $seat_key.=$v->yz_price!=0?"1":""; + // $seat_key.=$v->edz_price!=0?"O":""; + // $seat_key.=$v->ydz_price!=0?"M":""; + // $seat_key.=$v->swz_price!=0?"9":""; + + if($v->gjrw_price!=0){ + $seat_key.= "A"; + $yp_info.="A".str_pad($v->gjrw_price,5,"0",STR_PAD_LEFT).str_pad($v->gjrw_num,4,"0",STR_PAD_LEFT); + } + if($v->qtxb_price!=0){ + $seat_key.= "X"; + $yp_info.="X".str_pad($v->qtxb_price,5,"0",STR_PAD_LEFT).str_pad($v->qtxb_num,4,"0",STR_PAD_LEFT); + } + if($v->rw_price!=0){ + $seat_key.= "4"; + $yp_info.="4".str_pad($v->rw_price,5,"0",STR_PAD_LEFT).str_pad($v->rw_num,4,"0",STR_PAD_LEFT); + } + if($v->rz_price!=0){ + $seat_key.= "2"; + $yp_info.="2".str_pad($v->rz_price,5,"0",STR_PAD_LEFT).str_pad($v->rz_num,4,"0",STR_PAD_LEFT); + } + if($v->tdz_price!=0){ + $seat_key.= "P"; + $yp_info.="P".str_pad($v->tdz_price,5,"0",STR_PAD_LEFT).str_pad($v->tdz_num,4,"0",STR_PAD_LEFT); + } + + if($v->yw_price!=0){ + $seat_key.= "3"; + $yp_info.="3".str_pad($v->yw_price,5,"0",STR_PAD_LEFT).str_pad($v->yw_num,4,"0",STR_PAD_LEFT); + } + if($v->yz_price!=0){ + $seat_key.= "1"; + $yp_info.="1".str_pad($v->yz_price,5,"0",STR_PAD_LEFT).str_pad($v->yz_num,4,"0",STR_PAD_LEFT); + } + if($v->edz_price!=0){ + $seat_key.= "O"; + $yp_info.="O".str_pad($v->edz_price,5,"0",STR_PAD_LEFT).str_pad($v->edz_num,4,"0",STR_PAD_LEFT); + } + if($v->ydz_price!=0){ + $seat_key.= "M"; + $yp_info.="M".str_pad($v->ydz_price,5,"0",STR_PAD_LEFT).str_pad($v->ydz_num,4,"0",STR_PAD_LEFT); + } + if($v->swz_price!=0){ + $seat_key.= "9"; + $yp_info.="9".str_pad($v->swz_price,5,"0",STR_PAD_LEFT).str_pad($v->swz_num,4,"0",STR_PAD_LEFT); + } + if($v->wz_price!=0){ + $seat_key.= "13"; + $yp_info.="1".str_pad($v->wz_price,5,"0",STR_PAD_LEFT)."3".str_pad($v->wz_num,3,"0",STR_PAD_LEFT); + }//无座数量3开头 + $start_station_telecode=$this->BIZ_train_model->get_train_station_code(array("TRS_StationCN"=>$v->start_station_name));//返回站点简码 + $end_station_telecode=$this->BIZ_train_model->get_train_station_code(array("TRS_StationCN"=>$v->end_station_name));//返回站点简码 + $reback_list.=',{"train_no":"'.$v->train_no.'","station_train_code":"'.$v->train_code.'","start_station_telecode":"'.$start_station_telecode[0]->TRS_Code.'","start_station_name":"'.$v->start_station_name.'","end_station_telecode":"'.$end_station_telecode[0]->TRS_Code.'","end_station_name":"'.$v->end_station_name.'","from_station_telecode":"'.$v->from_station_code.'","from_station_name":"'.$v->from_station_name.'","to_station_telecode":"'.$v->to_station_code.'","to_station_name":"'.$v->to_station_name.'","start_time":"'.$v->start_time.'","arrive_time":"'.$v->arrive_time.'","day_difference":"'.$v->arrive_days.'","train_class_name":"","lishi":"'.$v->run_time.'","canWebBuy":"Y","lishiValue":"'.$v->run_time_minute.'","yp_info":"'.$yp_info.'","control_train_day":"20301231","start_train_date":"'.$v->train_start_date.'","seat_feature":"O3M393","yp_ex":"O0M090","train_seat_feature":"3","seat_types":"'.$seat_key.'","location_code":"P2","from_station_no":"01","to_station_no":"11","control_day":29,"sale_time":"'.$v->sale_date_time.'","is_support_card":"1","note":"","controlled_train_flag":"0","controlled_train_message":"正常车次,不受控","gg_num":"--","gr_num":"'.$v->gjrw_num.'","qt_num":"'.$v->qtxb_num.'","rw_num":"'.$v->rw_num.'","rz_num":"'.$v->rz_num.'","tz_num":"'.$v->tdz_num.'","wz_num":"'.$v->wz_num.'","yb_num":"--","yw_num":"'.$v->yw_num.'","yz_num":"'.$v->yz_num.'","ze_num":"'.$v->edz_num.'","zy_num":"'.$v->ydz_num.'","swz_num":"'.$v->swz_num.'"}'; + } + + + } + $reback_list=substr($reback_list, 1);//去掉多于的, + $reback.=$reback_list.'],"flag":true,"searchDate":""},"messages":[],"validateMessages":{}}'; + echo($reback); + // 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"=>"站点名称错误"))); + //} + } + + public function booking(){ + $data['from_station_code']=$this->input->get("from_station_code"); + $data['from_station_name']=$this->input->get("from_station_name"); + $data['to_station_code']=$this->input->get("to_station_code"); + $data['to_station_name']=$this->input->get("to_station_name"); + $data['train_code']=$this->input->get("train_code"); + $data['date']=$this->input->get("date"); + $data['start_time']=$this->input->get("start_time"); + $data['arrive_time']=$this->input->get("arrive_time"); + + $data['swz_num']=$this->input->get("swz_num"); + $data['swz_price']=$this->input->get("swz_price"); + + $data['tdz_num']=$this->input->get("tdz_num"); + $data['tdz_price']=$this->input->get("tdz_price"); + + $data['ydz_num']=$this->input->get("ydz_num"); + $data['ydz_price']=$this->input->get("ydz_price"); + + $data['edz_num']=$this->input->get("edz_num"); + $data['edz_price']=$this->input->get("edz_price"); + + $data['gjrw_num']=$this->input->get("gjrw_num"); + $data['gjrw_price']=$this->input->get("gjrw_price"); + + $data['rw_num']=$this->input->get("rw_num"); + $data['rw_price']=$this->input->get("rw_price"); + + $data['yw_num']=$this->input->get("yw_num"); + $data['yw_price']=$this->input->get("yw_price"); + + $data['rz_num']=$this->input->get("rz_num"); + $data['rz_price']=$this->input->get("rz_price"); + + $data['yz_num']=$this->input->get("yz_num"); + $data['yz_price']=$this->input->get("yz_price"); + + $data['wz_num']=$this->input->get("wz_num"); + $data['wz_price']=$this->input->get("wz_price"); + + $this->load->view('bootstrap3/header'); + $this->load->view('booking',$data); + $this->load->view('bootstrap3/footer'); + } + //接收订单COLD_SN和客户BPE_SN 获取车次,乘客信息,拼接成聚合提交订单的url + public function get_sn_submit_juhe() { + $cold_sn=$this->input->get("order"); + $bpe_sn=$this->input->get("people"); + $data = array(); + $rebakc=array();//返回数据 + $rebakc["status"]=0; + $rebakc["mes"]=""; + if(!is_numeric($cold_sn)){ + $rebakc["mes"]="订单号是数字"; + echo json_encode($rebakc); + return false; + } + if(empty($bpe_sn)){ + $rebakc["mes"]="请选择乘客"; + echo json_encode($rebakc); + return false; + } + + $data['train'] = $this->BIZ_train_model->biz_order_detail($cold_sn); + $data['people_list']=$this->BIZ_train_model->in_bpesn_people_info($bpe_sn); + if (empty($data['train'])) { + //显示错误,找不到车次 + $rebakc["mes"]="找不到车次"; + echo json_encode($rebakc); + return false; + + } + if (empty($data['people_list'])) { + //显示错误,找不到用户信息 + $rebakc["mes"]="找不到乘客信息"; + echo json_encode($rebakc); + return false; + } + + if (count($data['people_list']) > 5) { + //显示错误,用户超过五个 + $rebakc["mes"]="乘客不能超过五个"; + echo json_encode($rebakc); + return false; + } + $db_train_zw = $this->config->item('db_train_zw'); + $train_zw = $this->config->item('train_zw'); + $zwcode = $db_train_zw[$data['train']->Aircraft]; //座位简码 + $zwname = $train_zw[$db_train_zw[$data['train']->Aircraft]]; //座位名称 + $passengers=""; + foreach ($data['people_list'] as $key => $item) { + + //乘客姓名 + $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; + $rebakc["status"]=1; + $rebakc["order"]=$bakc->result->orderid; + $rebakc["mes"]="订单提交成功,等待回调"; + }else{ + $add_data->JOL_JuheOrder=null; + $rebakc["mes"]= $bakc_json; + $add_data->JOL_Status="e"; + } + $add_back_data=$this->BIZ_train_model->add_biz_jol($add_data); + + echo json_encode($rebakc); + return false; + + } + //根据汉特订单明细表SN来获取车次,乘客信息,拼接成聚合提交订单的url + public function submit_juhe_order() { + $cold_sn=$this->input->get("order"); + $data = array(); + $rebakc=array();//返回数据 + $rebakc["status"]=0; + $rebakc["mes"]=""; + + if(!is_numeric($cold_sn)){ + $rebakc["mes"]="订单号是数字"; + echo json_encode($rebakc); + return false; + } + $data['train'] = $this->BIZ_train_model->biz_order_detail($cold_sn); + if (empty($data['train'])) { + //显示错误,找不到车次 + $rebakc["mes"]="找不到车次"; + echo json_encode($rebakc); + return false; + + } + + $data['people_list'] = $this->BIZ_train_model->biz_people($cold_sn); + if (empty($data['people_list'])) { + //显示错误,找不到用户信息 + $rebakc["mes"]="找不到乘客信息"; + echo json_encode($rebakc); + return false; + } + if (count($data['people_list']) > 5) { + //显示错误,用户超过五个 + $rebakc["mes"]="乘客不能超过五个"; + echo json_encode($rebakc); + 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; + $rebakc["status"]=1; + $rebakc["order"]=$bakc->result->orderid; + $rebakc["mes"]="订单提交成功,等待回调"; + }else{ + $add_data->JOL_JuheOrder=null; + $rebakc["mes"]= $bakc_json; + $add_data->JOL_Status="e"; + } + $add_back_data=$this->BIZ_train_model->add_biz_jol($add_data); + + echo json_encode($rebakc); + return false; + } + //汉特接口 + public function ht_api(){ + $order=$this->input->get("order"); + $rebakc=array();//返回数据 + $rebakc["status"]=0; + $rebakc["mes"]=""; + + if(is_numeric($order)){ + $this->load->model("order_people_model","op"); + $data=$this->op->biz_people($order); + if(!empty($data->cold)){ + $people_num=count($data->people); + if($people_num<=5){ + $db_train_zw=$this->config->item('db_train_zw'); + $train_zw=$this->config->item('train_zw'); + + if(!empty($db_train_zw[$data->cold[0]->Aircraft])){ + $zwcode=$db_train_zw[$data->cold[0]->Aircraft];//座位简码 + $zwname=$train_zw[$db_train_zw[$data->cold[0]->Aircraft]];//座位名称 + + $passengers="";//聚合订单数据 + for($i=0;$i<$people_num;$i++){ + $passengersename="";//乘客名字 + if(!empty($data->people[$i]->BPE_FirstName)){ + $passengersename.=$data->people[$i]->BPE_FirstName." "; + } + if(!empty($data->people[$i]->BPE_MiddleName)){ + $passengersename.=$data->people[$i]->BPE_MiddleName." "; + } + if(!empty($data->people[$i]->BPE_LastName)){ + $passengersename.=$data->people[$i]->BPE_LastName; + } + $passengersename=trim($passengersename); + + //乘客类型 + switch ($data->people[$i]->BPE_GuestType) { + case 1: + $piaotype=1; + $piaotypename="成人票"; + break; + case 2: + $piaotype=2; + $piaotypename="儿童票"; + break; + default://外国人应该就两种票吧 + $piaotype=1; + $piaotypename="成人票"; + break; + } + $passporttypeseid="B";//护照 + $passporttypeseidname="护照"; + $passportseno=$data->people[$i]->BPE_Passport; + $passengers.=',{"passengerid":'.($i+1).',"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"=>$order,//自定义订单号 + "train_date"=>substr($data->cold[0]->COLD_StartDate, 0, 10), + "from_station_name"=>$data->cold[0]->LeaveStation, + "from_station_code"=>$data->cold[0]->DepartAirport, + "to_station_code"=>$data->cold[0]->ArrivalAirport, + "to_station_name"=>$data->cold[0]->ServerStation, + "passengers"=>$passengers, + "checi"=>$data->cold[0]->FlightsNo + ); + var_dump($post_data); + die; + $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)$order; + + $add_data->JOL_Status="0"; + $add_data->JOL_RebackMsg=$bakc->reason; + $add_data->JOL_FromStation=$data->cold[0]->LeaveStation; + $add_data->JOL_ToStation=$data->cold[0]->ServerStation; + $add_data->JOL_FromStationCode=$data->cold[0]->DepartAirport; + $add_data->JOL_ToStationCode=$data->cold[0]->ArrivalAirport; + $add_data->JOL_TrainCode=$data->cold[0]->FlightsNo; + $add_data->JOL_BackTxt=$bakc_json; + + if(!$bakc->error_code){ + $add_data->JOL_JuheOrder=$bakc->result->orderid; + $rebakc["status"]=1; + $rebakc["order"]=$bakc->result->orderid; + $rebakc["mes"]="订单提交成功,等待回调"; + }else{ + $add_data->JOL_JuheOrder=null; + $rebakc["mes"]= $bakc_json; + $add_data->JOL_Status="e"; + } + $add_back_data=$this->op->add_jh_order($add_data); + + + }else{ + $rebakc["mes"]="座次信息有误"; + } + }else{ + $rebakc["mes"]="乘客人数不得超过五个"; + } + }else{ + $rebakc["mes"]="此订单号不存在"; + } + }else{ + $rebakc["mes"]="此订单号不是数字"; + } + // return $rebakc; + var_dump($rebakc); + die(json_encode($rebakc)); + } + + public function sub_callback(){ + $data_post=$this->input->post(); + $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; + 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); + }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); + } + + + $this->op->update_jh_order($update_data); + echo "success"; + } + //汉特&聚合 订单列表 + public function ht_order_list(){ + $this->load->model("order_people_model","op"); + $page_size=10; + $page=$this->input->get("page"); + $order=$this->input->get("order"); + $where="1=1";//搜索条件 + $page_parameter="";//返回的分页条件参数 + if(empty($page) or !is_numeric($page)){ + $page=0; + } + if(!empty($order)){ + $where="BIZ_ConfirmLineInfo.COLI_ID='{$order}' OR JOL_JuheOrder='{$order}'"; + $list["order"]=$order; + $page_parameter="order=".$order."&"; + } + $data=$this->op->get_order($page_size,$page,$where); + $list["data"]=$data->list; + + $this->load->library('pagination'); + + $config['base_url'] = site_url("/apps/train/index/ht_order_list?{$page_parameter}"); + $config['total_rows'] = $data->count; + $config['per_page'] = $page_size; + $config['page_query_string']=TRUE; + $config['query_string_segment']="page"; + $config['cur_tag_open'] = '
  • '; + $config['cur_tag_close'] = '
  • '; + $config['first_tag_open']=$config['last_tag_open']=$config['next_tag_open']=$config['prev_tag_open']=$config['num_tag_open']="
  • "; + $config['first_tag_close']=$config['last_tag_close']=$config['next_tag_close']=$config['prev_tag_close']=$config['num_tag_close']="
  • "; + + $this->pagination->initialize($config); + + $list["page_link"]=$this->pagination->create_links(); + + foreach ($list["data"] as $key => $value) { + $value->info=$this->order_status_msg[$value->JOL_Status];//自定义说明信息; + } + + + + $this->load->view('bootstrap3/header'); + $this->load->view('ht_order_list.html',$list); + $this->load->view('bootstrap3/footer'); + } + //输入翰特订单号cols_id,获取火车订票的相关信息,模拟翰特订单详情页面 + public function ht_train_order(){ + $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); + $i=0; + $list->info=array(); + foreach ($cold_sn as $v) { + $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); + $i++; + } + $list->cols_id=$cols_id; + } + $this->load->view('bootstrap3/header'); + $this->load->view('ht_train_order.html',$list); + $this->load->view('bootstrap3/footer'); + } + //输入翰特订单号cols_id,获取火车订票的相关信息,模拟翰特订单详情页面 + public function ht_train_order_info(){ + $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); + $i=0; + $list->info=array(); + foreach ($cold_sn as $v) { + $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); + $i++; + } + $list->cols_id=$cols_id; + } + $post_data=array( + "key"=>$this->key + ); + $back_data=$this->post_data($this->balance_api,$post_data); + $back_data = json_decode($back_data); + if(!empty($back_data->result)){ + $list->balance = $back_data->result; + }else{ + $list->balance = "NULL"; + } + $this->load->view('bootstrap3/header'); + $this->load->view('ht_train_order_info',$list); + $this->load->view('bootstrap3/footer'); + } + //订单信息填写 + public function booking_write(){ + $this->load->model("order_people_model","op"); + $order=$this->input->post("order"); + $data["order"]=""; + if(!empty($order) && is_numeric($order)){ + $data["order"]=$this->op->biz_people($order); + $data["order_id"]=$order; + } + + $data["code_zw"]=$this->code_zw; + $data["piaotype"]=$this->piaotype; + $data["passportty"]=$this->passportty; + + $this->load->view('bootstrap3/header'); + $this->load->view('booking_write',$data); + $this->load->view('bootstrap3/footer'); + } + + + public function booking_do(){ + //以下是为测试用,未做完善的判断! + + $this->load->helper('form'); + $this->load->library('my_form_validation'); + $zw=$this->input->post("train_booking_zw"); + $piaotype_post=$this->input->post("train_booking_piaotype"); + $passengersename=$this->input->post("train_booking_passengersename"); + $passportty=$this->input->post("train_booking_passportty"); + $passportseno=$this->input->post("train_booking_passportseno"); + $mobile=$this->input->post("train_booking_mobile"); + $train_code=$this->input->post("train_booking_train_code"); + $from_station_code=$this->input->post("train_booking_from_station_code"); + $from_station_name=$this->input->post("train_booking_from_station_name"); + $to_station_code=$this->input->post("train_booking_to_station_code"); + $to_station_name=$this->input->post("train_booking_to_station_name"); + $date=$this->input->post("train_booking_date"); + + $rebakc="";//返回数据 + $flag=TRUE;//标示变量 + $passengers="";//乘客信息集合 + $num=count($zw); + if($num>5){ + // die("乘客太多"); + $rebakc="乘客太多"; + }else{ + $config_zw=$this->code_zw;//检查座位信息是否和配置文件相符合 + $config_piaotype=$this->piaotype;//检查票种信息是否和配置文件相符合 + $config_passportty=$this->passportty;//检查证件信息是否和配置文件相符合 + + for($i=0;$i<$num;++$i){ + + if(empty($config_zw[$zw[$i]])){ + $zwname[]=$config_zw["1"]; + $zwcode[]="1"; + }else{ + $zwname[]=$config_zw[$zw[$i]]; + $zwcode[]=$zw[$i]; + } + + if(empty($config_piaotype[$piaotype_post[$i]])){ + $piaotypename[]=$config_piaotype["1"]; + $piaotype[]="1"; + }else{ + $piaotypename[]=$config_piaotype[$piaotype_post[$i]]; + $piaotype[]=$piaotype_post[$i]; + } + + if(empty($config_passportty[$passportty[$i]])){ + $zwname[]=$config_passportty["1"]; + $zwcode[]="1"; + }else{ + $zwname[]=$config_passportty[$passportty[$i]]; + $zwcode[]=$passportty[$i]; + } + + } + //表单验证 + $this->form_validation->set_rules('train_booking_train_code', '车次不能为空', 'required'); + $this->form_validation->set_rules('train_booking_from_station_name', '出发站点不能为空', 'required'); + $this->form_validation->set_rules('train_booking_to_station_name', '目的站点不能空', 'required'); + $this->form_validation->set_rules('train_booking_date', '日期不能为空', 'required'); + $this->form_validation->set_rules('train_booking_passportseno[]', '证件号不能为空且为数字', 'required|numeric'); + + $this->form_validation->set_rules('train_booking_passengersename[]', '姓名不能为空', 'required'); + + if($this->form_validation->run()){ + for($i=0;$i<$num;$i++){ + $passengers.=',{"passengerid":'.($i+1).',"passengersename":"'.$passengersename[$i].'","piaotype":"'.$piaotype[$i].'","piaotypename":"'.$piaotypename[$i].'","passporttypeseid":"'.$passporttypeseid[$i].'","passporttypeseidname":"'.$passporttypeseidname[$i].'","passportseno":"'.$passportseno[$i].'","price":"1","zwcode":"'.$zwcode[$i].'","zwname":"'.$zwname[$i].'"}'; + } + $passengers.="]"; + $passengers=substr($passengers, 1); + $passengers="[".$passengers; + // die($passengers); + $url=$this->dp_api; + $post_data=array( + "key"=>$this->key, + "user_orderid"=>time(),//自定义订单号 + "train_date"=>$date, + "from_station_name"=>$from_station_name, + "from_station_code"=>$from_station_code, + "to_station_code"=>$to_station_code, + "to_station_name"=>$to_station_name, + "passengers"=>$passengers, + "checi"=>$train_code + ); + + $bakc=$this->my_post($url,$post_data); + if($bakc['error_code']){ + $rebakc=$bakc; + }else{ + //提交订单成功,但并不意味着信息没错 + $url_status=$this->cx_api;//订单状态查询 + $post_status=array( + "key"=>$this->key, + "orderid"=>$bakc["result"]["orderid"] + ); + $bakc_status=$this->my_post($url_status,$post_status); + + + if($bakc_status["error_code"]){ + $rebakc=$bakc_status; + }else{ + $this->load->model("api_model","api"); + $this->api->_insert("order",array( + "order_num"=>$bakc['result']['orderid'], + "sub_time"=>time(), + "status"=>$bakc_status["result"]["status"], + "msg"=>$bakc_status["result"]["msg"], + "from_station"=>$from_station_name, + "to_station"=>$to_station_name, + "train_code"=>$train_code, + "price"=>$bakc_status["result"]["orderamount"] + )); + // echo ""; + redirect("apps/train/index/order_list");//windows服务器会报错? + } + + } + var_dump($rebakc); + }else{ + // var_dump($this->form_validation->_error_array); + var_dump(validation_errors()); + } + + } + + } + + + public function order_list(){ + $this->load->model("api_model","api"); + $list["data"]=$this->api->getAll("order"); + $count=count($list["data"]); + for ($i=0; $i < $count; $i++) { + $list["data"][$i]["info"]=$this->order_status_msg[$list["data"][$i]["status"]];//自定义说明信息 + } + $this->load->view('bootstrap3/header'); + $this->load->view('order_list.html',$list); + $this->load->view('bootstrap3/footer'); + } + public function order(){ + + if($order=$this->input->get("order")){ + $post_data=array( + "key"=>"79f03107b921ef31310bd40a1415c1cb", + "orderid"=>$order + ); + $back_data=$this->my_post("http://op.juhe.cn/trainTickets/orderStatus",$post_data); + $data=array( + "JOL_Status"=>$back_data["result"]["status"], + "JOL_RebackMsg"=>$back_data["result"]["msg"] + ); + $this->load->model("BIZ_train_model"); + //查询到订单最新情况,更新本地数据库 + $this->BIZ_train_model->update_biz_jol(array("JOL_JuheOrder"=>$order),$data); + // var_dump($back_data); + $this->load->view('bootstrap3/header'); + $this->load->view('order',$back_data); + $this->load->view('bootstrap3/footer'); + } + } + //取消订单 + public function cancel_order(){ + if($order=$this->input->get("order")){ + $post_data=array( + "key"=>$this->key, + "orderid"=>$order + ); + $back=$this->my_post($this->qxdd_api,$post_data); + var_dump($back); + + } + } + + //请求出票,支付 + public function pay(){ + if($order=$this->input->get("order")){ + $post_data=array( + "key"=>$this->key, + "orderid"=>$order + ); + $back=$this->my_post($this->pay_api,$post_data); + var_dump($back); + } + } + + //线上退票 + public function refund(){ + if($order=$this->input->get("order")){ + $post_data=array( + "key"=>$this->key, + "orderid"=>$order + ); + $back_data=$this->my_post($this->status_api,$post_data); + $data=array( + "JOL_Status"=>$back_data["result"]["status"], + "JOL_RebackMsg"=>$back_data["result"]["msg"] + ); + $this->load->model("BIZ_train_model"); + //查询到订单最新情况,更新本地数据库 + $this->BIZ_train_model->update_biz_jol(array("JOL_JuheOrder"=>$order),$data); + + $this->load->view('bootstrap3/header'); + $this->load->view('refund',$back_data); + $this->load->view('bootstrap3/footer'); + } + } + public function refund_do(){ + $order=$this->input->get("order"); + $passportseno=$this->input->get("passportseno"); + $passporttypeseid=$this->input->get("passporttypeseid"); + $ticket_no=$this->input->get("ticket_no"); + $passengername=$this->input->get("name"); + + if(!empty($order) && !empty($passportseno) && !empty($passporttypeseid) && !empty($ticket_no) && !empty($passengername)){ + $post_data=array( + "key"=>$this->key, + "orderid"=>$order, + "tickets"=>'[{"ticket_no":"'.$ticket_no.'","passengername":"'.$passengername.'","passporttypeseid":"'.$passporttypeseid.'","passportseno":"'.$passportseno.'"}]', + ); + $back_data=$this->my_post($this->refund_api,$post_data); + + if($back_data["error_code"]==0){ + echo ""; + } + } + return; + } + 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; + } + +} \ No newline at end of file diff --git a/application/third_party/train_it/controllers/search.php b/application/third_party/train_it/controllers/search.php new file mode 100644 index 00000000..52bc70fe --- /dev/null +++ b/application/third_party/train_it/controllers/search.php @@ -0,0 +1,168 @@ +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; //返回数据 + } +} + + + + +?> \ No newline at end of file diff --git a/application/third_party/train_it/controllers/ticket.php b/application/third_party/train_it/controllers/ticket.php new file mode 100644 index 00000000..8fc9d4d0 --- /dev/null +++ b/application/third_party/train_it/controllers/ticket.php @@ -0,0 +1,92 @@ +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" => "站点名称错误"))); + } + } + +} diff --git a/application/third_party/train_it/models/BIZ_train_model.php b/application/third_party/train_it/models/BIZ_train_model.php new file mode 100644 index 00000000..0bd387da --- /dev/null +++ b/application/third_party/train_it/models/BIZ_train_model.php @@ -0,0 +1,328 @@ +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_ID(161014006M),获取子订单中火车订单的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; + } +} diff --git a/application/third_party/train_it/models/api_model.php b/application/third_party/train_it/models/api_model.php new file mode 100644 index 00000000..c02502e0 --- /dev/null +++ b/application/third_party/train_it/models/api_model.php @@ -0,0 +1,21 @@ +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); + } +} \ No newline at end of file diff --git a/application/third_party/train_it/models/order_people_model.php b/application/third_party/train_it/models/order_people_model.php new file mode 100644 index 00000000..495772f4 --- /dev/null +++ b/application/third_party/train_it/models/order_people_model.php @@ -0,0 +1,327 @@ +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_ID(161014006M),获取子订单中火车订单的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优化代码*/ + + +} \ No newline at end of file diff --git a/application/third_party/train_it/models/sendmail_model.php b/application/third_party/train_it/models/sendmail_model.php new file mode 100644 index 00000000..824f98ee --- /dev/null +++ b/application/third_party/train_it/models/sendmail_model.php @@ -0,0 +1,80 @@ +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; + } + +} \ No newline at end of file diff --git a/application/third_party/train_it/views/booking.php b/application/third_party/train_it/views/booking.php new file mode 100644 index 00000000..278f827f --- /dev/null +++ b/application/third_party/train_it/views/booking.php @@ -0,0 +1,160 @@ +
    +
    +
    +

    列车信息

    +
    +
    +

    站(开)到站(到)

    +

    +

    + + + + + + + + + + + +

    +
    +
    +
    +
    +

    乘客信息

    +
    +
    +
    + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    席别票种姓名证件类型证件号码手机号码删除
    + + + + + + + + + + + + + +
    + +
    + +

    +
    + +
    +
    +
    +
    +
    + + \ No newline at end of file diff --git a/application/third_party/train_it/views/booking_table.php b/application/third_party/train_it/views/booking_table.php new file mode 100644 index 00000000..3a50c355 --- /dev/null +++ b/application/third_party/train_it/views/booking_table.php @@ -0,0 +1,110 @@ + + 车次出发地->目的地时间历时商务座特等座一等座二等座高级软卧软卧硬卧软座硬座无座预定 + + + + + + -> + ~ + + + + + + + + + + + + ">预定 + + + + ¥ + ¥ + ¥ + ¥ + ¥ + ¥ + ¥ + ¥ + ¥ + ¥ + + + + \ No newline at end of file diff --git a/application/third_party/train_it/views/booking_write.php b/application/third_party/train_it/views/booking_write.php new file mode 100644 index 00000000..ac49fe5e --- /dev/null +++ b/application/third_party/train_it/views/booking_write.php @@ -0,0 +1,202 @@ +
    +
    +
    +

    订单号

    +
    +
    +
    + "> + +
    +
    +
    +
    +
    +
    +

    列车信息

    +
    +
    + + + + + + + + + + + + + + +
    车次出发站简码出发站名称目的站简码目的站名称日期
    cold[0]->COLD_StartDate)) ;}?>" placeholder="如:2016-09-07" />
    + +
    +
    +
    +
    +

    乘客信息

    +
    +
    + +
    + + + + + + + + + + + + + + + + people as $v):?> + + + + + + + + + + + + + + + + + + + + + + + + +
    席别票种姓名证件类型证件号码删除
    + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + +
    + +

    +
    + +
    + +
    +
    +
    +
    + + \ No newline at end of file diff --git a/application/third_party/train_it/views/email.php b/application/third_party/train_it/views/email.php new file mode 100644 index 00000000..66184036 --- /dev/null +++ b/application/third_party/train_it/views/email.php @@ -0,0 +1,70 @@ + + + + +无标题文档 + + + +

    China Highlights Booking Confirmation

    +

    Dear GUT_LastName?>,

    +

    Thanks for payment US$145 . The train tickets have already been issued.

    +

    You can collect the paper ticket(s) from now at any train station in mainland China.

    +

    Please present all passenger(s) original passport(s) and Ticket Pick Up No.E601014106  at any ticket collecting counters (in Chinese 取票窗口)of any railway stations in mainland China. They will then issue your paper train ticket(s).

    + + + + + +
    Passenger(s)

    2 adult(s) +

    +

    1. ALEXANDER JAMES JOHNSON , passport number 503406354
    +2. SIAN MARIE JOHNSON , passport number 528876517

    +

    Train 1:

    + + + + + + + + + + + + + + + + + + + + + +
    Ticket Pick Up No.E601014106 
    Train No.Z19
    Departure20:40 Jun.06 Beijing Xi (West) Station(in Chinese 北京西火车站)
    Arrival08:31AM Jun.07 Xi'an Station(in Chinese 西安火车站)
    ClassSoft Sleeper
    +

    Kindly note below:

    +

    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.

    +

    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.

    +

    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.
    +If you’ve already collected before the departure day, it is also wise to be at the station at least 40 minutes ahead.

    +

    4. Download railway station instructions, maps and tips at http://www.chinahighlights.com/china-trains/station-map.htm
    +
    +5.Terms & Conditions. http://www.chinahighlights.com/china-trains/booking-policy.htm

    +

    Best Regards!
    + Iris Wang, Travel Advisor
    + Tel: +86-773-2801368  Mobile:+86-18775900313
    + Fax: 86-773-2827424, 86-773-2885308
    + E-mail: iris@chinahighlights.me
    + www.chinahighlights.com
    + Address: Building 6, Chuangyi Business Park, 70 Qilidian Road, Guilin, Guangxi, 541004, China
    +If you wish to share anything with my supervisor (Ms. Alex Yang), please feel free to send your email to alex@chinahighlights.net.

    + + diff --git a/application/third_party/train_it/views/export.php b/application/third_party/train_it/views/export.php new file mode 100644 index 00000000..184ec8b1 --- /dev/null +++ b/application/third_party/train_it/views/export.php @@ -0,0 +1,110 @@ +
    +
    +
    +

    交易记录导出 订单列表>>

    +
    +
    +
    + ">至 + "> + 审核状态: name="examine" />    + +
    +

    + +

    " style="width:90%;margin:0 auto;"> +
    + + + + + + + $value) {?> + + + + + + +
    时间信息变化值团名外联
    +
    +
    +
    +
    + +
    + + \ No newline at end of file diff --git a/application/third_party/train_it/views/ht_order_list.html b/application/third_party/train_it/views/ht_order_list.html new file mode 100644 index 00000000..dc7256e7 --- /dev/null +++ b/application/third_party/train_it/views/ht_order_list.html @@ -0,0 +1,59 @@ +
    +
    +
    +

    订单搜索

    +
    +
    +
    +
    +
    + "> +
    +
    + +
    +
    +
    +
    +
    +
    +
    +

    订单列表

    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    序号汉特订单号聚合订单号车次出发到达状态价格提交时间操作
    COLI_ID;?>JOL_JuheOrder;?>JOL_TrainCode;?>JOL_FromStation;?>JOL_ToStation;?>info;?>JOL_Price;?>JOL_SubTime;?>详情
    +
    +
    +
    +
    \ No newline at end of file diff --git a/application/third_party/train_it/views/ht_train_order.html b/application/third_party/train_it/views/ht_train_order.html new file mode 100644 index 00000000..ef399d0b --- /dev/null +++ b/application/third_party/train_it/views/ht_train_order.html @@ -0,0 +1,112 @@ +
    +
    +
    +

    翰特订单号 订单列表>>

    +
    +
    +
    + "> + +
    +

    外联:OPI_Name;}?>

    +
    +
    +
    +
    +

    火车订单信息

    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    序号车次座位出发城市抵达城市发车日期发车时间抵达时间票价是否提交过操作
    train[0]->FlightsNo;?>train[0]->Cabin;?>train[0]->DepartureCity;?>train[0]->ArrivalCity;?>train[0]->DepartureDate;?>train[0]->DepartureTime;?>train[0]->ArrivalTime;?>train[0]->adultcost;?>status)?"":"否";?>订票
    + + + + + + + + + + people as $p): ?> + + + + + + + + + + +
    姓名护照年龄类型
    BPE_FirstName." ".$p->BPE_MiddleName." ".$p->BPE_LastName;?>BPE_Passport;?>BPE_GuestType==1?"成人":($p->BPE_GuestType==2?"儿童":"婴儿");?>
    + +
    + +
    +
    +
    + + \ No newline at end of file diff --git a/application/third_party/train_it/views/ht_train_order_info.php b/application/third_party/train_it/views/ht_train_order_info.php new file mode 100644 index 00000000..6189118b --- /dev/null +++ b/application/third_party/train_it/views/ht_train_order_info.php @@ -0,0 +1,169 @@ +
    +
    +
    +

    翰特订单号 订单列表>>导出交易记录>> 版本:V2.0聚合余额(RMB):

    +
    +
    +
    + "> + +
    +

    外联:OPI_Name;}?>

    +
    +
    +
    +
    +

    火车订单信息

    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    序号车次座位出发城市抵达城市发车日期发车时间抵达时间票价是否提交过操作
    train[0]->FlightsNo;?>train[0]->Cabin;?>train[0]->DepartureCity;?>train[0]->ArrivalCity;?>train[0]->DepartureDate;?>train[0]->DepartureTime;?>train[0]->ArrivalTime;?>train[0]->adultcost;?>status)?"":"否";?>
    + + + + + + + + + + + + people as $key=>$p): ?> + + + + + + + + + + + + + + + + +
    序号姓名护照年龄类型
    BPE_FirstName." ".$p->BPE_MiddleName." ".$p->BPE_LastName;?>BPE_Passport;?>BPE_GuestType==1?"成人":($p->BPE_GuestType==2?"儿童":"婴儿");?>
    + + +
    + +
    + +
    +
    +
    + + \ No newline at end of file diff --git a/application/third_party/train_it/views/order.php b/application/third_party/train_it/views/order.php new file mode 100644 index 00000000..f3bf123a --- /dev/null +++ b/application/third_party/train_it/views/order.php @@ -0,0 +1,51 @@ +
    +
    +
    +

            

    +
    +
    + 1):?> +

    + +

    +

    + + +

    +

    占座成功,请在: 前付款,超时将失效

    + + +

    +

    订单已超时失效

    + +

    +

    取消订单     ¥支付

    + + + + +

    +

    出票成功

    +

    +

    前往退票

    + + + +

    +

    正在处理退票

    +

    查看详情

    + + + +

    +

    +

    查看详情

    + + +

    + +
    +
    +
    + + diff --git a/application/third_party/train_it/views/order_list.html b/application/third_party/train_it/views/order_list.html new file mode 100644 index 00000000..c1826ca7 --- /dev/null +++ b/application/third_party/train_it/views/order_list.html @@ -0,0 +1,39 @@ +
    +
    +
    +

    订单列表

    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    序号订单号车次出发到达状态金额提交时间操作
    详情
    +
    +
    +
    \ No newline at end of file diff --git a/application/third_party/train_it/views/refund.php b/application/third_party/train_it/views/refund.php new file mode 100644 index 00000000..59382456 --- /dev/null +++ b/application/third_party/train_it/views/refund.php @@ -0,0 +1,41 @@ +
    +
    +
    +

            

    +
    +
    + 1):?> +

    + +

    +

    + +

    + 退票 + +

    + +

    + + + + + + + + + + +
    退票处理
    +

    + + + + +

    + +
    +
    +
    + + diff --git a/application/third_party/train_it/views/welcome.php b/application/third_party/train_it/views/welcome.php new file mode 100644 index 00000000..2d2fad3e --- /dev/null +++ b/application/third_party/train_it/views/welcome.php @@ -0,0 +1,62 @@ +
    +
    火车票查询
    +
    +
    +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    +
    +
    + + + +
    + +
    +
    + \ No newline at end of file diff --git a/application/third_party/train_it/移植注意事项.txt b/application/third_party/train_it/移植注意事项.txt new file mode 100644 index 00000000..31e3cf12 --- /dev/null +++ b/application/third_party/train_it/移植注意事项.txt @@ -0,0 +1,3 @@ +移植注意事项: +1、需要设置消息推送 +2、添加相应的数据表 \ No newline at end of file diff --git a/application/third_party/tuniu/controllers/tuniu_train.php b/application/third_party/tuniu/controllers/tuniu_train.php index a439e51d..f38214a5 100644 --- a/application/third_party/tuniu/controllers/tuniu_train.php +++ b/application/third_party/tuniu/controllers/tuniu_train.php @@ -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); } //获取价格 From dd5d6858cc6f010f434b91933d354925bed21cf0 Mon Sep 17 00:00:00 2001 From: cyc Date: Fri, 15 Sep 2017 11:33:28 +0800 Subject: [PATCH 2/9] 123 --- application/third_party/train_it/controllers/search.php | 4 ++-- application/third_party/tuniu/controllers/tuniu_train.php | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/application/third_party/train_it/controllers/search.php b/application/third_party/train_it/controllers/search.php index 52bc70fe..dee7bf9d 100644 --- a/application/third_party/train_it/controllers/search.php +++ b/application/third_party/train_it/controllers/search.php @@ -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($return_data); + print_r(json_encode($return_data)); } //获取价格 diff --git a/application/third_party/tuniu/controllers/tuniu_train.php b/application/third_party/tuniu/controllers/tuniu_train.php index f38214a5..1b54e761 100644 --- a/application/third_party/tuniu/controllers/tuniu_train.php +++ b/application/third_party/tuniu/controllers/tuniu_train.php @@ -46,10 +46,10 @@ 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; + //echo $return_data->returnCode; $return_data->httpstatus = 200; $return_data->data = new stdClass(); $return_data->data->result = array(); @@ -134,7 +134,7 @@ class Tuniu_train extends CI_Controller{ } } $return_data->data->map = (object)$obj; - print_r($return_data); + print_r(json_encode($return_data)); } //获取价格 From 0ce99bb9bf6d093c6a4e78e2813e6997e9e803a3 Mon Sep 17 00:00:00 2001 From: cyc Date: Fri, 15 Sep 2017 11:43:59 +0800 Subject: [PATCH 3/9] no message --- .../third_party/train/controllers/search.php | 4 +- .../train_it/controllers/search.php | 168 ------------------ 2 files changed, 2 insertions(+), 170 deletions(-) delete mode 100644 application/third_party/train_it/controllers/search.php diff --git a/application/third_party/train/controllers/search.php b/application/third_party/train/controllers/search.php index 52bc70fe..dee7bf9d 100644 --- a/application/third_party/train/controllers/search.php +++ b/application/third_party/train/controllers/search.php @@ -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($return_data); + print_r(json_encode($return_data)); } //获取价格 diff --git a/application/third_party/train_it/controllers/search.php b/application/third_party/train_it/controllers/search.php deleted file mode 100644 index dee7bf9d..00000000 --- a/application/third_party/train_it/controllers/search.php +++ /dev/null @@ -1,168 +0,0 @@ -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(json_encode($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; //返回数据 - } -} - - - - -?> \ No newline at end of file From a996da044ad00b424abbf40e9ef0222c0f4c1bc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=B9=E8=AF=9A=E8=AF=9A?= Date: Thu, 21 Sep 2017 11:00:43 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E4=BC=98=E5=8C=96ta=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=87=87=E9=9B=86=EF=BC=8Chtml=E8=BD=AC=E6=8D=A2=E5=A4=A7?= =?UTF-8?q?=E5=B0=8F=E9=98=88=E5=80=BC=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tripadvisor_spider/controllers/index.php | 76 ++++++++++--------- lib/simple_html_dom.php | 2 +- 2 files changed, 43 insertions(+), 35 deletions(-) diff --git a/application/third_party/tripadvisor_spider/controllers/index.php b/application/third_party/tripadvisor_spider/controllers/index.php index eaffa83e..4697c747 100644 --- a/application/third_party/tripadvisor_spider/controllers/index.php +++ b/application/third_party/tripadvisor_spider/controllers/index.php @@ -25,44 +25,52 @@ class Index extends CI_Controller { } function auto_update($city = 'Beijing') { - ini_set('max_execution_time', '100'); + ini_set('max_execution_time', '180'); $ta_website = $this->config->item('tripadvisor_website'); - //分页代码,只查询前三页,反过来查询,越早的越在后面 - $page_mark = array('-or20-', '-or10-', '-'); + $nation_mark=array('www.tripadvisor.com','www.tripadvisor.it','www.tripadvisor.jp','www.tripadvisor.es','www.tripadvisor.fr','www.tripadvisor.de'); foreach ($ta_website as $key_city => $item_url) { if ($key_city == $city) { - foreach ($page_mark as $page_num) { - $page_url = str_replace('{PAGENUM}', $page_num, $item_url); - //使用代理来请求,国内直接访问会很慢 - $page_url=str_replace('https://www.tripadvisor.com', 'http://47.91.16.199:5052', $page_url); - $content = GET_HTTP($page_url); - if (!empty($content)) { - $html_object = str_get_html($content); - foreach ($html_object->find('.reviewSelector') as $review) { - //获取到评论ID - if (!empty($review->id)) { - $tr_review_id = str_replace('review_', '', $review->id); - $tr_review_title = $review->find('div.quote a', 0); - if (empty($tr_review_title)) { - $tr_review_title = ''; - } else { - $tr_review_title = $tr_review_title->plaintext; - } - $review = $this->Tripadvisor_Review_model->detail($tr_review_id); - if (empty($review)) { - $Tripadvisor_Review_Data = new StdClass; - $Tripadvisor_Review_Data->tr_city = $key_city; - $Tripadvisor_Review_Data->tr_review_title = $tr_review_title; - $Tripadvisor_Review_Data->tr_review_id = $tr_review_id; - $Tripadvisor_Review_Data->tr_datetime = date('Y-m-d H:i:s', time()); - $tr_id = $this->Tripadvisor_Review_model->add('Tripadvisor_Review', $Tripadvisor_Review_Data); - echo '
    ' . $tr_id . ' ' . $key_city . ' ' . $tr_review_id; - } - } - } - } - } + //采集各个国家的评论 + foreach($nation_mark as $nation_item){ + $page_url = str_replace('www.tripadvisor.com', $nation_item, $item_url); + if($nation_item=='www.tripadvisor.com'){//分页代码,英文站点查询前三页,反过来查询,越早的越在后面 + $page_mark = array('-or20-', '-or10-', '-'); + //使用代理来请求,国内直接访问会很慢 + $page_url=str_replace('https://www.tripadvisor.com', 'http://47.91.16.199:5052', $page_url); + }else{ + $page_mark = array('-'); + } + foreach ($page_mark as $page_num) { + $page_url = str_replace('{PAGENUM}', $page_num, $page_url); + $content = GET_HTTP($page_url); + if (!empty($content)) { + $html_object = str_get_html($content); + foreach ($html_object->find('.reviewSelector') as $review) { + //获取到评论ID + if (!empty($review->id)) { + $tr_review_id = str_replace('review_', '', $review->id); + $tr_review_title = $review->find('div.quote a', 0); + if (empty($tr_review_title)) { + $tr_review_title = ''; + } else { + $tr_review_title = $tr_review_title->plaintext; + } + $review = $this->Tripadvisor_Review_model->detail($tr_review_id); + if (empty($review)) { + $Tripadvisor_Review_Data = new StdClass; + $Tripadvisor_Review_Data->tr_city = $key_city; + $Tripadvisor_Review_Data->tr_review_title = $tr_review_title; + $Tripadvisor_Review_Data->tr_review_id = $tr_review_id; + $Tripadvisor_Review_Data->tr_datetime = date('Y-m-d H:i:s', time()); + $tr_id = $this->Tripadvisor_Review_model->add('Tripadvisor_Review', $Tripadvisor_Review_Data); + echo '
    ' . $tr_id . ' ' . $key_city . ' ' . $tr_review_id; + } + } + } + } + } + } } } } diff --git a/lib/simple_html_dom.php b/lib/simple_html_dom.php index ce412794..7a95367e 100644 --- a/lib/simple_html_dom.php +++ b/lib/simple_html_dom.php @@ -62,7 +62,7 @@ define('HDOM_INFO_ENDSPACE',7); define('DEFAULT_TARGET_CHARSET', 'UTF-8'); define('DEFAULT_BR_TEXT', "\r\n"); define('DEFAULT_SPAN_TEXT', " "); -define('MAX_FILE_SIZE', 600000); +define('MAX_FILE_SIZE', 6000000); // helper functions // ----------------------------------------------------------------------------- // get html dom from file From 6e476bd13dd44fec758150d4804709c58faa6525 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=B9=E8=AF=9A=E8=AF=9A?= Date: Thu, 21 Sep 2017 11:56:01 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BE=B7=E8=AF=AD?= =?UTF-8?q?=E9=9D=99=E6=80=81=E5=8C=96=E7=94=9F=E6=88=90=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/controllers/information.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/application/controllers/information.php b/application/controllers/information.php index dd801e17..4e33a3e6 100644 --- a/application/controllers/information.php +++ b/application/controllers/information.php @@ -484,9 +484,12 @@ class Information extends CI_Controller { case 'gm': GET_HTTP("http://148.251.35.42:3300/create-cache/?url=" . urlencode($url)); //请求nodejs静态化更新页面,删除缓存,因为部分页面没有进入信息平台 if ($delete_only) { - $url = $this->config->item('site_url') . "/gm.php/information/delete_cache_23Xd913mddkgssODII?static_html_url=" . urlencode($url); + $url = "http://144.76.185.44:8029/gm.php/information/delete_cache_23Xd913mddkgssODII?static_html_url=" . urlencode($url); } else { - $url = $this->config->item('site_url') . "/gm.php/information/detail?static_html_optimize=comeon&static_html_url=" . urlencode($url); + //先删除再生成,部分页面没有在信息平台中 + $url = "http://144.76.185.44:8029/gm.php/information/delete_cache_23Xd913mddkgssODII?static_html_url=" . urlencode($url); + GET_HTTP($url); + $url = "http://144.76.185.44:8029" . $url; } break; From 253b70d7e9385f98263c0f7e803c34b6fbb6b826 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=B9=E8=AF=9A=E8=AF=9A?= Date: Thu, 21 Sep 2017 12:06:48 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BE=B7=E8=AF=AD?= =?UTF-8?q?=E9=9D=99=E6=80=81=E5=8C=96=E7=94=9F=E6=88=90=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/controllers/information.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/application/controllers/information.php b/application/controllers/information.php index 4e33a3e6..662f3639 100644 --- a/application/controllers/information.php +++ b/application/controllers/information.php @@ -487,8 +487,7 @@ class Information extends CI_Controller { $url = "http://144.76.185.44:8029/gm.php/information/delete_cache_23Xd913mddkgssODII?static_html_url=" . urlencode($url); } else { //先删除再生成,部分页面没有在信息平台中 - $url = "http://144.76.185.44:8029/gm.php/information/delete_cache_23Xd913mddkgssODII?static_html_url=" . urlencode($url); - GET_HTTP($url); + GET_HTTP("http://144.76.185.44:8029/gm.php/information/delete_cache_23Xd913mddkgssODII?static_html_url=" . urlencode($url)); $url = "http://144.76.185.44:8029" . $url; } break; From 6285a968dce0307754727b76dba8b75ee5e90bb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=B9=E8=AF=9A=E8=AF=9A?= Date: Mon, 25 Sep 2017 11:35:32 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=E6=89=B9=E9=87=8F=E6=9B=BF=E6=8D=A2?= =?UTF-8?q?=E5=BE=B7=E8=AF=AD=E5=9B=BE=E7=89=87=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/controllers/welcome.php | 42 ++++++++++++++++++++++++ application/models/information_model.php | 4 +-- 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/application/controllers/welcome.php b/application/controllers/welcome.php index bbea50bc..0a3c60df 100644 --- a/application/controllers/welcome.php +++ b/application/controllers/welcome.php @@ -192,6 +192,48 @@ class Welcome extends CI_Controller { ->set_content_type('application/json') ->set_output(json_encode($obj)); } + + + //批量替换二级域名,如图片或者data域名 + function replace_hostname($topnum){ + $data=array(); + $find_host='http://bilder.chinarundreisen.com/'; + $new_host='//bilder.chinarundreisen.com/'; + $data['all_information'] = $this->Information_model->search_all_text($find_host,$topnum); + if($data['all_information']){ + foreach($data['all_information'] as $item){ + echo $item->ic_url.'
    '; + $item->ic_content=str_replace($find_host, $new_host,$item->ic_content); + $this->InfoContents_model->Update( + $item->ic_id, + $item->ic_url, + $item->ic_url_title, + $item->ic_type, + $item->ic_title, + $item->ic_content, + $item->ic_summary, + $item->ic_seo_title, + $item->ic_seo_description, + $item->ic_seo_keywords, + $item->ic_show_bread_crumbs, + $item->ic_status, + $item->ic_template, + $item->ic_photo, + $item->ic_photo_width, + $item->ic_photo_height, + $item->ic_recommend_tours, + $item->ic_recommend_packages, + $item->ic_ht_area_id, + $item->ic_ht_area_type, + $item->ic_ht_product_id, + $item->ic_ht_product_type, + $item->ic_author + ); + } + }else{ + echo 'all done'; + } + } private function check_url($subject) { $result = $subject; diff --git a/application/models/information_model.php b/application/models/information_model.php index f926ae0d..c5b991a0 100644 --- a/application/models/information_model.php +++ b/application/models/information_model.php @@ -57,9 +57,9 @@ class Information_model extends CI_Model { return $this->GetList(); } - function search_all_text($keyword) { + function search_all_text($keyword,$topnum=24) { $this->init(); - $this->topNum = 24; + $this->topNum = $topnum; $sql_keyword = '%' . $this->HT->escape_like_str($keyword) . '%'; $this->search = " AND ic_content like N'$sql_keyword' "; return $this->GetList(); From dedffa53a3bed89d01b20dad2df59bfd27b595a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=B9=E8=AF=9A=E8=AF=9A?= Date: Mon, 25 Sep 2017 13:46:23 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E6=89=B9=E9=87=8F=E6=9B=BF=E6=8D=A2?= =?UTF-8?q?=E5=BE=B7=E8=AF=ADdata=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/controllers/welcome.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/controllers/welcome.php b/application/controllers/welcome.php index 0a3c60df..e6ec9bc6 100644 --- a/application/controllers/welcome.php +++ b/application/controllers/welcome.php @@ -197,8 +197,8 @@ class Welcome extends CI_Controller { //批量替换二级域名,如图片或者data域名 function replace_hostname($topnum){ $data=array(); - $find_host='http://bilder.chinarundreisen.com/'; - $new_host='//bilder.chinarundreisen.com/'; + $find_host='http://data.chinarundreisen.com/'; //http://bilder.chinarundreisen.com/ + $new_host='//data.chinarundreisen.com/'; $data['all_information'] = $this->Information_model->search_all_text($find_host,$topnum); if($data['all_information']){ foreach($data['all_information'] as $item){ From 910bfe042a6633188899cbbb105226ab2b4d8574 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=B9=E8=AF=9A=E8=AF=9A?= Date: Mon, 25 Sep 2017 15:43:26 +0800 Subject: [PATCH 9/9] =?UTF-8?q?=E5=B9=BF=E5=91=8A=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E5=9C=B0=E5=9D=80=E6=9B=BF=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../third_party/advertise/models/advertise_model.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/application/third_party/advertise/models/advertise_model.php b/application/third_party/advertise/models/advertise_model.php index 4c379f6e..33f17782 100644 --- a/application/third_party/advertise/models/advertise_model.php +++ b/application/third_party/advertise/models/advertise_model.php @@ -130,9 +130,14 @@ class advertise_model extends CI_Model //更新广告 public function update($ad_title,$ad_content,$ad_type,$ad_expire,$ad_place,$ad_status,$ad_id) - { - $ad_content=str_replace($this->config->item('media_image_url_remote'), $this->config->item('site_image_url'),$ad_content); + { + $ad_content=str_replace('http:'.$this->config->item('site_image_url'), $this->config->item('site_image_url'),$ad_content); + $ad_content=str_replace($this->config->item('media_image_url_remote2'), $this->config->item('site_image_url'),$ad_content); + $ad_content=str_replace($this->config->item('media_image_url_org'), $this->config->item('site_image_url'),$ad_content); $ad_content=str_replace($this->config->item('media_image_url'), $this->config->item('site_image_url'),$ad_content); + $ad_content=str_replace($this->config->item('media_image_url2'), $this->config->item('site_image_url'),$ad_content); + $ad_content=str_replace($this->config->item('media_image_url_remote'), $this->config->item('site_image_url'),$ad_content); + $sql = "UPDATE infoAdvertise SET ad_title=N?, ad_content=N?,