diff --git a/application/third_party/trainsystem/controllers/addorders.php b/application/third_party/trainsystem/controllers/addorders.php index 0353c5dd..8a0602f6 100644 --- a/application/third_party/trainsystem/controllers/addorders.php +++ b/application/third_party/trainsystem/controllers/addorders.php @@ -17,7 +17,7 @@ class addorders extends CI_Controller{ } public function index(){ - echo 'api manager'; + exit('hello world'); } //自动出票 @@ -47,32 +47,32 @@ class addorders extends CI_Controller{ $back_message = ''; $cold_sn = $item->COLD_SN; $coli_id = $item->coli_id; - $back_data = 1; + $auto_flag = 1; $people_arr = $this->BIZ_train_model->biz_people($cold_sn); $train_info = $this->BIZ_train_model->get_biz_foi($cold_sn); if($item->COLD_SPFS > 1){ //寄送票 - $back_data = 0; + $auto_flag = 0; $back_message .= '-邮寄不自动出票'; } //乘客人数大于5人不出票 if(count($people_arr) > 5){ - $back_data = 0; + $auto_flag = 0; $back_message .= '-乘客人数大于5不自动出票'; } //护照号如果在黑名单的就不自动出票 foreach($people_arr as $people_info){ if(in_array($people_info->BPE_Passport,$black_list)){ - $back_data = 0; + $auto_flag = 0; $back_message .= '-此用户为黑名单用户,不自动出票'; } if(strlen($people_info->BPE_Passport) >= 18){ - $back_data = 0; + $auto_flag = 0; $back_message .= '-护照位数大于18不自动出票'; } @@ -80,27 +80,29 @@ class addorders extends CI_Controller{ } $bpe_sn = substr($bpe_sn,0,strlen($bpe_sn)-1); - //单张票价不能大于1000人民币 - if($train_info[0]->adultcost > 1000){ - $back_data = 0; - $back_message .= '-单价大于1000不自动出票'; + //不是国内支付宝的付款方式的订单需要受到1000元单价限制 + if($item->GAI_Type != '15015' && $item->COLI_State != '8'){ + if($train_info[0]->adultcost > 1000){ + $auto_flag = 0; + $back_message .= '-单价大于1000不自动出票'; + } } //如果为国际火车票就不出票 if(in_array($train_info[0]->FlightsNo, $nation_train)){ - $back_data = 0; + $auto_flag = 0; $back_message .= '-国际火车票不自动出票'; } //无座的订单不做出票 if($train_info[0]->Aircraft == 'WZ'){ - $back_data = 0; + $auto_flag = 0; $back_message .= '-无座不自动出票'; } //香港火车不自动出票 if($train_info[0]->DepartAirport == 'XJA'){ - $back_data = 0; + $auto_flag = 0; $back_message .= '-香港火车不自动出票'; } @@ -109,13 +111,12 @@ class addorders extends CI_Controller{ $depart_diff = ($DepartureDate - $time) / 86400; if($train_info[0]->ArrivalAirport == 'XJA' && $train_info[0]->adultcost > 500 && $depart_diff > 5){ - $back_data = 0; + $auto_flag = 0; $back_message .= '-内地香港火车金额大于500超过五天不自动出票'; } //print_r($train_info); //如果刚好是第三十天的订单 - echo $item->COLI_State; if(($item->COLI_State == '8' || $item->COLI_State == '63')){ $this->isauto = 3; $time_obj = $this->BIZ_train_model->get_saletime($train_info['0']->DepartAirport_cn); @@ -125,16 +126,16 @@ class addorders extends CI_Controller{ //echo $saletime; $sale_diff = (time() - $saletime) / 3600; if($sale_diff > 1){ - $back_data = 0; + $auto_flag = 0; $back_message .= '-超过抢票时间'; }else if($sale_diff <0){ - $back_data = 0; + $auto_flag = 0; $back_message .= '-未到抢票时间'; } } } - if($back_data == 0){ + if($auto_flag == 0){ $string .= '汉特订单号:'.$coli_id.'('.$cold_sn.')'.$back_message.''; }else{ //单个订单提交 @@ -531,7 +532,7 @@ class addorders extends CI_Controller{ $add_data->endtime = date('H:i',strtotime($data['train']->ArrivalTime)); $add_data->runtime = (strtotime($data['train']->ArrivalTime) - strtotime($data['train']->DepartureTime)) / 60; $add_data->channel = 'tuniu'; - $add_data->isauto = 0; + $add_data->isauto = $this->isauto; $this->train_system_model->add_orders($add_data); echo json_encode($reback); @@ -541,7 +542,8 @@ class addorders extends CI_Controller{ function ctripModel($data,$selectseat,$cold_sn){ $zwcode = $this->db_train_zw[$data['train']->Aircraft]; //座位简码 $zwname = $this->train_zw[$this->db_train_zw[$data['train']->Aircraft]]; //座位名称 - $OrderNumber = ORDERUSER.time(); + $microtime = get_microtime(); + $OrderNumber = ORDERUSER.$microtime; //拼接发送的报文 $PostData = array(); $time = date('Y-m-d H:i:s',time()); @@ -666,8 +668,7 @@ class addorders extends CI_Controller{ $add_data->endtime = date('H:i',strtotime($data['train']->ArrivalTime)); $add_data->runtime = (strtotime($data['train']->ArrivalTime) - strtotime($data['train']->DepartureTime)) / 60; $add_data->channel = 'ctrip'; - $add_data->isauto = 0; - + $add_data->isauto = $this->isauto; //存储到数据库 $this->train_system_model->add_orders($add_data); diff --git a/application/third_party/trainsystem/controllers/api.php b/application/third_party/trainsystem/controllers/api.php index 9d33819d..988fad79 100644 --- a/application/third_party/trainsystem/controllers/api.php +++ b/application/third_party/trainsystem/controllers/api.php @@ -88,14 +88,14 @@ class api extends CI_Controller{ $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"; + /*$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)); + $this->BIZ_train_model->update_biz_jol(array("ts_ordernumber"=>$jh_order),array("ts_sendmail"=>1,"ts_m_sn"=>$flag));*/ } } diff --git a/application/third_party/trainsystem/controllers/callback.php b/application/third_party/trainsystem/controllers/callback.php index fe9659db..e3128fcc 100644 --- a/application/third_party/trainsystem/controllers/callback.php +++ b/application/third_party/trainsystem/controllers/callback.php @@ -97,6 +97,7 @@ class callback extends CI_Controller{ $back_json = GetPost_http(JUHE_TRAIN_PAY_API,$post_data); $update_data->bookcallback = $data_post["data"]; }elseif($data->status == "4"){ + $add_train_order_data = new stdClass(); $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; @@ -153,7 +154,7 @@ class callback extends CI_Controller{ public function ctripcallback(){ $back_json = file_get_contents('php://input'); log_message('error','携程回调信息:'.$back_json); - //$back_json = '{"@attributes":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance"},"Authentication":{"TimeStamp":"2019-06-27 11:01:15","ServiceName":"web.order.notifyTicket","MessageIdentity":"08F97DF046FC32BB3F0CCBAF2DAAFB60","PartnerName":"tieyou"},"TrainOrderService":{"OrderInfo":{"OrderNumber":"guilintravel1561604425","ElectronicOrderNumber":"ED35331748","OrderType":"\u7535\u5b50","OrderTotleFee":"490.50","TicketInfo":{"OrderTicketFromStation":"\u54c8\u5c14\u6ee8\u897f","OrderTicketToStation":"\u5317\u4eac","OrderTicketYMD":"20190726","OrderTicketTime":"10:43","OrderTicketCheci":"D102","OrderTicketPrice":"490.50","OrderAcceptSeat":{"0":"\n "},"OrderTicketSeat":"\u4e00\u7b49\u5ea7","SeatNumber":"08\u8f66\u53a214F\u53f7","railwayTip":{"0":"\n "},"AuditTicketCount":"1","ChildTicketCount":"0","Passengers":{"Passenger":{"RealName":"SHCHERBAKOVOLEG","IdentityType":"\u62a4\u7167","NumberID":"655103175","TicketType":"\u6210\u4eba\u7968","Birth":{"0":"\n "},"InsuranceCount":"0"}}},"TicketInfoFinal":{"OrderTicketFromStation":"\u54c8\u5c14\u6ee8\u897f","OrderTicketToStation":"\u5317\u4eac","ChildBillid":{"0":"\n "},"ElectronicOrderNumber":"ED35331748","Result":"2","NoTicketReasons":{"0":"\n "},"OrderTicketYMD":"20190726","OrderTicketTime":"10:43","OrderTicketCheci":"D102","OrderTicketPrice":"490.50","SeatNumber":"08\u8f66\u53a214F\u53f7","railwayTip":{"0":"\n "},"TicketCheck":"\u68c0\u7968\u53e3B3\u53f7\u53e3","IsUserAcount":"0","ReturnFlag":"0","RescheduleFlag":"0","Tickets":{"Ticket":{"OrderTicketSeat":"\u4e00\u7b49\u5ea7","TicketType":"\u6210\u4eba\u7968","OrderTicketPrice":"490.50","TicketCount":"1","DetailInfos":{"DetailInfo":{"PassengerName":"SHCHERBAKOVOLEG","IdentityType":"\u62a4\u7167","NumberID":"655103175","SeatNo":"08\u8f66\u53a214F\u53f7"}}}}}}}}'; + //$back_json = '{"@attributes":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance"},"Authentication":{"TimeStamp":"2019-07-03 10:21:52","ServiceName":"web.order.notifyTicket","MessageIdentity":"3EB2E92F2105B787DFA590038B402A45","PartnerName":"tieyou"},"TrainOrderService":{"OrderInfo":{"OrderNumber":"guilintravel1562120461","ElectronicOrderNumber":"EE78512679","OrderType":"\u7535\u5b50","OrderTotleFee":"1595.00","TicketInfo":{"OrderTicketFromStation":"\u5317\u4eac\u897f","OrderTicketToStation":"\u897f\u5b89","OrderTicketYMD":"20190719","OrderTicketTime":"20:12","OrderTicketCheci":"Z43","OrderTicketPrice":"797.50","OrderAcceptSeat":{"0":"\n "},"OrderTicketSeat":"\u9ad8\u7ea7\u8f6f\u5367","SeatNumber":"14\u8f66\u53a203\u53f7\u4e0b\u94fa,14\u8f66\u53a204\u53f7\u4e0a\u94fa","railwayTip":{"0":"\n "},"AuditTicketCount":"2","ChildTicketCount":"0","Passengers":{"Passenger":[{"RealName":"HUEIRENPAN","IdentityType":"\u62a4\u7167","NumberID":"505548383","TicketType":"\u6210\u4eba\u7968","Birth":{"0":"\n "},"InsuranceCount":"0"},{"RealName":"HUEIYUANPAN","IdentityType":"\u62a4\u7167","NumberID":"523490332","TicketType":"\u6210\u4eba\u7968","Birth":{"0":"\n "},"InsuranceCount":"0"}]}},"TicketInfoFinal":{"OrderTicketFromStation":"\u5317\u4eac\u897f","OrderTicketToStation":"\u897f\u5b89","ChildBillid":{"0":"\n "},"ElectronicOrderNumber":"EE78512679","Result":"2","NoTicketReasons":{"0":"\n "},"OrderTicketYMD":"20190719","OrderTicketTime":"20:12","OrderTicketCheci":"Z43","OrderTicketPrice":"797.50","SeatNumber":"14\u8f66\u53a203\u53f7\u4e0b\u94fa","railwayTip":{"0":"\n "},"TicketCheck":{"0":"\n "},"IsUserAcount":"0","ReturnFlag":"0","RescheduleFlag":"0","Tickets":{"Ticket":[{"OrderTicketSeat":"\u9ad8\u7ea7\u8f6f\u5367","TicketType":"\u6210\u4eba\u7968","OrderTicketPrice":"814.50","TicketCount":"1","DetailInfos":{"DetailInfo":{"PassengerName":"HUEIRENPAN","IdentityType":"\u62a4\u7167","NumberID":"505548383","SeatNo":"14\u8f66\u53a203\u53f7\u4e0b\u94fa"}}},{"OrderTicketSeat":"\u9ad8\u7ea7\u8f6f\u5367","TicketType":"\u6210\u4eba\u7968","OrderTicketPrice":"780.50","TicketCount":"1","DetailInfos":{"DetailInfo":{"PassengerName":"HUEIYUANPAN","IdentityType":"\u62a4\u7167","NumberID":"523490332","SeatNo":"14\u8f66\u53a204\u53f7\u4e0a\u94fa"}}}]}}}}}'; $ctrip_backdata = json_decode($back_json); //print_r($ctrip_backdata);die(); if(!empty($ctrip_backdata)){ @@ -293,7 +294,7 @@ class callback extends CI_Controller{ //退票时还需要单独对对每个乘客存储回调信息 $passpager_info = new stdClass(); $passpager_info->returncallback = $back_json; - $passpager_info->OrderStatus = '7'; + $passpager_info->status = '7'; $passpager_info->ordernumber = $ctrip_backdata->TrainOrderService->OrderNumber; $passpager_info->realname = $ctrip_backdata->TrainOrderService->refundTicket->realName; $passpager_info->numberid = $ctrip_backdata->TrainOrderService->refundTicket->passport; diff --git a/application/third_party/trainsystem/controllers/returnorders.php b/application/third_party/trainsystem/controllers/returnorders.php index a4a9b263..86478387 100644 --- a/application/third_party/trainsystem/controllers/returnorders.php +++ b/application/third_party/trainsystem/controllers/returnorders.php @@ -132,12 +132,15 @@ class returnorders extends CI_Controller{ $PostData = array(); $TimeStamp = time(); $time = date('Y-m-d H:i:s',$TimeStamp); + + $PostData['Authentication'] = new stdClass(); $PostData['Authentication']->TimeStamp = $time; $PostData['Authentication']->ServiceName = 'order.ticketReturn'; $PostData['Authentication']->PartnerName = ORDERUSER; $MessageIdentity = md5($time.'order.ticketReturn'.ORDERKEY); $PostData['Authentication']->MessageIdentity = $MessageIdentity; - + + $PostData['TrainOrderService'] = new stdClass(); $PostData['TrainOrderService']->contactName = '陈宇超'; $PostData['TrainOrderService']->contactMobile = '18877381547'; $PostData['TrainOrderService']->OrderNumber = $ticket_data->ts_ordernumber; @@ -159,7 +162,7 @@ class returnorders extends CI_Controller{ //发起退票请求 $Url = 'http://m.ctrip.com/restapi/soa2/11009/json/PartnerReturnTicket'; - $ResponseJson = GetPost_http($Url,json_encode($PostData),'POST'); + $ResponseJson = GetPost_http($Url,json_encode($PostData),'json'); $ResponseData = json_decode($ResponseJson); if($ResponseData->Status == 'SUCCESS'){ diff --git a/application/third_party/trainsystem/helpers/train_helper.php b/application/third_party/trainsystem/helpers/train_helper.php index 99e2914a..bbd5fcd6 100644 --- a/application/third_party/trainsystem/helpers/train_helper.php +++ b/application/third_party/trainsystem/helpers/train_helper.php @@ -74,4 +74,9 @@ function GetPost_http($url, $data = '',$format='') { return $tmpInfo; // } +function get_microtime (){ + list($s1, $s2) = explode(' ', microtime()); + return (float)sprintf('%.0f', (floatval($s1) + floatval($s2)) * 1000); +} + ?> \ No newline at end of file diff --git a/application/third_party/trainsystem/models/BIZ_train_model.php b/application/third_party/trainsystem/models/BIZ_train_model.php index 01c2ef1b..ff80ced8 100644 --- a/application/third_party/trainsystem/models/BIZ_train_model.php +++ b/application/third_party/trainsystem/models/BIZ_train_model.php @@ -253,7 +253,7 @@ class BIZ_train_model extends CI_Model { //自动获取符合自动出票要求的订单的coli_sn function auto_check_ticket(){ - $sql = "SELECT distinct top 50 COLD_SN ,coli_id,COLD_SPFS,COLI_State + $sql = "SELECT distinct top 50 COLD_SN ,coli_id,COLD_SPFS,COLI_State,GAI_Type FROM BIZ_ConfirmLineInfo bcli inner join BIZ_ConfirmLineDetail bcld on COLD_COLI_SN=COLI_SN LEFT JOIN BIZ_GroupAccountInfo bgai @@ -261,8 +261,8 @@ class BIZ_train_model extends CI_Model { WHERE bcli.COLI_ServiceType = '2' AND bcli.COLI_State in ('11','13','8','63') AND bcli.COLI_WebCode in ('cht', 'JP', 'train_it', 'VC', 'train_ru','GM-Train','SHT','CT','WebMob-biz','WeChat-biz') - AND (bcli.COLI_Price - bgai.GAI_SQJE) <= 20 - AND (bcli.COLI_Price - bgai.GAI_SQJE) >= 0 + AND (bcli.COLI_Price - bgai.GAI_Money) <= 20 + AND (bgai.GAI_Money - bcli.COLI_Price) >= 0 AND bcli.DeleteFlag = 0 AND bgai.DeleteFlag = 0 AND bcld.DeleteFlag = 0 diff --git a/application/third_party/trainsystem/models/train_system_model.php b/application/third_party/trainsystem/models/train_system_model.php index 589ea4c1..3dcc4061 100644 --- a/application/third_party/trainsystem/models/train_system_model.php +++ b/application/third_party/trainsystem/models/train_system_model.php @@ -266,7 +266,7 @@ class train_system_model extends CI_Model { } public function test(){ - $sql = "delete from trainsystem where ts_cold_sn = '488121613_1552637689'"; + $sql = "delete from trainsystem where ts_id in ('13111','13081')"; $query = $this->INFO->query($sql); } } \ No newline at end of file diff --git a/application/third_party/tuniu/helpers/tuniu_helper.php b/application/third_party/tuniu/helpers/tuniu_helper.php index 55a44a9c..9ba358dd 100644 --- a/application/third_party/tuniu/helpers/tuniu_helper.php +++ b/application/third_party/tuniu/helpers/tuniu_helper.php @@ -30,6 +30,11 @@ } } + function get_microtime (){ + list($s1, $s2) = explode(' ', microtime()); + return (float)sprintf('%.0f', (floatval($s1) + floatval($s2)) * 1000); + } + //发送请求函数 function post_tuniu($url, $data = '', $method = 'GET') { $curl = curl_init(); // 启动一个CURL会话