load->helper('train'); $this->load->model("BIZ_train_model"); $this->load->model("train_system_model"); $this->load->model("Sendmail_model"); } public function index(){ echo 'api manager'; } //获取订单出票状态 public function isbooktickets(){ $cold_sn = $this->input->get('cold_sn'); $tickets_info = $this->train_system_model->get_tickets_info($cold_sn); //print_r($tickets_info); if(!empty($tickets_info)){ $return_data = array(); $i = 0; foreach($tickets_info as $items){ $return_data[$i] = new stdClass(); $return_data[$i]->cold_sn = (int) $items->ts_cold_sn; $return_data[$i]->ordernumber = $items->ts_ordernumber; $return_data[$i]->status = $items->tst_status; $return_data[$i]->passengersename = $items->tst_realname; $return_data[$i]->passportseno = $items->tst_numberid; $i++; } print_r(json_encode($return_data)); }else{ return null; } } //用于自动发送确认信 public function send_confirmmail(){ //log_message('error','auto sendmail'); $mailarr = $this->BIZ_train_model->auto_sendmail(); foreach($mailarr as $obj){ $coli_id = $this->BIZ_train_model->cold_sn_get_coli_id($obj->ts_cold_sn); $coli_id = $coli_id[0]->COLI_ID; $juhe_order = $obj->ts_ordernumber; $this->send_mail_to_guest($coli_id,$juhe_order); } } //发邮件给客人 function send_mail_to_guest($coli_id,$jh_order){ $info = $this->BIZ_train_model->get_user_info($jh_order); $guest = $this->BIZ_train_model->get_guest_info($coli_id); //print_r($guest); $operator_info = $this->BIZ_train_model->get_operatorInfo($coli_id); $fromName = $operator_info[0]->Name; $fromEmail = $operator_info[0]->OPI_Email; $toName = $guest[0]->GUT_LastName.$guest[0]->GUT_FirstName; $toEmail = $guest[0]->GUT_Email;// $data['coli_id'] = $coli_id; $data['toname'] = $toName; $data['adult'] = $info->COLD_PersonNum; $data['chlid'] = $info->COLD_ChildNum; $data['baby'] = $info->COLD_BabyNum; $data['price'] = $this->BIZ_train_model->get_paypal($coli_id); $data['allpeople'] = $this->BIZ_train_model->biz_people($info->COLD_SN); $data['train_info'] = $this->BIZ_train_model->get_biz_foi($info->COLD_SN); $differtime = (strtotime($data['train_info'][0]->DepartureTime) - time()) / 3600; $obj = $this->BIZ_train_model->get_biz_jol_info($info->COLD_SN,$jh_order); $data['ordernumber'] = $obj->ts_elecnumber; $status = $obj->ts_status; $data['operator'] = $operator_info; $data['emailarr'] = explode(';',$operator_info[0]->Email); $data['seatinfo'] = $obj->ts_seatsinfo; if($status == '4' && $differtime > 0){ $subject = "Got payment and issued train ticket(s), Order No $coli_id"; $body = $this->load->view('email',$data,true); $this->send_mail_to_wl("订单:{$coli_id} 出票成功","翰特订单号:{$coli_id};聚合订单号:{$jh_order}",$coli_id); //发送邮件给客人 $flag = $this->Sendmail_model->SendMailToTable($fromName,$fromEmail,$toName,$toEmail,$subject,$body); $this->BIZ_train_model->update_biz_jol(array("ts_ordernumber"=>$jh_order),array("ts_sendmail"=>1,"ts_m_sn"=>$flag)); }else if($status == '1'){ $subject = "The train ticket(s) will be issued manually, Order No $coli_id"; $body = $this->load->view('email_fault',$data,true); $this->send_mail_to_wl("订单:{$coli_id} 出票失败","翰特订单号:{$coli_id};聚合订单号:{$jh_order}",$coli_id); //测试阶段,将失败邮件发送一份给操作外联。 $flag = $this->Sendmail_model->SendMailToTable($fromName,$fromEmail,$fromName,$fromEmail,$subject,$body); //测试阶段,将失败邮件发送一份给操作外联。 $this->Sendmail_model->SendMailToTable($fromName,$fromEmail,$toName,$toEmail,$subject,$body); $this->BIZ_train_model->update_biz_jol(array("ts_ordernumber"=>$jh_order),array("ts_sendmail"=>1,"ts_m_sn"=>$flag)); } } //发邮件给外联 function send_mail_to_wl($subject,$body,$coli_id){ $fromName = "cyc"; $fromEmail = "cyc@hainatravel.com"; //获取该订单的操作员的邮箱以及姓名 $info = $this->BIZ_train_model->get_operatorInfo($coli_id); $toName = $info[0]->OPI_Name; $toEmail = $info[0]->OPI_Email; $this->Sendmail_model->SendMailToTable($fromName,$fromEmail,$toName,$toEmail,$subject,$body); } //导出账单api public function export_excel(){ set_time_limit(0); //创建跟踪号 $trackcode = $this->BIZ_train_model->getTrackingCode(); $from_date = $this->input->post("from_date"); $to_date = $this->input->post("to_date"); $examine = $this->input->post("examine"); //$operator=$this->input->post("operator"); $reback=array();//返回的数据 $reback["from_date"] = $from_date; $reback["to_date"] = $to_date; $reback["examine"] = $examine; $group = array(); 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 = array();//整合完成的数组,写进excel表的数据 $url = JUHE_TRAIN_EXPORT_API;//请求的url $url .= "?key=".JUHE_TRAIN_API_KEY; $url .= "&since=".$from_date; $url .= "&before=".$to_date; $r = GetPost_http($url); $r = explode("\n",$r); //print_r($r); //die(); for($i=1;$iBIZ_train_model->jh_order_get_coli_id($juhe_order); //print_r($obj); if(!empty($obj)){ $coli_id = $obj[0]->COLI_ID; $coli_sn = $obj[0]->COLI_SN; }else{ echo $juhe_order; } $this->BIZ_train_model->linkTrackingCode($coli_sn,$trackcode); /*if(empty($coli_sn) || empty($coli_sn)){ print_r($juhe_order); }*/ /* $flag = $this->BIZ_train_model->islink($coli_sn); if($flag){ $this->BIZ_train_model->linkTrackingCode($coli_sn,$trackcode); }else{ echo $coli_sn.'该订单还未关联财务表,不能导出账单。
'; die(); } */ //去掉数据两边的双引号 $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; $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"); $r_info['trackcode'] = $trackcode; $arr[]=$r_info; /* //根据外联的名字创建数组来存储对应外联的订单信息 if(!empty($r_info[7])){ if(!isset($group[$r_info[7]])){ $group[$r_info[7]] = array(); } array_push($group[$r_info[7]],$r_info); }*/ } /* //将存储好的分组重新循环出来。 foreach($group as $item){ foreach ($item as $value){ array_push($arr,$value); } } */ //die(); if(empty($examine)){ header("Content-type:application/vnd.ms-excel;charset=utf-8"); header("Content-Disposition:attachment;filename=juhe_train.xls"); $string_r= $this->load->view("train_transaction_excel",array("arr"=>$arr),TRUE); echo $string_r;die; }else{ krsort($arr);//数组倒序 $reback["data"]=$arr; } } } //登录验证 public function check_login(){ $code = $this->input->get('code'); $signature = getDingSignature(); $urlencode_signature = urlencode($signature); $personInfoUrl = 'https://oapi.dingtalk.com/sns/getuserinfo_bycode?signature='.$urlencode_signature.'×tamp='.time().'&accessKey=dingoaystremzlahfew1tb'; $post_data = '{"tmp_auth_code":"'.$code.'"}'; $returnJson = GetPost_http($personInfoUrl,$post_data,'json'); $returnData = json_decode($returnJson); if(!empty($returnData->user_info)){ //创建session $this->session->set_userdata('dingname', $returnData->user_info->nick); $this->session->set_userdata('dingunionid', $returnData->user_info->unionid); redirect('http://www.mycht.cn/info.php/apps/trainsystem/pages/'); }else{ redirect('http://www.mycht.cn/info.php/apps/trainsystem/pages/login'); } } public function check_session(){ print_r($this->session->userdata('dingunionid')); } //订单同步到trainsystem public function sync_orders(){ die(); //获取聚合订单 $juhe_orders = $this->train_system_model->getallorders(); $add_data = new stdClass(); foreach ($juhe_orders as $items){ $add_data->ordernumber = $items->JOL_JuheOrder; $add_data->cold_sn = $items->JOL_COLD_SN; $add_data->status = $items->JOL_Status; $add_data->returncode = ''; $add_data->errormsg = $items->JOL_RebackMsg; $add_data->checi = $items->JOL_TrainCode; $add_data->fromstationame = $items->JOL_FromStation; $add_data->fromstationcode = $items->JOL_FromStationCode; $add_data->tostationame = $items->JOL_ToStation; $add_data->tostationcode = $items->JOL_ToStationCode; $trains = json_decode($items->JOL_BackTxt); //print_r($trains->passengers); if(isset($trains->train_date)){ $add_data->startdate = $trains->train_date; }else{ $add_data->startdate = ''; } foreach ($trains->passengers as $passengers){ //对订票乘客进行存储 $data_passager->ordernumber = $items->JOL_JuheOrder; $data_passager->realname = $passengers->passengersename; $data_passager->identitytype = $passengers->passporttypeseidname; $data_passager->numberid = $passengers->passportseno; $data_passager->ticketype = $passengers->piaotypename; $data_passager->ticketprice = $passengers->price; $data_passager->seatype = $passengers->zwname; $data_passager->seatdetail = $passengers->cxin; $data_passager->status = $items->JOL_Status; //print_r($data_passager); $this->train_system_model->add_passagers($data_passager); } $add_data->startime = ''; $add_data->endtime = ''; $add_data->runtime = ''; $add_data->channel = 'juhe'; $add_data->isauto = $items->JOL_IsAuto; $this->train_system_model->add_orders($add_data); //print_r($add_data); } } public function update_order(){ $juhe_orders = $this->train_system_model->getallorders(); foreach ($juhe_orders as $tickets_info){ $ordernumber = $tickets_info->JOL_JuheOrder; $subtime = $tickets_info->JOL_SubTime; $price = $tickets_info->JOL_Price; $this->train_system_model->update_juheorder($ordernumber,$subtime,$price); } } }