From 05c1d09e606a8e6cdeb3baa4bba4d017847ab5fe Mon Sep 17 00:00:00 2001 From: lyt Date: Wed, 8 Aug 2018 14:03:38 +0800 Subject: [PATCH] =?UTF-8?q?trippest=20=E6=9B=B4=E6=96=B0=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E5=9B=BE=E5=85=B0=E6=9C=B5=E8=AE=A2=E5=8D=95=E8=AE=A1=E5=88=92?= =?UTF-8?q?=E5=9C=B0=E6=8E=A5=E5=8F=96=E6=B6=88=E7=9B=B8=E5=85=B3;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/TulanduoApi.php | 54 ++++++++++++++----- .../controllers/order_finance.php | 4 +- .../models/orderFinance_model.php | 4 +- .../trippestOrderSync/models/orders_model.php | 25 ++++++--- 4 files changed, 63 insertions(+), 24 deletions(-) diff --git a/webht/third_party/trippestOrderSync/controllers/TulanduoApi.php b/webht/third_party/trippestOrderSync/controllers/TulanduoApi.php index adb2322a..96580b07 100644 --- a/webht/third_party/trippestOrderSync/controllers/TulanduoApi.php +++ b/webht/third_party/trippestOrderSync/controllers/TulanduoApi.php @@ -254,21 +254,23 @@ class TulanduoApi extends CI_Controller * @date 2018-05-02 * @param [type] $coli_sn HT系统的订单key */ - public function insert_HT_order_operation($coli_sn=null) + public function insert_HT_order_operation($coli_sn=null,$get_vendorID=null) { // if ($coli_sn == null) { // return null; // } log_message('error','get_order_operation From TuLanDuo '); $this->load->model('Order_update'); - if ($coli_sn !== null) { + if ($coli_sn !== null && $coli_sn != 0) { $to_update_list = $this->Orders_model->get_groupCombineInfo($coli_sn); + } elseif ($get_vendorID !== null) { + $to_update_list = $this->Orders_model->get_groupCombineInfo(0, $get_vendorID); } else { // $startDate = ('2018-04-21'); // $endDate = ('2018-04-22'); // test $startDate = date('Y-m-d', strtotime("-3 days")); $endDate = date('Y-m-d', strtotime("+7 days")); - $to_update_list = $this->Orders_model->get_groupCombineInfo(0, $startDate, $endDate); + $to_update_list = $this->Orders_model->get_groupCombineInfo(0, null, $startDate, $endDate); } $unique_orderGroupCombine = array(); $unique_order = array(); @@ -286,14 +288,20 @@ class TulanduoApi extends CI_Controller // 判断取消 if ($detail_jsonResp->status !== 1) { log_message('error','TulanduoApi get_orderdetail failed. Msg:' . $detail_jsonResp->errMsg . "; Request: " . $this->tld_order->getBizContent()); - if ($detail_jsonResp->errMsg == "未查询到对应的订单") { - $this->order_cancel($order->COLI_ID); + if ( $detail_jsonResp->errMsg == "未查询到对应的订单") { + $this->plan_cancel($order->GCI_VendorOrderId); + if (intval($order->COLI_OPI_ID) === 435) { + $this->order_cancel($order->COLI_ID); + } } continue; } // 目的地的团已经主动取消, 只有其他渠道的团需要更新状态 - if ( ! in_array($order->GCI_FromAgc, array("D目的地桂林组", "Trippest")) && mb_strstr($detail_jsonResp->orderDetail->agcOrderNo, "取消") !== false) { - $this->order_cancel($order->COLI_ID); + if (mb_strstr($detail_jsonResp->orderDetail->agcOrderNo, "取消") !== false) { + $this->plan_cancel($order->GCI_VendorOrderId); + if (intval($order->COLI_OPI_ID) === 435) { + $this->order_cancel($order->COLI_ID); + } continue; } $allDetails_to_HT = ""; @@ -328,16 +336,21 @@ class TulanduoApi extends CI_Controller $coli_id = $getInfo_byGroupCode!==null ? $getInfo_byGroupCode->COLI_ID : $order->COLI_ID; $coli_memo = $getInfo_byGroupCode!==null ? $getInfo_byGroupCode->COLI_Memo : $order->COLI_Memo; $coli_orderdetailtext = $getInfo_byGroupCode!==null ? $getInfo_byGroupCode->COLI_OrderDetailText : $order->COLI_OrderDetailText; - $coli_state = $getInfo_byGroupCode!==null ? $getInfo_byGroupCode->COLI_State : 7; + $coli_state = $getInfo_byGroupCode!==null ? + (intval($getInfo_byGroupCode->COLI_OPI_ID)===435 ? 7 : $getInfo_byGroupCode->COLI_State) + : 7; $cold_sn = $getInfo_byGroupCode!==null ? $getInfo_byGroupCode->COLD_SN : $order->COLD_SN; // HT 订单有重复时, 以图兰朵的团号为正确的订单, 原本已录入的设为无效 if ($getInfo_byGroupCode === null) { } elseif ($getInfo_byGroupCode->GRI_SN != $order->COLI_GRI_SN && in_array($order->GCI_FromAgc, array("D目的地桂林组", "Trippest"))) { - log_message('error','原订单' . $order->COLI_ID); - $allDetails_to_HT .= "\r\n疑似重复,请更新订单状态:" . $order->COLI_ID; - $this->order_cancel($order->COLI_ID); + if ( $order->COLI_ID) { + $allDetails_to_HT .= "\r\n疑似重复,请更新订单状态:" . $order->COLI_ID; + if (intval($order->COLI_OPI_ID) === 435 ) { + $this->order_cancel($order->COLI_ID); + } + } } - /** biz_groupcombineinfo */ + /** groupcombineinfo */ // $this->Order_update->gci_where_update = " GCI_VEI_SN=$vei_SN and GCI_VendorOrderId='" . $detail_jsonResp->orderDetail->orderId . "'"; $this->Order_update->gci_where_update = " GCI_VendorOrderId='" . $detail_jsonResp->orderDetail->orderId . "'"; $gci_update_column = array( @@ -597,7 +610,10 @@ class TulanduoApi extends CI_Controller */ public function order_cancel($COLI_ID="") { - log_message('error','修改为不成行 order_cancel' . $COLI_ID); + if ($COLI_ID == '') { + return false; + } + log_message('error','修改为不成行 order_cancel ' . $COLI_ID); /** UPDATE HT */ /** BIZ_ConfirmLineInfo */ $this->Order_update->coli_where_update = " COLI_ID='" . $COLI_ID . "'"; @@ -606,6 +622,16 @@ class TulanduoApi extends CI_Controller ); return $this->Order_update->biz_confirmlineinfo_update($coli_update_column); } + public function plan_cancel($vendorID=0) + { + /** groupcombineinfo */ + $this->Order_update->gci_where_update = " GCI_VendorOrderId='" . $vendorID . "'"; + $gci_update_column = array( + "GCI_combineNo" => 'cancel' + ,"GCI_createTime" => date('Y-m-d H:i:s') + ); + $this->Order_update->biz_groupcombineinfo_update($gci_update_column); + } /*! * 发送预订计划到地接系统 @@ -763,7 +789,7 @@ log_message('error','in GCI ' . json_decode($resp)->responseData->orderId); { mb_regex_encoding("UTF-8"); preg_match('/[\w\s\-]+/', $this->characet($groupCode, "UTF-8"), $temp_array); - $temp_array[0] = strrchr($temp_array[0], " ") ? strrchr($temp_array[0], " ") : $temp_array[0]; + $temp_array[0] = strrchr($temp_array[0], " ") ? mb_strstr($temp_array[0], " ",true) : $temp_array[0]; $tmp_groupCode = explode("-", trim($temp_array[0])); $real_groupCode = $tmp_groupCode[0] . "-"; $real_groupCode .= mb_strstr($tmp_groupCode[1], "(", true)!==false ? mb_strstr($tmp_groupCode[1], "(", true) : $tmp_groupCode[1]; diff --git a/webht/third_party/trippestOrderSync/controllers/order_finance.php b/webht/third_party/trippestOrderSync/controllers/order_finance.php index 976a9aab..51082153 100644 --- a/webht/third_party/trippestOrderSync/controllers/order_finance.php +++ b/webht/third_party/trippestOrderSync/controllers/order_finance.php @@ -96,10 +96,10 @@ class Order_finance extends CI_Controller { $person_num = $this->OrderFinance_model->get_order_person_num($coli_sn); $report_order['adultnumber'] = $person_num->adult_num; $report_order['childnumber'] = $person_num->child_num; - $ret = new stdClass(); /** 图兰朵产品: 取拼团实际成本 */ - $ret->combine_cost = $ret->report_tour = array(); + $ret->combine_cost = array(); + $ret->report_tour = array(); $combineNo_arr = $this->OrderFinance_model->get_order_combineNo($coli_sn); $group_type_arr = array_unique(array_map(function($ele){return $ele->GCI_groupType;}, $combineNo_arr)); $processed_code = array(); // 已处理的产品编号 diff --git a/webht/third_party/trippestOrderSync/models/orderFinance_model.php b/webht/third_party/trippestOrderSync/models/orderFinance_model.php index fa630c7a..365a2d95 100644 --- a/webht/third_party/trippestOrderSync/models/orderFinance_model.php +++ b/webht/third_party/trippestOrderSync/models/orderFinance_model.php @@ -53,7 +53,7 @@ class OrderFinance_model extends CI_Model { { $sql = "SELECT gci.GCI_combineNo,gci.GCI_groupType from GroupCombineInfo gci - inner join BIZ_ConfirmLineInfo coli on gci.GCI_GRI_SN=COLI_GRI_SN + inner join BIZ_ConfirmLineInfo coli on gci.GCI_GRI_SN=COLI_GRI_SN and GCI_combineNo<>'cancel' where coli.COLI_SN=$coli_sn group by gci.GCI_combineNo,gci.GCI_groupType order by gci.GCI_groupType desc"; @@ -125,7 +125,7 @@ class OrderFinance_model extends CI_Model { ,ISNULL(MAX(COLD_PersonNum), 0) adult_num ,ISNULL(MAX(COLD_ChildNum+ISNULL(COLD_BabyNum,0)), 0) child_num from BIZ_ConfirmLineDetail - where COLD_COLI_SN=$coli_sn " + where COLD_COLI_SN=$coli_sn "; $ret = $this->HT->query($sql)->row(); return $ret; } diff --git a/webht/third_party/trippestOrderSync/models/orders_model.php b/webht/third_party/trippestOrderSync/models/orders_model.php index c047b885..0a44a0ce 100644 --- a/webht/third_party/trippestOrderSync/models/orders_model.php +++ b/webht/third_party/trippestOrderSync/models/orders_model.php @@ -128,20 +128,33 @@ class Orders_model extends CI_Model { * @param [type] $startDate [description] * @param [type] $endDate [description] */ - public function get_groupCombineInfo($coli_sn=0, $startDate=null, $endDate=NULL) + public function get_groupCombineInfo($coli_sn=0, $get_vendorID=null, $startDate=null, $endDate=NULL) { - $sql = "SELECT top 1000 coli.COLI_ID, coli.COLI_SN, coli.COLI_GRI_SN, cold.COLD_SN, coli.COLI_OrderDetailText, coli.COLI_Memo, + $sql = "SELECT top 1000 coli.COLI_ID, coli.COLI_SN, coli.COLI_GRI_SN, cold.COLD_SN, coli.COLI_OrderDetailText, coli.COLI_Memo,coli.COLI_State,coli.COLI_OPI_ID, cold.COLD_PlanVEI_SN, gci.* FROM GroupCombineInfo gci - INNER JOIN BIZ_ConfirmLineInfo coli ON coli.COLI_GRI_SN=gci.GCI_GRI_SN - INNER JOIN BIZ_ConfirmLineDetail cold ON cold.COLD_COLI_SN=coli.COLI_SN - WHERE 1=1 and coli.COLI_State NOT IN ('30','40','50')"; + LEFT JOIN BIZ_ConfirmLineInfo coli ON coli.COLI_GRI_SN=gci.GCI_GRI_SN and coli.COLI_State NOT IN ('30','40','50') + LEFT JOIN BIZ_ConfirmLineDetail cold ON cold.COLD_COLI_SN=coli.COLI_SN + WHERE 1=1 "; if ($coli_sn !== 0) { $sql .= " and coli.COLI_SN='$coli_sn' "; } + if ($get_vendorID !== null) { + $sql .= " and GCI_VendorOrderId='$get_vendorID' "; + } if ($startDate !== NULL) { $sql .= " and gci.GCI_travelDate between '$startDate' and '$endDate' "; // test } + $sql .= "UNION SELECT top 50 + coli.COLI_ID, coli.COLI_SN, coli.COLI_GRI_SN, cold.COLD_SN, coli.COLI_OrderDetailText, coli.COLI_Memo,coli.COLI_State,coli.COLI_OPI_ID, + cold.COLD_PlanVEI_SN, gci.* + FROM GroupCombineInfo gci + left JOIN BIZ_ConfirmLineInfo coli ON coli.COLI_GRI_SN=gci.GCI_GRI_SN and coli.COLI_State NOT IN ('30','40','50') + left JOIN BIZ_ConfirmLineDetail cold ON cold.COLD_COLI_SN=coli.COLI_SN + WHERE 1=1 + and (GCI_combineNo='' or GCI_combineNo is null) + and GCI_travelDate < GETDATE() + order by GCI_travelDate"; $query = $this->HT->query($sql); return $query->result(); } @@ -487,7 +500,7 @@ class Orders_model extends CI_Model { public function get_SN_by_groupCode($code, $NoName) { - $sql = "SELECT top 1 COLI_SN,gri.GRI_SN,cold.COLD_PlanVEI_SN,cold.COLD_SN,coli.COLI_ID,coli.COLI_Memo,coli.COLI_OrderDetailText,coli.COLI_State + $sql = "SELECT top 1 COLI_SN,gri.GRI_SN,cold.COLD_PlanVEI_SN,cold.COLD_SN,coli.COLI_ID,coli.COLI_Memo,coli.COLI_OrderDetailText,coli.COLI_State,coli.COLI_OPI_ID FROM BIZ_ConfirmLineInfo coli inner join BIZ_ConfirmLineDetail cold on cold.COLD_COLI_SN=COLI_SN LEFT JOIN GRoupInfo gri ON coli.COLI_GRI_SN=gri.GRI_SN