diff --git a/webht/third_party/trippestOrderSync/controllers/TulanduoApi.php b/webht/third_party/trippestOrderSync/controllers/TulanduoApi.php index 46d63c22..57b76c9d 100644 --- a/webht/third_party/trippestOrderSync/controllers/TulanduoApi.php +++ b/webht/third_party/trippestOrderSync/controllers/TulanduoApi.php @@ -135,10 +135,7 @@ class TulanduoApi extends CI_Controller $this->Orders_model->BIZ_COLI_SN = $this->Orders_model->GRI_SN = $this->Orders_model->GCI_SN = null; $this->Orders_model->get_SN_by_vendorOrderId($vo['orderId']); // 查询订单是否已经录入过 if ($this->Orders_model->BIZ_COLI_SN === null && in_array($vo['agcName'], array("D目的地桂林组"))) { - $tmp_groupCode = explode("-", $vo['agcOrderNo']); - $real_groupCode = $tmp_groupCode[0] . "-"; - $real_groupCode .= mb_strstr($tmp_groupCode[1], "(", true) ? mb_strstr($tmp_groupCode[1], "(", true) : $tmp_groupCode[1]; - $real_groupCode = mb_ereg_replace('(\s| )', '', $real_groupCode); + $real_groupCode = $this->analysis_groupCode($vo['agcOrderNo']); // set BIZ_COLI_SN, GRI_SN at Orders_model $this->Orders_model->get_SN_by_groupCode($real_groupCode); } @@ -189,10 +186,12 @@ log_message('error','new coli ' . $this->Orders_model->BIZ_COLI_ID); $this->Orders_model->COLD_PlanVEI_SN = empty($this->city_info[$vo['operationDep']]) ? 1343 : $this->city_info[$vo['operationDep']]['PlanVEI_SN']; $this->Orders_model->COLD_MemoText = $COLD_MemoText; $this->Orders_model->biz_confirm_detail_save(); - /** SP_BIZ_Arrange */ - if ($this->Orders_model->GRI_SN) { - $this->Orders_model->sp_biz_arrange(); - } + /** SP_BIZ_Arrange + * 这里是其他社的订单, 不写这个操作 + */ + // if ($this->Orders_model->GRI_SN) { + // $this->Orders_model->sp_biz_arrange(); + // } $cnt++; } @@ -441,13 +440,56 @@ log_message('error','in GCI ' . json_decode($resp)->responseData->orderId); $this->Orders_model->GCI_FromAgc = "D目的地桂林组"; $this->Orders_model->biz_groupcombineinfo_save(); } + // email 供应商 todo echo "Order Push done."; return; } + /*! + * 订单状态变更,调度变更 + * (地接社调用, 并邮件通知外联) + */ public function order_change() { - # code... + $this->load->model('Order_update'); + $ret['status'] = -1; + $ret['errMsg'] = "未知错误"; + $input = $this->input->post(); + // todo 验证userID + $vas_info = $this->Orders_model->get_vendorarrangestate_byVendor($input['orderId']); + if (empty($vas_info) && ! empty($input['agcOrderNo'])) { + $real_groupCode = $this->analysis_groupCode($input['agcOrderNo']); + $vas_info = $this->Orders_model->get_vendorarrangestate_byGroup($real_groupCode); + } + if (empty($vas_info)) { + $ret['errMsg'] = "未找到订单."; + } else { + $update_vas = $this->Order_update->vendorStatus_update($vas_info[0]->VAS_SN, $input['orderRemark']); + $this->Order_update->coli_where_update = " COLI_SN=" . $vas_info[0]->COLI_SN; + $coli_update_column = array( + "COLI_State" => 7 + ); + $update_coli = $this->Order_update->biz_confirmlineinfo_update($coli_update_column); + if ($update_vas === TRUE) { + $ret['status'] = 1; + $ret['errMsg'] = ""; + } + } + if ($ret['status'] !== 1) { + log_message('error','图兰朵确认上报失败. POST RAW: ' . json_encode($input) . "; Result: " . json_encode($ret)); + } + // todo email 外联 + return $this->output->set_content_type('application/json')->set_output(json_encode($ret)); + } + + public function analysis_groupCode($groupCode) + { + mb_regex_encoding("UTF-8"); + $tmp_groupCode = explode("-", $groupCode); + $real_groupCode = $tmp_groupCode[0] . "-"; + $real_groupCode .= mb_strstr($tmp_groupCode[1], "(", true) ? mb_strstr($tmp_groupCode[1], "(", true) : $tmp_groupCode[1]; + $real_groupCode = mb_ereg_replace('(\s| )', '', $real_groupCode); + return $real_groupCode; } protected function excute_curl($url, $content_builder) { @@ -483,7 +525,6 @@ log_message('error','in GCI ' . json_decode($resp)->responseData->orderId); return $reponse; } - /*! * 转换字符集编码 * @param $data diff --git a/webht/third_party/trippestOrderSync/models/order_update.php b/webht/third_party/trippestOrderSync/models/order_update.php index c454a86c..29b1b7f9 100644 --- a/webht/third_party/trippestOrderSync/models/order_update.php +++ b/webht/third_party/trippestOrderSync/models/order_update.php @@ -40,7 +40,12 @@ class Order_update extends CI_Model { return $update_exc; } - public $gci_where_update = ""; + /*! + * 更新拼团信息 + * @date 2018-04-26 + * @param array $column_data 需要更新的列数据数组 + */ + public $gci_where_update = ""; // where 条件 public function biz_groupcombineinfo_update($column_data) { if ($this->gci_where_update == "" || empty($column_data)) { @@ -51,6 +56,11 @@ class Order_update extends CI_Model { return $update_exc; } + /*! + * 拼团的调度信息是否已存在 + * @param string $combineNo 拼团团号 + * @param string $operation 调度类型 + */ public function combineoperation_exist($combineNo='', $operation="") { if( ! $combineNo) { return array(); } @@ -63,60 +73,19 @@ class Order_update extends CI_Model { return $query->result(); } - public function update_confirmLineInfo() - { - $sql = "UPDATE BIZ_ConfirmLineInfo SET - COLI_GRI_SN=?, - COLI_GroupCode=? - WHERE COLI_SN=? - "; - $query = $this->HT->query($sql, array( - $this->BIZ_COLI_GRI_SN - ,$this->BIZ_COLI_GroupCode - ,$this->BIZ_COLI_SN - )); - return $this->query; - } - - /** - * - * 更新订单状态(商务订单) - * + /*! + * 地接计划状态变更 + * @param [type] $vas_sn [description] + * @param string $confirminfo [description] */ - public function update_biz_order($order_id, $pay_manager, $source_type, $state, $text = '') { - //更新订单 - $sql = "UPDATE BIZ_ConfirmLineInfo SET COLI_PayManner=?,COLI_sourcetype=?,COLI_State=?,COLI_OrderDetailText=COLI_OrderDetailText+? WHERE COLI_ID=?"; - $query = $this->HT->query($sql, array($pay_manager, $source_type, $state, $text, $order_id . '')); - $this->insert_acc_info($order_id); - return '是否执行:' . print_r($query, true) . ' sql:' . $sql . ' 参数:' . print_r(array($pay_manager, $source_type, $state, $text, $order_id . ''), true); - } - - /** - * - * 更新火车订单购票截图 - * - */ - public function update_train_order_pic($order_pic_id) { - //更新订单 - $sql = "exec dbo.SP_BIZ_GroupFinanceList_Insert '" . $order_pic_id . "'"; - //$query = $this->HT->query($sql); - - include('c:/database_conn.php'); - $connection = array( - 'UID' => $db['HT']['username'], - 'PWD' => $db['HT']['password'], - 'Database' => 'tourmanager', - 'ConnectionPooling' => 1, - 'CharacterSet' => 'utf-8', - 'ReturnDatesAsStrings' => 1 - ); - $conn = sqlsrv_connect($db['HT']['hostname'], $connection); - $stmt = sqlsrv_query($conn, $sql); - - return $stmt; + public function vendorStatus_update($vas_sn, $confirminfo="") + { + $sql = "UPDATE VendorArrangeState set VAS_IsConfirm=1,VAS_ConfirmInfo=?+CHAR(10)+VAS_ConfirmInfo + WHERE VAS_SN=?"; + $query = $this->HT->query($sql, array($confirminfo, $vas_sn)); + return $query; } - function SendMail($fromName, $fromEmail, $toName, $toEmail, $subject, $body) { $sql = "INSERT INTO Email_AutomaticSend \n" . " ( \n" diff --git a/webht/third_party/trippestOrderSync/models/orders_model.php b/webht/third_party/trippestOrderSync/models/orders_model.php index 7c76fb90..67a7672a 100644 --- a/webht/third_party/trippestOrderSync/models/orders_model.php +++ b/webht/third_party/trippestOrderSync/models/orders_model.php @@ -141,6 +141,39 @@ class Orders_model extends CI_Model { return $query->result(); } + /*! + * 获取团计划信息的记录 - 根据地接社订单id + * 计划变更和订单状态确认时使用 + * @param integer $vendorOrderId 图兰朵地接社系统的订单id + */ + public function get_vendorarrangestate_byVendor($vendorOrderId) + { + $sql = "SELECT coli.COLI_ID, coli.COLI_SN, + vas.VAS_ChangeText, vas.VAS_ConfirmInfo, vas.VAS_SN + FROM BIZ_GroupCombineInfo gci + INNER JOIN BIZ_ConfirmLineInfo coli ON gci.GCI_GRI_SN=coli.COLI_GRI_SN + INNER JOIN VendorArrangeState vas ON vas.VAS_GRI_SN=coli.COLI_GRI_SN + WHERE gci.GCI_VendorOrderId=?"; + $query = $this->HT->query($sql, array($vendorOrderId)); + return $query->result(); + } + /*! + * 获取团计划信息的记录 - 根据组团社团号 + * 计划变更和订单状态确认时使用 + * @param integer $groupCode 图兰朵地接社系统的订单id + */ + public function get_vendorarrangestate_byGroup($groupCode) + { + $sql = "SELECT coli.COLI_ID, coli.COLI_SN, + vas.VAS_ChangeText, vas.VAS_ConfirmInfo, vas.VAS_SN + FROM GRoupInfo gri + INNER JOIN BIZ_ConfirmLineInfo coli ON gri.GRI_SN=coli.COLI_GRI_SN + INNER JOIN VendorArrangeState vas ON vas.VAS_GRI_SN=coli.COLI_GRI_SN + WHERE gri.GRI_No LIKE '$groupCode%'"; + $query = $this->HT->query($sql); + return $query->result(); + } + /*! * 生成预定传真 */