|
|
|
@ -174,7 +174,7 @@ class innerTrainSearch extends CI_Controller{
|
|
|
|
|
return json_encode($return_data);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function ctripApi($date=null,$from=null,$to=null){
|
|
|
|
|
public function ctripApi($date=null,$from=null,$to=null,$return=false){
|
|
|
|
|
//接收参数
|
|
|
|
|
if(!$date && !$from && !$to){
|
|
|
|
|
$date = $this->input->get_post('date');
|
|
|
|
@ -362,7 +362,12 @@ class innerTrainSearch extends CI_Controller{
|
|
|
|
|
}
|
|
|
|
|
//print_r($ResponseData);die();
|
|
|
|
|
$ReturnData->data->map = (object)$obj;
|
|
|
|
|
print_r(json_encode($ReturnData));
|
|
|
|
|
if($return){
|
|
|
|
|
return json_encode($ReturnData);
|
|
|
|
|
}else{
|
|
|
|
|
echo json_encode($ReturnData);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -474,5 +479,140 @@ class innerTrainSearch extends CI_Controller{
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function get_train(){
|
|
|
|
|
$train_date = $this->input->get('date');
|
|
|
|
|
$fromStation = $this->input->get('from');
|
|
|
|
|
$toStation = $this->input->get('to');
|
|
|
|
|
if(!$train_date || !$fromStation || !$toStation){
|
|
|
|
|
exit('传参错误!');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$back_json = $this->ctripApi($train_date,$fromStation,$toStation,true);
|
|
|
|
|
|
|
|
|
|
$train_info = new stdClass();
|
|
|
|
|
$train_info = json_decode($back_json);
|
|
|
|
|
|
|
|
|
|
$return_data = new stdClass();
|
|
|
|
|
$return_data->status = 200;
|
|
|
|
|
$return_data->search = new stdClass();
|
|
|
|
|
$return_data->search->FromStationCode = $fromStation;
|
|
|
|
|
$return_data->search->ToStationCode = $toStation;
|
|
|
|
|
$return_data->search->StartDate = $train_date;
|
|
|
|
|
|
|
|
|
|
$return_data->CardFee = 3;
|
|
|
|
|
//MainlandChina:大陆内地寄送费用
|
|
|
|
|
//HMT:港澳台寄送费用
|
|
|
|
|
//寄送费按订单收,无论多少张票,没有取票费
|
|
|
|
|
//$return_data->MainlandChina = 6;
|
|
|
|
|
//$return_data->HMT = 15;
|
|
|
|
|
$this->load->library('Currency');
|
|
|
|
|
define("CONST_SITE_CURRENCY","USD");
|
|
|
|
|
$return_data->ExRate = $this->currency->get_site_currencyrate();
|
|
|
|
|
$return_data->result = array();
|
|
|
|
|
$i = 0;
|
|
|
|
|
|
|
|
|
|
foreach ($train_info->data->result as $value){
|
|
|
|
|
$return_data->result[$i] = new StdClass();
|
|
|
|
|
$data = explode('|', $value);
|
|
|
|
|
$return_data->result[$i]->TrainNo = $data[2];
|
|
|
|
|
$return_data->result[$i]->TrainCode = $data[3];
|
|
|
|
|
$return_data->result[$i]->TrainType = substr(ucwords($data[3]), 0, 1);
|
|
|
|
|
$return_data->result[$i]->StartStationCode = $data[4];
|
|
|
|
|
$return_data->result[$i]->EndStationCode = $data[5];
|
|
|
|
|
$return_data->result[$i]->DepartStation = '';
|
|
|
|
|
$return_data->result[$i]->DepartStationCode = $data[6];
|
|
|
|
|
$return_data->result[$i]->DepartStationNo = '';
|
|
|
|
|
$return_data->result[$i]->ArriveStation = '';
|
|
|
|
|
$return_data->result[$i]->ArriveStationCode = $data[7];
|
|
|
|
|
$return_data->result[$i]->ArriveStationNo = '';
|
|
|
|
|
$return_data->result[$i]->DepartTime = $data[8];
|
|
|
|
|
$return_data->result[$i]->ArriveTime = $data[9];
|
|
|
|
|
$return_data->result[$i]->RunTime = $data[10];
|
|
|
|
|
$return_data->result[$i]->IsBookable = true;
|
|
|
|
|
//$return_data->result[$i]->SeatType = '123456789OMPA';
|
|
|
|
|
$return_data->result[$i]->cached = 1;
|
|
|
|
|
//$return_data->result[$i]->CheapSeat = new stdClass();
|
|
|
|
|
$price = json_decode($train_info->data->price[$i]);
|
|
|
|
|
|
|
|
|
|
$return_data->result[$i]->CheapSeat = null;
|
|
|
|
|
$return_data->result[$i]->SeatList = array();
|
|
|
|
|
//做一个数据存储所有的座位类型的余票
|
|
|
|
|
$seat_yp_map = array(
|
|
|
|
|
'A' => $data[21], //高级软卧
|
|
|
|
|
'A6' => $data[21], //高级软卧
|
|
|
|
|
'H' => $data[22], //其他
|
|
|
|
|
'A4' => $data[23], //软卧
|
|
|
|
|
'A2' => $data[24], //软座
|
|
|
|
|
'P' => $data[25], //特等座
|
|
|
|
|
'WZ' => $data[26],//无座
|
|
|
|
|
'X' => $data[26], //无座
|
|
|
|
|
'A3' => $data[28], //硬卧
|
|
|
|
|
'A1' => $data[29], //硬座
|
|
|
|
|
'O' => $data[30], //二等座
|
|
|
|
|
'A8' => $data[30], //二等座
|
|
|
|
|
'A7' => $data[31], //一等座
|
|
|
|
|
'M' => $data[31], //一等座
|
|
|
|
|
'A9' => $data[32], //商务座
|
|
|
|
|
'F' => $data[33], //动卧
|
|
|
|
|
'YDW' => $data[36], //一等卧
|
|
|
|
|
'EDW' => $data[37], //二等卧
|
|
|
|
|
);
|
|
|
|
|
$j=0;
|
|
|
|
|
$soldoutnums = 0;
|
|
|
|
|
foreach($price->data as $key=>$value){
|
|
|
|
|
if($key != 'train_no'){
|
|
|
|
|
if(!is_numeric($key)){
|
|
|
|
|
$return_data->result[$i]->SeatList[$j] = new StdClass();
|
|
|
|
|
$return_data->result[$i]->SeatList[$j]->SeatCode = $key;
|
|
|
|
|
$return_data->result[$i]->SeatList[$j]->SeatName = get_name($key);
|
|
|
|
|
$value = str_replace('¥','',$value);
|
|
|
|
|
|
|
|
|
|
if(in_array($key, array('A3', 'A4', 'A5', 'A6', '3', '4', '5', '6', 'A', 'F', 'S','YDW','EDW'))){
|
|
|
|
|
if (stripos($return_data->result[$i]->TrainNo, "D") !== false || stripos($return_data->result[$i]->TrainNo, "G") !== false) {
|
|
|
|
|
$value = $value * 1.2;
|
|
|
|
|
$return_data->result[$i]->SeatList[$j]->ChildDiscut = 1;
|
|
|
|
|
}else{
|
|
|
|
|
$value = $value * 1.15;
|
|
|
|
|
$return_data->result[$i]->SeatList[$j]->ChildDiscut = 0.75;
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
$return_data->result[$i]->SeatList[$j]->ChildDiscut = 0.5;
|
|
|
|
|
}
|
|
|
|
|
/*
|
|
|
|
|
if (stripos($value, ".")) {//判断是否是整数,避免类似ecil(9.9*10)=100
|
|
|
|
|
$value = ceil($value);
|
|
|
|
|
}*/
|
|
|
|
|
$return_data->result[$i]->SeatList[$j]->SeatPrice = $this->currency->GetSiteMoney($value);
|
|
|
|
|
$return_data->result[$i]->SeatList[$j]->SeatPriceRMB = $value;
|
|
|
|
|
if($fromStation == 'LSO' || $toStation == 'LSO'){
|
|
|
|
|
$return_data->result[$i]->SeatList[$j]->ServiceCharge = 33;
|
|
|
|
|
}else{
|
|
|
|
|
$return_data->result[$i]->SeatList[$j]->ServiceCharge = 6;
|
|
|
|
|
}
|
|
|
|
|
if($fromStation == 'XJA' && stripos($return_data->result[$i]->TrainNo, "G") && $value > 500){
|
|
|
|
|
$return_data->result[$i]->SeatList[$j]->ServiceCharge = 10;
|
|
|
|
|
}
|
|
|
|
|
$return_data->result[$i]->SeatList[$j]->ServiceChargeRMB = $return_data->result[$i]->SeatList[$j]->ServiceCharge * $return_data->ExRate;
|
|
|
|
|
|
|
|
|
|
$return_data->result[$i]->SeatList[$j]->SeatInventory = $seat_yp_map[$key];
|
|
|
|
|
if($return_data->result[$i]->SeatList[$j]->SeatInventory == '有'){
|
|
|
|
|
$return_data->result[$i]->SeatList[$j]->SeatInventory = 99;
|
|
|
|
|
}elseif($return_data->result[$i]->SeatList[$j]->SeatInventory == '无'){
|
|
|
|
|
$return_data->result[$i]->SeatList[$j]->SeatInventory = 0;
|
|
|
|
|
$soldoutnums++;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$j++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if($soldoutnums >= $j){
|
|
|
|
|
$return_data->result[$i]->soldout = true;
|
|
|
|
|
}else{
|
|
|
|
|
$return_data->result[$i]->soldout = false;
|
|
|
|
|
}
|
|
|
|
|
$i++;
|
|
|
|
|
}
|
|
|
|
|
print_r(json_encode($return_data));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|