diff --git a/application/third_party/train/controllers/search.php b/application/third_party/train/controllers/search.php index 95d25d3b..f64b25bc 100644 --- a/application/third_party/train/controllers/search.php +++ b/application/third_party/train/controllers/search.php @@ -13,117 +13,127 @@ class search extends CI_Controller{ public function index($train_date=null,$fromStation=null,$toStation=null){ set_time_limit(0); if(!$train_date || !$fromStation || !$toStation){ - exit('传参错误!'); + exit('传参不能为空!'); }else{ + if(strlen($fromStation) != 3){ + exit('fromStation:参数错误!'); + } + if(strlen($toStation) != 3){ + exit('toStation:参数错误!'); + } + $this->train_date = $train_date; //$url = 'http://op.juhe.cn/trainTickets/ticketsAvailable?key='.JUHE_TRAIN_API_KEY.'&train_date='.$train_date.'&from_station='.$fromStation.'&to_station='.$toStation; $url = 'http://139.129.246.118:12309/trainTickets/ticketsAvailable?key='.JUHE_TRAIN_API_KEY.'&train_date='.$train_date.'&from_station='.$fromStation.'&to_station='.$toStation; - $back_data = $this->get_http($url); - $reason = json_decode($back_data)->reason; - $return_data = new stdClass(); - $cache = 'no'; - if(empty(json_decode($back_data)->result)){ - log_message('error','juhetrain:'.$url.' '.$back_data); - $obj = $this->BIZ_train_model->get_train_info($fromStation,$toStation); + $back_data = $this->get_http($url); + $firstdata = $back_data; + $reason = json_decode($back_data)->reason; + $return_data = new stdClass(); + $cache = 'no'; + if(empty(json_decode($back_data)->result)){ + $obj = $this->BIZ_train_model->get_train_info($fromStation,$toStation); if($obj){ $back_data = $obj->tpc_content; $cache = 'yes'; - log_message('error','Sn:'.$obj->tpc_sn.'|time:'.$obj->tpc_datetime); - } - }else{ - $this->BIZ_train_model->addOrUpdate($fromStation,$toStation,$back_data); - } - $return_data->httpstatus = 200; - $return_data->reason = $reason; - $return_data->cache = $cache; - $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.'",'; + $this->cache = true; + log_message('error','查询为空的链接:'.$url.'|出错的原因:'.$firstdata.'|调用缓存号:'.$obj->tpc_sn.'|缓存生成的时间:'.$obj->tpc_datetime); + }else{ + log_message('error','查询为空的链接:'.$url.'|出错的原因:'.$firstdata.'|缓存为空'); + } + }else{ + $this->BIZ_train_model->addOrUpdate($fromStation,$toStation,$back_data); + } + $return_data->httpstatus = 200; + $return_data->reason = $reason; + $return_data->cache = $cache; + $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->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->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->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->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->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->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->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->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->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.'",'; + if(isset($value->swz_price)){ + if($value->swz_price > 0){ + $swzPrice = $value->swz_price * 10; + $seat_type .= '"9":"'.$swzPrice.'","A9":"¥'.$value->swz_price.'",'; + } } - } - if(isset($value->dw_price)){ - if($value->dw_price > 0){ - $seat_type .= '"F":"¥'.$value->dw_price.'",'; + if(isset($value->dw_price)){ + if($value->dw_price > 0){ + $seat_type .= '"F":"¥'.$value->dw_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; + $i++; } - $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; - $i++; } - } - $return_data->data->map = (object)$obj; - print_r(json_encode($return_data)); - } + $return_data->data->map = (object)$obj; + print_r(json_encode($return_data)); + } } //获取价格 @@ -147,19 +157,29 @@ class search extends CI_Controller{ //余票转换 function ticket_exchange($num){ - if(is_numeric($num)){ - if($num == 0){ - return '无'; - }elseif($num >= 99){ + if(isset($this->cache)){ + $time = strtotime($this->train_date) - time(); + $day = $time / 86400; + if($day > 15){ return '有'; }else{ return $num; } }else{ - if($num == '--'){ - return ''; - } - } + if(is_numeric($num)){ + if($num == 0){ + return '无'; + }elseif($num >= 99){ + return '有'; + }else{ + return $num; + } + }else{ + if($num == '--'){ + return ''; + } + } + } } //发送请求