diff --git a/application/third_party/trainsystem/controllers/api.php b/application/third_party/trainsystem/controllers/api.php index a2c810d7..567d7471 100644 --- a/application/third_party/trainsystem/controllers/api.php +++ b/application/third_party/trainsystem/controllers/api.php @@ -413,6 +413,77 @@ class api extends CI_Controller{ } } + + //澜海账单导出api + public function lanhai_export_excel(){ + set_time_limit(0); + + //参数 + $from_date = $this->input->post("from_date"); + $to_date = $this->input->post("to_date"); + if(!empty($from_date) && !empty($to_date)){ + //拼接发送的报文 + $PostData = new stdClass(); + $bodyInfo = new stdclass(); + $bodyInfo->startTime = $from_date." 00:00:00"; + $bodyInfo->endTime = $to_date." 23:59:59"; + $bodyInfo->pageNum = 1; + $bodyInfo->pageSize = 20000; + + $authentication = new stdClass(); //需加密的数据 + $authentication->appId = LANHAI_appId; + + //加密 + $this->load->library("aesLanhai"); + $aesUnit = new Security(); + $resultData = $aesUnit->encryptData(json_encode($bodyInfo)); + + $PostData->bodyInfo = $resultData; + $PostData->authentication = $authentication; + + //echo (json_encode($PostData)); + + $url = LANHAI_URL."api/open/bill"; + $ResponseJson = GetPost_http($url,json_encode($PostData,JSON_UNESCAPED_UNICODE),'json'); + $ResponseData = json_decode($ResponseJson); + if($ResponseData->code == 0 && $ResponseData->success){ + + $string_r = "";//输出 + $arr = array();//整合完成的数组,写进excel表的数据 + + foreach ($ResponseData->data->records as $record) { + # code... + $arrRecord = array(); + $arrRecord["saveDay"] = $record->saveDay; + $arrRecord["type"] = $record->type; //类型 包括:出票、低改高、出票退票、改签退票、退票 + $arrRecord["mainOrderId"] = $record->mainOrderId; //订单号 + $arrRecord["passengerName"] = $record->passengerName; //乘车人 + $arrRecord["price"] = $record->price ;//金额,整数是支付票款,负数是退回金额 + $arrRecord["wl"] = ""; //外联 + $arrRecord["griName"]=""; //团号 + $orderData = $this->train_system_model->get_OPIName($record->mainOrderId); + if (!empty($orderData)){ + $arrRecord["wl"] = $orderData->OPIName; + $arrRecord["griName"] = $orderData->griName; + } + + $arr[] = $arrRecord; + } + + //print_r($arr); + + + //写入excel模板 + header("Content-type:application/vnd.ms-excel;charset=utf-8"); + header("Content-Disposition:attachment;filename=juhe_train.xls"); + $string_r= $this->load->view("lanhai_transaction_excel",array("arr"=>$arr),TRUE); + echo $string_r;die; + + } + + } + + } //订单同步到trainsystem public function sync_orders(){ diff --git a/application/third_party/trainsystem/controllers/pages.php b/application/third_party/trainsystem/controllers/pages.php index 296d2d06..7fd3259b 100644 --- a/application/third_party/trainsystem/controllers/pages.php +++ b/application/third_party/trainsystem/controllers/pages.php @@ -245,14 +245,21 @@ class pages extends CI_Controller{ //账单导出页面 public function export(){ - if(get_cookie('dingname') == '' && get_cookie('dingunionid') == ''){ - redirect('/apps/dinglogin/login/?returnurl=/apps/trainsystem/pages/'); - } + // if(get_cookie('dingname') == '' && get_cookie('dingunionid') == ''){ + // redirect('/apps/dinglogin/login/?returnurl=/apps/trainsystem/pages/'); + // } $this->load->view('header'); $this->load->view('export'); $this->load->view('footer'); } + //澜海账单导出页面 + public function lanhaiExport(){ + $this->load->view('header'); + $this->load->view('export_lanhai'); + $this->load->view('footer'); + } + //预售时间列表 public function presale_list(){ $page_size = 10; @@ -337,6 +344,115 @@ class pages extends CI_Controller{ echo $rUrl; } + //澜海查询信息 + public function lanhaiMsg(){ + + $order = $this->input->get_post("order"); //订单号 + $type = $this->input->get_post("type"); //出票,退票,账单等类型 + + $microtime = get_microtime(); //时间戳 + //生成接口请求头参数 + $timestamp = $microtime; + $appId = LANHAI_appId; + + if ($type == "orderticket"){ + $url = LANHAI_URL."api/open/get/orderDetails"; + }else if ($type == "returnticket"){ + $url = LANHAI_URL."api/open/get/orderRefundDetails"; + } + + //拼接发送的报文 + $PostData = new stdClass(); + $PostData->mainOrderId = $order; + $PostData->timestamp = $timestamp; + $PostData->appId = $appId; + + $ResponseJson = GetPost_http($url,json_encode($PostData),'json'); + //log_message('error','澜海出票详细信息:'.$ResponseJson); + $ResponseData = json_decode($ResponseJson); + if (isset($ResponseData->data)){ + // //需要解密 + $this->load->library("aesLanhai"); + $aesUnit = new Security(); + $data = json_decode($aesUnit->decryptData($ResponseData->data)); + + $result = array(); + $this->handle_array($data,$type,$result); + $formattedJson = json_encode($result, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); + echo "
$formattedJson
"; + + }else{ + $ResultNoticeResponse = new stdClass(); + $ResultNoticeResponse->returnCode = -1; + $ResultNoticeResponse->success = false; + $ResultNoticeResponse->returnMsg = "找不到订单数据!"; + $formattedJson = json_encode($ResultNoticeResponse, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); + echo $formattedJson; + } + } + + //循环展示JSON + private function handle_array($arr,$type,&$array_to_fill){ + foreach($arr as $key => $value){ + if(is_array($value) || is_object($value)){ + $array_to_fill[$key] = array(); + $this->handle_array($value,$type, $array_to_fill[$key]); + }else{ + if ($type=="orderticket"){ //出票特殊显示 + if ($key == "passengerType"){ + if ($value==0){ + $value = "成人"; + }else if($value == 1){ + $value = "儿童"; + } + } + + if ($key == "certificateType"){ + if ($value==1){ + $value = "身份证"; + }else if ($value == 2) { + $value = "护照"; + }else if ($value == 7){ + $value = "回乡证"; + }else if ($value == 8 ){ + $value = "台胞证"; + } + } + + if ($key == "status"){ + switch ($value) { + case 0: + $value = "待出票"; + break; + case 1: + $value = "锁定订单"; + break; + case 2: + $value = "已出票"; + break; + case 3: + $value = "超时订单"; + break; + case 4: + $value = "已驳回"; + break; + case 6: + $value = "出票超时"; + break; + case 12: + $value = "锁单失败"; + break; + default: + # code... + break; + } + } + } + $array_to_fill[$key] = $value; + } + } + } + public function presale_add(){ $this->load->view('header'); diff --git a/application/third_party/trainsystem/models/train_system_model.php b/application/third_party/trainsystem/models/train_system_model.php index cd01a5e4..32c0cd64 100644 --- a/application/third_party/trainsystem/models/train_system_model.php +++ b/application/third_party/trainsystem/models/train_system_model.php @@ -63,7 +63,9 @@ class train_system_model extends CI_Model { AND {$where} ORDER BY InfoManager.dbo.trainsystem.ts_subtime DESC"; - + // echo($sql); + // die(); + $query = $this->HT->query($sql); $data->list=$query->result(); return $data; @@ -377,4 +379,27 @@ class train_system_model extends CI_Model { $query = $this->INFO->query($sql,array($tst_id)); return $query->row(); } + + //根据订单号获取外联名称 + public function get_OPIName($orderNumber){ + $sql = "select top 1 + (SELECT TOP 1 OPI2_Name + FROM OperatorInfo2 + WHERE OPI2_OPI_SN = coli_opi_id + AND OPI2_LGC = 2 + ) AS OPIName, + (select top 1 Gri_No from GRoupInfo where GRI_SN=BIZ_ConfirmLineInfo.COLI_GRI_SN) as griName + + FROM InfoManager.dbo.trainsystem + INNER JOIN BIZ_ConfirmLineInfo ON BIZ_ConfirmLineInfo.COLI_SN = ( + SELECT COLD_COLI_SN + FROM BIZ_ConfirmLineDetail + WHERE COLD_SN = InfoManager.dbo.trainsystem.ts_cold_sn + ) + where ts_ordernumber=? + "; + + $query = $this->HT->query($sql,array($orderNumber)); + return $query->row(); + } } \ No newline at end of file diff --git a/application/third_party/trainsystem/views/export.php b/application/third_party/trainsystem/views/export.php index 1da65ee6..8811d267 100644 --- a/application/third_party/trainsystem/views/export.php +++ b/application/third_party/trainsystem/views/export.php @@ -5,8 +5,8 @@
- " autocomplete="off">至 - " autocomplete="off"> + " autocomplete="off" placeholder="开始日期">  至   + " autocomplete="off" placeholder="结束日期"> 审核状态: name="examine" />   
diff --git a/application/third_party/trainsystem/views/export_lanhai.php b/application/third_party/trainsystem/views/export_lanhai.php new file mode 100644 index 00000000..484880b5 --- /dev/null +++ b/application/third_party/trainsystem/views/export_lanhai.php @@ -0,0 +1,76 @@ +
+
+
+

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

+
+
+
+ " autocomplete="off" placeholder="开始日期">  至   + " autocomplete="off" placeholder="结束日期"> + 显示列表: name="examine" />    + +
+

+ +

" style="width:90%;margin:0 auto;"> +
+ + + + + + + $value) {?> + + + + + + +
时间信息变化值团名外联
+
+
+
+
+ +
+ + \ No newline at end of file diff --git a/application/third_party/trainsystem/views/homepage.php b/application/third_party/trainsystem/views/homepage.php index 2dff24b7..718ab26a 100644 --- a/application/third_party/trainsystem/views/homepage.php +++ b/application/third_party/trainsystem/views/homepage.php @@ -77,8 +77,8 @@ function selseat(seat){
-

翰特订单号 订单列表>>预售时间维护>> 版本:V2.0聚合余额(RMB):

- +

翰特订单号 订单列表>>预售时间维护>> 澜海导出账单>>版本:V2.0

+
diff --git a/application/third_party/trainsystem/views/lanhai_transaction_excel.php b/application/third_party/trainsystem/views/lanhai_transaction_excel.php new file mode 100644 index 00000000..77b93253 --- /dev/null +++ b/application/third_party/trainsystem/views/lanhai_transaction_excel.php @@ -0,0 +1,181 @@ + + + + + c21 + c21 + 2024-08-07T01:21:46Z + 2024-08-07T01:38:10Z + 1.00 + + + 9630 + 21555 + 0 + 90 + False + False + + + + + + + + + + + + + + + + + + + + + 三亚澜海商旅服务有限公司 地址:海南省三亚市崖州区崖州湾科技城雅布伦产业园5号楼3楼310室 开户银行:三亚惠民村镇银行 银行账号:2019 0379 3100 12 + + + + 桂林海纳国际旅行社有限公司火车票对账文件 + + + 账单日期 + 账单类型 + 结算金额 + 订单号 + 外联 + 团号 + 乘客 + + =0;$i--){?> + + + + + + + + + + + + + +
+ + +
+
diff --git a/application/third_party/trainsystem/参考接口数据/澜海出票回调信息.js b/application/third_party/trainsystem/参考接口数据/澜海出票回调信息.js index 2e1f468b..5674dba9 100644 --- a/application/third_party/trainsystem/参考接口数据/澜海出票回调信息.js +++ b/application/third_party/trainsystem/参考接口数据/澜海出票回调信息.js @@ -1,3 +1,4 @@ +/**/ { "bodyInfo": "HEYIbCfmv/d057K+gdHTKpv7FVeC4QYpF178Zu69jv0lxaHZbPc6GyiuJFTf1ZT9dFZCWKnHw0tFTZkNepGH7oLkt0CS2h1IEiSs0XPwnzKN9g/RlEaiMPh7rl9ZuBIFxaWRvyKK1cxjxb5CZxrjaIaV/Cm3hmdsIFum2vSGsuTy3FwjRty6RvI+d1rMy+XcInKWewzd9eCUgpA5u68SL9IJJ9TzbKpHI0f9ab/Cu28m2v7ZpQPWC3DgqYgP84x6NFniu0Js/PXU3e5a2lZz1z+a4gX2NvGNINMvNsClpzRzikEVTWqxhz/apLcwnDEJwS2Spt8zt9g3aVgtF6jc9QOdWZYrzuNWV2DH0mdn8Cyb1gqRK+0nLtPQt/NzO0xVLHlZuCsSTW9/r7ZjDd07gX6D+EQzDXVGpKbP+TerNOu77V+SYC5VDBYycpfa+w6Z48OzLZL5D4KN/y5lFI1cWK4MQ8IMlBHd8UUu5Rurx7yCLZvKsaxAK6MzW+Kdf7hza+B18AwPrtvXZ26H66kSF6FK4s6hvrvyeGsUxj2teHdDr9XjDsEnjw8qdamUYSModr0tfQyX5HW7bENc8w8mvCHvJS+fz/eiZctPQ+p8t+RCv0OBwIEVRtivFvkTB3M8xtsAO1oM1LtX13FoSsxyzNFB2d4rTj1K1fPbhmxMKGWmxDdPy4JOzk9OEB9cbG4a22bI/vSnp+YDqu5a/Vp9EeIBOfYUNXTpqnhBaff8ORreXEehjKJzrKZ8XKKcxo7V5S5P02RV2cO9V/v5uL/rbSPBnmR+9qizb9aBBjUKedBLVXXZO1sKJOohv71qFKXauNc6ASW/1iKl08mW4MYAlR1IL1UDr0aWhw7OhYDK+fbRlh55kALEfmn98bvwltrS56QWULdzfpTYSiVnOZ165NX8ywcT+CwF1+WGY6Hj+uYNeIulZKI9XBUKcmqat5RwUEyMNKB3KAdizeiOzp6QAomCttz7XxXJ9h+mWkhDipY8jktMX2Ss3zRCuO0lGphtFxpYdJ3sPYtQnRD71wSUeMVnNzSBcmYBwG3l2tlBrjtIddHp60ZUIYnUcFMKriPn7iO3UWWlVz/XX0ELHrLcXQ==", "authentication": { @@ -6,3 +7,127 @@ "mainOrderId": "HN1721115685991" } } + +/*ر*/ +{ + "agentCode": "3649601564", + "contactMobile": "18877331805", + "currentTime": "2024-07-16 15:42:48", + "eOrderNumber": "EGW1561545", + "failCode": 0, + "mainOrderId": "HN1721115685991", + "orderPrice": "6.0", + "orderResultCode": 200, + "payTradeNumber": "1452204560486540561056048965", + "resultMsg": "\u51fa\u7968\u6210\u529f", + "ticketList": [{ + "arriveTime": "2024-07-18 09:23", + "deliveryTicketId": 586043269, + "departTime": "2024-07-18 09:13", + "fromStationName": "\u6842\u6797", + "passengerList": [{ + "carriageNo": "01", + "passengerId": 571060468, + "passengerName": "\u8d75\u9e4f", + "passengerType": 1, + "passportNumber": "450303197904120517", + "passportType": "1", + "passportTypeName": "\u8eab\u4efd\u8bc1", + "realTicketPrice": "6.0", + "seatName": "\u4e8c\u7b49\u5ea7", + "seatNo": "2A", + "ticketName": "" + } + ], + "ticketCount": 1, + "ticketPrice": "6.0", + "toStationName": "\u6842\u6797\u5317", + "trainNumber": "G2910" + } + ], + "ticketSuccessTime": "2024-07-16 15:42:48", + "userId": 428 +} +/**˵б*/ +{ + "success": true, + "code": "0", + "msg": "", + - "data": { + - "records": [ + - { + "saveDay": "2024-07-31", + "type": "Ʊ", + "mainOrderId": "HN1722438313448", + "dataId": null, + "ticket12306Id": "E1W1330191", + "trainNum": "K73", + "fromStation": "챱", + "toStation": "żҽ", + "fromTime": "2024-08-12 08:32", + "passengerName": "ABAJO LOPEZ LUCIA", + "price": 69, + "oldPrice": null, + "changeCost": null, + "handleTime": "2024-07-31 23:08:08", + "createTime": "2024-07-31 23:05:32" + }, + - { + "saveDay": "2024-07-31", + "type": "Ʊ", + "mainOrderId": "HN1722438313448", + "dataId": null, + "ticket12306Id": "E1W1330191", + "trainNum": "K73", + "fromStation": "챱", + "toStation": "żҽ", + "fromTime": "2024-08-12 08:32", + "passengerName": "ESCAMILLA QUILES MARIO", + "price": 69, + "oldPrice": null, + "changeCost": null, + "handleTime": "2024-07-31 23:08:08", + "createTime": "2024-07-31 23:05:32" + }, + - { + "saveDay": "2024-08-01", + "type": "Ʊ", + "mainOrderId": "HN1722441803173", + "dataId": null, + "ticket12306Id": "E2W4589927", + "trainNum": "D954", + "fromStation": "˲", + "toStation": "Ϻ", + "fromTime": "2024-08-13 14:06", + "passengerName": " PALOMA PALENCIA GRANDE", + "price": 676, + "oldPrice": null, + "changeCost": null, + "handleTime": "2024-08-01 00:06:37", + "createTime": "2024-08-01 00:03:56" + }, + - { + "saveDay": "2024-08-01", + "type": "Ʊ", + "mainOrderId": "HN1722441803173", + "dataId": null, + "ticket12306Id": "E2W4589927", + "trainNum": "D954", + "fromStation": "˲", + "toStation": "Ϻ", + "fromTime": "2024-08-13 14:06", + "passengerName": "FRANCISCO RAFAEL GARCIA TUDELA", + "price": 676, + "oldPrice": null, + "changeCost": null, + "handleTime": "2024-08-01 00:06:37", + "createTime": "2024-08-01 00:03:56" + } + ], + "total": 4, + "size": 100, + "current": 1, + "searchCount": true, + "pages": 1 + } +} \ No newline at end of file