diff --git a/webht/third_party/trippestOrderSync/controllers/api.php b/webht/third_party/trippestOrderSync/controllers/api.php index 14a801a5..7d2cada2 100644 --- a/webht/third_party/trippestOrderSync/controllers/api.php +++ b/webht/third_party/trippestOrderSync/controllers/api.php @@ -12,6 +12,8 @@ class Api extends CI_Controller { public function index() { + // echo "string"; + // return; $this->operation_detail(); } @@ -32,57 +34,14 @@ class Api extends CI_Controller { $ret['status'] = 1; $ret['msg'] = ""; $ret['group_number'] = $order_project[0]->COLI_GroupCode; - // 领队名字 - $ret['leader_name'] = trim($order_project[0]->GUT_FirstName . " " . $order_project[0]->GUT_LastName); - $ret['package'] = null; - foreach ($order_project as $kd => $poi) { - $tmp = array(); - // 行程人数 - $tmp['personNum_text'] = $poi->COLD_PersonNum + $poi->COLD_ChildNum; - $tmp['personNum_text'] .= " (" . $poi->COLD_PersonNum . " Adult(s)"; - if ($poi->COLD_ChildNum > 0) { - $tmp['personNum_text'] .= " " . $poi->COLD_ChildNum . " Child(ren)"; - } - $tmp['personNum_text'] .= ")" ; - // 人数 - $tmp['adult_number'] = $order_project[0]->COLD_PersonNum; - $tmp['kid_number'] = $order_project[0]->COLD_ChildNum; - // 出团时间 - $tmp['start_date'] = $poi->COLD_StartDate; - $tmp['end_date'] = $poi->COLD_EndDate; - $tmp['tour_name'] = $poi->PAG2_Name; - $out_datetime = strtotime($poi->COLD_StartDate); - $tmp['dateWeek_text'] = date('D', $out_datetime); - $tmp['dateDay_text'] = date('d', $out_datetime); - $tmp['dateMonth_text'] = date('M', $out_datetime); - $tmp['dateYear_text'] = date('Y', $out_datetime); - // 接送信息 - $tmp['pick_up'] = ""; - $tmp['drop_off'] = ""; - $decode_MemoText = $memo_text_tmp = ""; - if ($poi->COLD_MemoText != null && json_decode($poi->COLD_MemoText) != null) { - $decode_MemoText = json_decode($poi->COLD_MemoText, true); - $tmp['pick_up'] = $decode_MemoText['Pick up']; - $tmp['drop_off'] = $decode_MemoText['Drop off']; - } else { - $memo_text_tmp = trim(strstr($poi->COLD_MemoText, "Pick Up From:")); - $tmp['pick_up'] = trim(strstr($memo_text_tmp, "Drop Off:", true)); - $tmp['drop_off'] = trim(strstr($memo_text_tmp, "Drop Off:")); - } - // 酒店 - $tmp['hotel_name'] = $poi->POI_Hotel; - $tmp['hotel_address'] = $poi->POI_HotelAddress; - $tmp['hotel_tel'] = $poi->POI_HotelPhone; - // 航班/车次 - $tmp['flights_no'] = $poi->POI_FlightsNo; - $tmp['flights_airport'] = $poi->POI_AirPort; - - $ret['package'][] = $tmp; - } -log_message('error',$order_project[0]->GCI_combineNo); - $operation = $this->Orders_model->get_operation($order_project[0]->GCI_combineNo); + $all_combine_no = array_unique(array_map(function($ele) + { + return $ele->GCI_combineNo; + }, $order_project)); + $operation = $this->Orders_model->get_operation($all_combine_no); // 司机, 导游 if ( ! empty($operation)) { + // 按照实际安排的日期分组 foreach ($operation as $key => $value) { if ($value->GCOD_operationType === 'touristCarOperations') { $tmp_car = array(); @@ -95,7 +54,9 @@ log_message('error',$order_project[0]->GCI_combineNo); $tmp_car['car_remark'] = $value->GCOD_remark; $tmp_car['using_startdate'] = $value->GCOD_startDate; $tmp_car['using_enddate'] = $value->GCOD_endDate; - $ret['cardriver'][] = $tmp_car; + $ret['operation'][$value->GCOD_startDate]['cardriver'][] = $tmp_car; + // 出团时间 + $ret['operation'][$value->GCOD_startDate]['start_date'] = $value->GCOD_startDate; } else if ($value->GCOD_operationType === 'guiderOperations') { $tmp_g = array(); @@ -105,10 +66,62 @@ log_message('error',$order_project[0]->GCI_combineNo); $tmp_g['guide_remark'] = $value->GCOD_remark; $tmp_g['using_startdate'] = $value->GCOD_startDate; $tmp_g['using_enddate'] = $value->GCOD_endDate; - $ret['tourguide'][] = $tmp_g; + $ret['operation'][$value->GCOD_startDate]['tourguide'][] = $tmp_g; + // 出团时间 + $ret['operation'][$value->GCOD_startDate]['start_date'] = $value->GCOD_startDate; + } + } + // 加上行程 + foreach ($ret['operation'] as $kro => &$vro) { + $out_datetime = strtotime($vro['start_date']); + $vro['dateWeek_text'] = date('D', $out_datetime); + $vro['dateDay_text'] = date('d', $out_datetime); + $vro['dateMonth_text'] = date('M', $out_datetime); + $vro['dateYear_text'] = date('Y', $out_datetime); + foreach ($order_project as $kd => $poi_info) { + if (strcmp($vro['start_date'], substr($poi->COLD_StartDate, 0, 10) ) === 0) { + $poi = $poi_info; + } else { + $poi = $order_project[0]; + } + $vro['tour_name'] = $poi->PAG2_Name; + // 领队名字 + $vro['leader_name'] = trim($poi->GUT_FirstName . " " . $poi->GUT_LastName); + // 行程人数 + $vro['personNum_text'] = $poi->COLD_PersonNum + $poi->COLD_ChildNum; + $vro['personNum_text'] .= " (" . $poi->COLD_PersonNum . " Adult(s)"; + if ($poi->COLD_ChildNum > 0) { + $vro['personNum_text'] .= " " . $poi->COLD_ChildNum . " Child(ren)"; + } + $vro['personNum_text'] .= ")" ; + // 人数 + $vro['adult_number'] = $order_project[0]->COLD_PersonNum; + $vro['kid_number'] = $order_project[0]->COLD_ChildNum; + // 酒店 + $vro['hotel_name'] = $poi->POI_Hotel; + $vro['hotel_address'] = $poi->POI_HotelAddress; + $vro['hotel_tel'] = $poi->POI_HotelPhone; + // 航班/车次 + $vro['flights_no'] = $poi->POI_FlightsNo; + $vro['flights_airport'] = $poi->POI_AirPort; + // 接送信息 + $vro['pick_up'] = ""; + $vro['drop_off'] = ""; + $decode_MemoText = $memo_text_tmp = ""; + if ($poi->COLD_MemoText != null && json_decode($poi->COLD_MemoText) != null) { + $decode_MemoText = json_decode($poi->COLD_MemoText, true); + $vro['pick_up'] = $decode_MemoText['Pick up']; + $vro['drop_off'] = $decode_MemoText['Drop off']; + } else { + $memo_text_tmp = trim(strstr($poi->COLD_MemoText, "Pick Up From:")); + $vro['pick_up'] = trim(strstr($memo_text_tmp, "Drop Off:", true)); + $vro['drop_off'] = trim(strstr($memo_text_tmp, "Drop Off:")); + } } } + unset($vro); } + $ret['operation'] = array_values($ret['operation']); $operator = $this->Orders_model->get_operator($order_project[0]->COLI_OPI_ID); if ( ! empty($operator)) { $ret['operator']['chinese_name'] = $operator->OPI_Name; diff --git a/webht/third_party/trippestOrderSync/controllers/detail_for_client.md b/webht/third_party/trippestOrderSync/controllers/detail_for_client.md index 318f5540..5363494b 100644 --- a/webht/third_party/trippestOrderSync/controllers/detail_for_client.md +++ b/webht/third_party/trippestOrderSync/controllers/detail_for_client.md @@ -3,92 +3,89 @@ #### POST / GET > `http://www.mycht.cn/webht.php/apps/trippestOrderSync/Api/operation_detail` -参数| 类型 | 示例 ---- | --- | --- -q | string | 180601019 +参数| 类型 | 示例 | - +--- | --- | --- | --- +q | string | 180601019 | 渠道订单, 不返回外联信息 + | | 180524043M | 单接送+Day Tour,共4天 #### RETURN JSON ```json { - "status": 1, // 查询结果; 1-成功; 0-失败 - "msg": "", // 失败信息: Not Found. - "order_info": { - "GCI_SN": 619, - "GCI_VendorOrderId": "18586", - "GCI_combineNo": "S-2018-06-03[25]", - "COLI_SN": 435010334, - "COLI_ID": "180601019", - "COLD_SN": 450021160, - "COLI_GroupCode": "中华游180603-Micky170713021-CHBJ", // 团号 - "COLI_OPI_ID": 435, - "COLD_ServiceSN": 4243, - "COLD_PersonNum": 1, // 成人数量 - "COLD_ChildNum": 0, // 小孩数量 - "COLD_StartDate": "2018-06-03 00:00:00", // 行程日期 - "PAG2_Name": "One-Day Beijing Highlights Mini Group Tour", // 行程名字 - // 酒店相关 - "POI_Hotel": "北京海航大厦万豪酒店", - "POI_HotelAddress": "No.26 Jia Xiaoyun Road, Chaoyang District, Beijing, China北京 朝阳区 霄云路甲26号 ", - "POI_HotelPhone": "010-59278888", - - "leader_name": "Jorge Latorre Alagon", // 领队 - "personNum_text": "1 (1 Adult(s))", // 人数 输出可读 - // 日期 输出可读 - "dateWeek_text": "Sun", - "dateDay_text": "03", - "dateMonth_text": "Jun", - "dateYear_text": "2018", - "pick_up": "北京海航大厦万豪酒店 Beijing Marriott Hotel Northeast", - "drop_off": "北京海航大厦万豪酒店 Beijing Marriott Hotel Northeast" - }, - "operator_info": { // Travel Advisor 信息 - "OPI_SN": 161, - "OPI_Name": "黄俊峻", - "OPI_FirstName": "Niko", - "OPI_MoveTelephone": "18807734970", - "OPI_Email": "niko@chinahighlights.com", - "OPI2_Name": "Niko Huang" // 英文名 - }, - "operation_info": { - "touristCarOperations": { // 车辆,司机信息 - "GCOD_SN": 127883, - "GCOD_VEI_SN": 1343, - "GCOD_GCI_combineNo": "S-2018-06-03[25]", - "GCOD_operationType": "touristCarOperations", - "GCOD_subType": "7座", // 车辆类型 - "GCOD_title": "上海秦健", // 车队,公司 - "GCOD_dutyName": "Mr Qin 秦师傅", // 司机姓名 - "GCOD_dutyTel": "17765106848", // 司机联系电话 - "GCOD_dutyPhoto": null, // 司机头像 - "GCOD_startDate": "2018-06-03", - "GCOD_endDate": "2018-06-03", - "GCOD_useNum": 1, - "GCOD_sumMoney": "800", - "GCOD_standard": "", - "GCOD_carLicense": "沪AZJ228", // 车辆牌照 - "GCOD_remark": "精品一日游;3人;北京瑞吉酒店/北京海航大厦万豪酒店 ", - "GCOD_creatTime": "2018-06-03 23:59:00" - }, - "guiderOperations": { // 导游信息, 单接送的订单没有这个对象 - "GCOD_SN": 127884, - "GCOD_VEI_SN": 1343, - "GCOD_GCI_combineNo": "S-2018-06-03[25]", - "GCOD_operationType": "guiderOperations", - "GCOD_subType": "", - "GCOD_title": "", - "GCOD_dutyName": "北京张豹勋William", // 导游姓名 - "GCOD_dutyTel": "18810790590", // 导游联系电话 - "GCOD_dutyPhoto": "http://djb3c.ltsoftware...", // 导游头像 - "GCOD_startDate": "2018-06-03", - "GCOD_endDate": "2018-06-03", - "GCOD_useNum": 1, - "GCOD_sumMoney": "300", - "GCOD_standard": "", - "GCOD_carLicense": "", - "GCOD_remark": "", - "GCOD_creatTime": "2018-06-03 23:59:00" + "status": 1, // 查询结果; 1-成功; 0-失败 + "msg": "", // 失败信息: Not Found. + "group_number": "CHBJ180621-BHJ180619085M", // 团号 + // 团计划安排详情, 按日期顺序的多个对象 + "operation": [ + { + // 日期 输出可读 + "start_date": "2018-06-21", + "dateWeek_text": "Thu", + "dateDay_text": "21", + "dateMonth_text": "Jun", + "dateYear_text": "2018", + // 行程名字 + "tour_name": "One-way Private Transfer Between Beijing Airport/Train Station and Your Hotel (Driver Service Only)", // 行程名字 + "leader_name": "Sarah Carbis", // 领队 + "personNum_text": "1 (1 Adult(s))", // 人数 输出可读 + "adult_number": 10, // 成人数量 + "kid_number": 0, // 小孩数量 + // 酒店相关 + "hotel_name": "Capital Hotel", + "hotel_address": "", + "hotel_tel": "", + // 航班 + "flights_no": "LH720", + "flights_airport": "", + // 接送信息 + "pick_up": "", + "drop_off": "", + // 车辆安排详情 安排不同车分别接客人的订单示例: 180606288 + "cardriver": [ + { + "car_type": "丰田大马", // 车辆类型 + "car_company": "北京-王会生13051277931(奔面系列)", // 车队,公司 + "car_license": "京B06528/white/12 seats van", // 车辆牌照,车辆信息 + // 司机 + "driver_name": "Mr.Li 李胜利", + "driver_tel": "13522003813", + "driver_pic": null, + "car_remark": "单租车酒店接客人送大董烤鸭(金宝汇店);10人;北京首都大酒店 ", + "using_startdate": "2018-06-21", + "using_enddate": "2018-06-21" + }, + { + "car_type": "5座轿车", + "car_company": "凯美瑞车队-宋师傅13811026411", + "car_license": "*", + "driver_name": "a-TBC", + "driver_tel": "*", + "driver_pic": null, + "car_remark": "单租车接机;1人;首都大酒店;接LH720(Arr0830@T3);", + "using_startdate": "2018-06-21", + "using_enddate": "2018-06-21" + } + ], + // 导游安排, 单接送的订单没有这个对象 + "tourguide": [ + { + "guide_name": "北京徐宝宝Tom", // 导游姓名 + "guide_tel": "18511135908", // 导游联系电话 + "guide_pic": "", // 导游头像 + "guide_remark": "", + "using_startdate": "2018-07-09", + "using_enddate": "2018-07-10" + } + ], } + ], + // 外联信息 + // 如果是渠道订单则没有这个对象 + "operator": { + "chinese_name": "黄俊峻", + "mobile": "18807734970", + "email": "niko@trippest.com", + "english_name": "Niko Huang" } } ``` diff --git a/webht/third_party/trippestOrderSync/models/orders_model.php b/webht/third_party/trippestOrderSync/models/orders_model.php index 0a44a0ce..e8292d47 100644 --- a/webht/third_party/trippestOrderSync/models/orders_model.php +++ b/webht/third_party/trippestOrderSync/models/orders_model.php @@ -1265,7 +1265,7 @@ class Orders_model extends CI_Model { ,poi.POI_AirPort,poi.POI_FlightsNo ,GUT_FirstName,GUT_LastName FROM BIZ_ConfirmLineInfo coli - inner join GroupCombineInfo on COLI_GRI_SN=GCI_GRI_SN + inner join GroupCombineInfo on COLI_GRI_SN=GCI_GRI_SN --and GCI_combineNo<>'cancel' inner join BIZ_ConfirmLineDetail cold on COLD_COLI_SN=COLI_SN inner join BIZ_PackageOrderInfo poi on poi.POI_COLD_SN=COLD_SN inner join BIZ_GUEST g on g.GUT_SN=COLI_GUT_SN @@ -1297,10 +1297,12 @@ class Orders_model extends CI_Model { function get_operation($combineNo) { + $combineNos = my_implode("'",",",$combineNo); $operation_sql = "SELECT gcod.* from GroupCombineOperationDetail gcod - where GCOD_GCI_combineNo=? - and gcod.GCOD_operationType in ('touristCarOperations','guiderOperations')"; + where GCOD_GCI_combineNo in ($combineNos) + and gcod.GCOD_operationType in ('touristCarOperations','guiderOperations') + order by GCOD_startDate"; $operation_info = $this->HT->query($operation_sql, array($combineNo)); return $operation_info->result(); }