You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
information-system/webht/third_party/trippestOrderSync/controllers/TulanduoApi.php

587 lines
33 KiB
PHP

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class TulanduoApi extends CI_Controller
{
public $special_route = array(
"BJSIC-42" => "'BJSIC-41','BJSIC-42'"
,"BJSIC-43" => "'BJSIC-41','BJSIC-42','BJSIC-43'"
,"XASIC-42" => "'XASIC-41','XASIC-42'"
);
public $special_route_name = array(
"BJSIC-42" => "北京精品两日游目的地BJSIC-42"
,"BJSIC-43" => "北京精品三日游目的地BJSIC-43"
,"XASIC-42" => "西安精品两日游目的地XASIC-42"
);
public $city_info = array(
"北京分公司" => array(
"PlanVEI_SN" => 1343
,"COLI_sourcetype" => 32090
,"routeType" => "北京目的地线路"
),
"西安分公司" => array(
"PlanVEI_SN" => 30548
,"COLI_sourcetype" => 32116
,"routeType" => "西安目的地线路"
),
"上海分公司" => array(
"PlanVEI_SN" => 29188
,"COLI_sourcetype" => 32112
,"routeType" => "上海目的地线路"
)
);
// test
// public $list_url = "http://dj.ltsoftware.net:9901/action/api/searchRouteOrder/";
// public $detail_url = "http://dj.ltsoftware.net:9901/action/api/detailRouteOrder/";
public $neworder_url = "http://dj.ltsoftware.net:9901/action/api/addOrUpdateRouteOrder/";
// Live
public $list_url = "http://djb3c.ltsoftware.net:9921/action/api/searchRouteOrder/";
public $detail_url = "http://djb3c.ltsoftware.net:9921/action/api/detailRouteOrder/";
// public $neworder_url = "http://djb3c.ltsoftware.net:9921/action/api/addOrUpdateRouteOrder/";
// 发送到图兰朵系统接口的参数jsonParams
// public $params;
public function __construct(){
parent::__construct();
$this->load->helper('array');
$this->load->model('Orders_model');
$this->load->model('TuLanDuo_queryContentBuilder', 'tld_order');
// $this->output->enable_profiler(TRUE);
// $this->params = new stdClass();
/** test */
// $this->userId = "358";
// $this->key = "a08f26ddc5b1bd4c8e5eafcac28fc1ec";
/** Live */
// 目的地
$this->userId = "1134";
$this->key = "73d180d05d425fd192e1c5b3097e75ff";
// 桂林海纳国旅
// $this->userId = "18";
// $this->key = "d05c25e6e6c5d4898161e0aaf700d9c7";
}
public function get_orderlist()
{
$this->tld_order->setUserId($this->userId)
->setKey($this->key)
->setPageSize(20)
->setPageIndex(1)
->setStartTravelDate("2018-04-20") // test
->setEndTravelDate("2018-04-20")
// ->setStartOrderDate("2018-04-13")
// ->setEndOrderDate("2018-04-13")
;
$resp = $this->excute_curl($this->list_url, $this->tld_order);
$resp_arr = json_decode($resp, true);
if ($resp_arr['status'] !== 1) {
log_message('error','TulanduoApi get_orderlist failed. Msg:' . $resp_arr['errMsg'] . "; Request: " . ($this->tld_order->getBizContent()));
return;
}
$all_list = $resp_arr["responseData"]["orders"];
$order_to_HT = array_map(
function($ele){
if ( ! in_array($ele['agcName'], array("D目的地桂林组")) ) {
return $ele;
}
},$resp_arr["responseData"]["orders"]);
for($pi=2; $pi <= $resp_arr['responseData']['pageCount']; $pi++) {
$this->tld_order->setPageIndex($pi);
$f_resp = $this->excute_curl($this->list_url, $this->tld_order);
$f_resp_arr = json_decode($f_resp, true);
if ($resp_arr['status'] !== 1) {
log_message('error','TulanduoApi get_orderlist failed. Msg:' . $f_resp_arr['errMsg'] . "; Request: " . ($this->tld_order->getBizContent()));
continue;
}
$f_order_to_HT = array_map(
function($ele){
if ( ! in_array($ele['agcName'], array("D目的地桂林组")) ) {
return $ele;
}
},$f_resp_arr["responseData"]["orders"]);
$order_to_HT = array_filter(array_merge($order_to_HT, $f_order_to_HT));
$all_list = array_merge($all_list, $f_resp_arr["responseData"]["orders"]);
}
$cnt = 0;
$pag_no_tmp = $this->pag_no_tmp();
mb_regex_encoding("UTF-8");
foreach ($all_list as $k => $vo) {
$vo['agcOrderNo'] = mb_ereg_replace('(\s| )', '', $vo['agcOrderNo']); // 去掉中文的全角空格
$PAG_Code = $pag_sub = null;
preg_match('^[a-zA-Z]+\-[0-9\-]+^', $this->characet($vo['routeName'], "UTF-8"), $temp_array);
if (empty($temp_array) && isset($pag_no_tmp[$vo['routeName']])) {
// 旧的数据没有线路代号
log_message('error','未识别的线路名称 ' . $vo['orderId'] . " " . $vo['routeName'] . var_export($temp_array, 1));
$PAG_Code = $pag_no_tmp[$vo['routeName']];
$split_code = explode("-", $PAG_Code);
$PAG_Code = $split_code[0] . "-" . $split_code[1];
isset($split_code[2]) ? $pag_sub=$split_code[2] : null;
} else {
$PAG_Code = $pag_sub = null;
$split_code = explode("-", $temp_array[0]);
$PAG_Code = $split_code[0] . "-" . $split_code[1];
isset($split_code[2]) ? $pag_sub=$split_code[2] : null;
}
$PAG_Code = in_array($PAG_Code, array("SHALC-6","SHALC-7","SHALC-8","SHALC-9")) ? "SHSIC-45" : $PAG_Code;
$serviceSN = $this->Orders_model->get_packageSN($PAG_Code);
$COLD_MemoText = raw_json_encode(array("Pick up"=>$vo['toTraffic'], "Drop off"=>$vo['backTraffic']));
$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目的地桂林组"))) {
$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);
}
/** insert HT */
if ($this->Orders_model->BIZ_COLI_SN === null) {
/** BIZ_Guest */
$this->Orders_model->GUT_LastName = $vo['customerName'];
$this->Orders_model->biz_guest_save();
/** GRoupInfo */
$travelDate = new DateTime($vo['travelDate']);
$leaveDate = new DateTime($vo['leaveDate']);
$date_diff = $travelDate->diff($leaveDate);
$this->Orders_model->GRI_No = $vo['agcOrderNo'];
$this->Orders_model->GRI_OrderType = 227002; // 商务
$this->Orders_model->GRI_Name = $vo["agcName"] . $vo['agcOrderNo'];
$this->Orders_model->GRI_PersonNum = $vo['adultNum']+$vo['childNum'];
$this->Orders_model->GRI_Days = intval($date_diff->format('%R%a')+1);
$this->Orders_model->GRI_IsCancel = 0;
$this->Orders_model->DeleteFlag = 0;
$this->Orders_model->groupinfo_save();
/**BIZ_ConfirmLineInfo*/
$this->Orders_model->BIZ_COLI_GRI_SN = $this->Orders_model->GRI_SN ? $this->Orders_model->GRI_SN : null;
$this->Orders_model->BIZ_COLI_GroupCode = $this->Orders_model->GRI_SN ? $this->Orders_model->GRI_No : "";
$this->Orders_model->BIZ_GUT_SN = $this->Orders_model->GUT_SN;
$this->Orders_model->BIZ_COLI_ID = $this->Orders_model->biz_make_order_number();
$this->Orders_model->BIZ_COLI_ApplyDate = $vo['orderDate'];
$this->Orders_model->BIZ_COLI_sourcetype = empty($this->city_info[$vo['operationDep']]) ? 32090 : $this->city_info[$vo['operationDep']]['COLI_sourcetype'];
$this->Orders_model->BIZ_COLI_State = $vo['orderStatus'] == 1 ? 7 : 4;
$this->Orders_model->BIZ_COLI_servicetype = 'D';
$this->Orders_model->BIZ_COLI_ConfirmType = 52001;
$this->Orders_model->BIZ_COLI_Memo = "";
$this->Orders_model->BIZ_COLI_OrderDetailText = "来自图兰朵系统同步测试" . $vo["orderId"] . ";线路:" . $vo['routeName'];
$this->Orders_model->BIZ_COLI_GUT_SN = $this->Orders_model->BIZ_GUT_SN ? $this->Orders_model->BIZ_GUT_SN : null;
$coli_sn[] = $this->Orders_model->biz_confirm_save();
log_message('error','new coli ' . $this->Orders_model->BIZ_COLI_ID);
/**BIZ_ConfirmLineDetail*/
$this->Orders_model->COLD_COLI_SN = $this->Orders_model->BIZ_COLI_SN;
$this->Orders_model->COLD_ServiceType = "D";
$this->Orders_model->COLD_ServiceSN = $serviceSN->PAG2_PAG_SN;
$this->Orders_model->COLD_ServiceSN2 = $pag_sub;
$this->Orders_model->COLD_ServiceCity = $serviceSN->PAG_CII_SN;
$this->Orders_model->COLD_StartDate = $vo['travelDate'];
$this->Orders_model->COLD_EndDate = $vo['leaveDate'];
$this->Orders_model->COLD_PersonNum = $vo['adultNum'];
$this->Orders_model->COLD_ChildNum = $vo['childNum'];
$this->Orders_model->cold_state = $vo['orderStatus']==1 ? 7 : 4; // 7已确认(已收款) // 4 下计划未确认(已收款)
$this->Orders_model->DeleteFlag = 0;
$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();
// }
$cnt++;
}
if ($this->Orders_model->GCI_SN === null) {
/*biz_groupcombineinfo*/
$this->Orders_model->GCI_combineNo = isset($vo['groupOrderNo']) ? $vo['groupOrderNo'] : '';
$this->Orders_model->GCI_GRI_SN = $this->Orders_model->GRI_SN;
$this->Orders_model->GCI_VendorOrderId = $vo['orderId'];
$this->Orders_model->GCI_FromAgc = $vo['agcName'];
$this->Orders_model->GCI_groupType = $vo['orderType'];
$this->Orders_model->GCI_travelDate = $vo['travelDate'];
$this->Orders_model->GCI_leaveDate = $vo['leaveDate'];
$this->Orders_model->GCI_createTime = $vo['orderDate'];
$this->Orders_model->biz_groupcombineinfo_save();
}
}
echo "Got order list from 图兰朵. count: " . $resp_arr["responseData"]["totalRows"] . "\r\n";
echo "Insert COLI : " . $cnt . "\r\n";
return;
}
public function update_HT_order_operation($coli_sn=null)
{
$this->load->model('Order_update');
if ($coli_sn !== null) {
$to_update_list = $this->Orders_model->get_groupCombineInfo($coli_sn);
} else {
$startDate = date('Y-m-d');
$endDate = date('Y-m-d', strtotime("+1 days")); // test
// $endDate = date('Y-m-d', strtotime("+4 days"));
$to_update_list = $this->Orders_model->get_groupCombineInfo(0, $startDate, $endDate);
}
foreach ($to_update_list as $key => $order) {
$this->tld_order->setOrderId($order->GCI_VendorOrderId)
->setUserId($this->userId)
->setKey($this->key);
$detail_resp = $this->excute_curl($this->detail_url, $this->tld_order);
$detail_jsonResp = json_decode($detail_resp);
if ($detail_jsonResp->status !== 1) {
log_message('error','TulanduoApi get_orderdetail failed. Msg:' . $detail_jsonResp->errMsg . "; Request: " . $this->tld_order->getBizContent());
return;
}
// $allDetails_to_HT = "";
// $allDetails_to_HT .= "日程: ";
// foreach ($detail_jsonResp->orderDetail->scheduleDetails as $vsd) {
// $allDetails_to_HT .= $vsd->travelDate .": ". $vsd->title . "; ";
// }
// $allDetails_to_HT .= "导游: ";
// foreach ($detail_jsonResp->orderDetail->operationDetails->guiderOperations as $vg) {
// $allDetails_to_HT .= $vg->name ." (". $vg->mobelPhone . "); ";
// }
/** HT 开始 */
/** UPDATE */
/** BIZ_ConfirmLineInfo */
$this->Order_update->coli_where_update = " COLI_SN=" . $order->GCI_COLI_SN;
$coli_update_column = array(
"COLI_Memo" => $order->COLI_Memo . "\r\n" . $detail_jsonResp->orderDetail->orderRemark . "\r\n"
// ,"COLI_OrderDetailText" => $order->COLI_OrderDetailText . "\r\n" . $allDetails_to_HT . "\r\n"
);
$this->Order_update->biz_confirmlineinfo_update($coli_update_column);
/** BIZ_ConfirmLineDetail */ // nothing to update
/** biz_groupcombineinfo */
$this->Order_update->gci_where_update = " GCI_SN=" . $order->GCI_SN;
$gci_update_column = array(
"GCI_combineNo" => $detail_jsonResp->orderDetail->groupOrderNo
,"GCI_travelDate" => $detail_jsonResp->orderDetail->travelDate
,"GCI_leaveDate" => $detail_jsonResp->orderDetail->leaveDate
);
$this->Order_update->biz_groupcombineinfo_update($gci_update_column);
/** INSERT */
/*BIZ_BookPeople*/
if ($this->Orders_model->bookpeople_exist($order->COLD_SN) === array()) {
foreach ($detail_jsonResp->orderDetail->customers as $kd => $vd) {
$this->Orders_model->BPE_FirstName = $vd->name;
$this->Orders_model->BPE_GuestType = $vd->peopleType=="成人" ? 1 : 2;
$this->Orders_model->BPE_Passport = $vd->documentNo;
$bpe_sn[] = $this->Orders_model->biz_book_people_save();
// BIZ_BookPeopleList
$this->Orders_model->biz_bookpeople_List_save($order->COLD_SN, $this->Orders_model->BPE_SN);
}
}
/*BIZ_PackageOrderInfo*/
$this->Orders_model->POI_COLD_SN = $order->COLD_SN;
$this->Orders_model->POI_Time = $detail_jsonResp->orderDetail->travelDate;
$this->Orders_model->POI_Hotel = $detail_jsonResp->orderDetail->scheduleDetails[0]->accommodation;
$this->Orders_model->POI_HotelAddress = $detail_jsonResp->orderDetail->scheduleDetails[0]->accommodationAddress;
$this->Orders_model->POI_HotelPhone = $detail_jsonResp->orderDetail->scheduleDetails[0]->accommodationTelNo;
$this->Orders_model->POI_EndTime = $detail_jsonResp->orderDetail->leaveDate;
$this->Orders_model->POI_QuotationType = 1; // 1 报价 2 网络支付价 3 促销价
$this->Orders_model->biz_packageorder_save();
/*BIZ_GroupCombineOperationDetail*/
// 门票
if (isset($detail_jsonResp->orderDetail->operationDetails->sceneryOperations) &&
($this->Orders_model->combineoperation_exist($detail_jsonResp->orderDetail->groupOrderNo, "sceneryOperations")) === array() ) {
foreach ($detail_jsonResp->orderDetail->operationDetails->sceneryOperations as $ks => $vso) {
$this->Orders_model->GCOD_GCI_combineNo = isset($detail_jsonResp->orderDetail->groupOrderNo) ? $detail_jsonResp->orderDetail->groupOrderNo : "";
$this->Orders_model->GCOD_operationType = "sceneryOperations";
$this->Orders_model->GCOD_subType = $vso->type;
$this->Orders_model->GCOD_title = $vso->name;
$this->Orders_model->GCOD_startDate = $vso->useDate;
$this->Orders_model->GCOD_endDate = $vso->useDate;
$this->Orders_model->GCOD_useNum = $vso->useNum;
$this->Orders_model->GCOD_sumMoney = $vso->sumMoney;
$this->Orders_model->GCOD_remark = $vso->remark;
$this->Orders_model->GCOD_dutyName = "";
$this->Orders_model->GCOD_dutyTel = null;
$this->Orders_model->GCOD_dutyPhoto = null;
$this->Orders_model->GCOD_standard = "";
$this->Orders_model->GCOD_carLicense = "";
$this->Orders_model->biz_groupcombineoperationdetail_save();
}
}
// 用房 ...
// 用餐
if (isset($detail_jsonResp->orderDetail->operationDetails->restraurantOperations) &&
($this->Orders_model->combineoperation_exist($detail_jsonResp->orderDetail->groupOrderNo, "restraurantOperations")) === array() ) {
foreach ($detail_jsonResp->orderDetail->operationDetails->restraurantOperations as $vro) {
$this->Orders_model->GCOD_GCI_combineNo = isset($detail_jsonResp->orderDetail->groupOrderNo) ? $detail_jsonResp->orderDetail->groupOrderNo : "";
$this->Orders_model->GCOD_operationType = "restraurantOperations";
$this->Orders_model->GCOD_subType = $vro->type;
$this->Orders_model->GCOD_title = $vro->name;
$this->Orders_model->GCOD_startDate = $vro->useDate;
$this->Orders_model->GCOD_endDate = $vro->useDate;
$this->Orders_model->GCOD_useNum = $vro->useNum;
$this->Orders_model->GCOD_sumMoney = $vro->sumMoney;
$this->Orders_model->GCOD_standard = $vro->standard;
$this->Orders_model->GCOD_remark = $vro->remark;
$this->Orders_model->GCOD_dutyName = "";
$this->Orders_model->GCOD_dutyTel = null;
$this->Orders_model->GCOD_dutyPhoto = null;
$this->Orders_model->GCOD_carLicense = "";
$this->Orders_model->biz_groupcombineoperationdetail_save();
}
}
// 用车
if (isset($detail_jsonResp->orderDetail->operationDetails->touristCarOperations) &&
($this->Orders_model->combineoperation_exist($detail_jsonResp->orderDetail->groupOrderNo, "touristCarOperations")) === array() ) {
foreach ($detail_jsonResp->orderDetail->operationDetails->touristCarOperations as $vco) {
$this->Orders_model->GCOD_GCI_combineNo = isset($detail_jsonResp->orderDetail->groupOrderNo) ? $detail_jsonResp->orderDetail->groupOrderNo : "";
$this->Orders_model->GCOD_operationType = "touristCarOperations";
$this->Orders_model->GCOD_subType = $vco->type;
$this->Orders_model->GCOD_title = $vco->name;
$this->Orders_model->GCOD_dutyName = $vco->driver;
$this->Orders_model->GCOD_dutyTel = $vco->driverTel;
$this->Orders_model->GCOD_startDate = $vco->startDate;
$this->Orders_model->GCOD_endDate = $vco->endDate;
$this->Orders_model->GCOD_sumMoney = $vco->sumMoney;
$this->Orders_model->GCOD_carLicense = $vco->carLicense;
$this->Orders_model->GCOD_useNum = 1;
$this->Orders_model->GCOD_standard = "";
$this->Orders_model->GCOD_dutyPhoto = null;
$this->Orders_model->GCOD_remark = $vco->remark;
$this->Orders_model->biz_groupcombineoperationdetail_save();
}
}
// 导游服务
if (isset($detail_jsonResp->orderDetail->operationDetails->guiderOperations) &&
($this->Orders_model->combineoperation_exist($detail_jsonResp->orderDetail->groupOrderNo, "guiderOperations")) === array() ) {
foreach ($detail_jsonResp->orderDetail->operationDetails->guiderOperations as $vgo) {
$this->Orders_model->GCOD_GCI_combineNo = isset($detail_jsonResp->orderDetail->groupOrderNo) ? $detail_jsonResp->orderDetail->groupOrderNo : "";
$this->Orders_model->GCOD_operationType = "guiderOperations";
$this->Orders_model->GCOD_subType = "";
$this->Orders_model->GCOD_title = "";
$this->Orders_model->GCOD_dutyName = $vgo->name;
$this->Orders_model->GCOD_dutyTel = $vgo->mobelPhone;
$this->Orders_model->GCOD_dutyPhoto = isset($vgo->guiderPhoto) ? $vgo->guiderPhoto : '';
$this->Orders_model->GCOD_startDate = $vgo->startDate;
$this->Orders_model->GCOD_endDate = $vgo->endDate;
$this->Orders_model->GCOD_sumMoney = $vgo->sumMoney;
$this->Orders_model->GCOD_carLicense = "";
$this->Orders_model->GCOD_standard = "";
$this->Orders_model->GCOD_remark = $vgo->remark;
$this->Orders_model->GCOD_useNum = 1;
$this->Orders_model->biz_groupcombineoperationdetail_save();
}
}
} // end foreach order
echo "Got order from 图兰朵, count: " . count($to_update_list);
return;
}
public function order_push($COLI_ID=0) // test
{
// exit();
/** 目的地 test */
$this->userId = "358";
$this->key = "a08f26ddc5b1bd4c8e5eafcac28fc1ec";
$this->load->model('TuLanDuo_addOrUpdateRouteOrderContentBuilder', 'tldOrderBuilder');
$orderinfo = $this->Orders_model->get_orderinfo_detail($COLI_ID);
if(empty($orderinfo)) {return;}
$COLD_SN_str = implode(',', array_map( function($element){return $element->COLD_SN;}, $orderinfo )) ;
$guestlist = $this->Orders_model->get_guestlist($COLD_SN_str);
$scheduleDetails = $this->Orders_model->get_scheduleDetails($COLD_SN_str);
$routeName = isset($this->special_route_name[$scheduleDetails[0]->PAG_Code]) ? $this->special_route_name[$scheduleDetails[0]->PAG_Code] : $scheduleDetails[0]->PAG2_Name;
// 子线路
if ($scheduleDetails[0]->PAGS_CN_Title) {
$routeName .= "[" . $scheduleDetails[0]->PAGS_CN_Title . "]";
}
if (isset($this->special_route[$scheduleDetails[0]->PAG_Code])) {
$scheduleDetails = $this->Orders_model->get_packageDetails($this->special_route[$scheduleDetails[0]->PAG_Code]);
}
$travelFees = $this->Orders_model->get_paymentDetails($COLI_ID);
bcscale(4);
$this->tldOrderBuilder->setUserId($this->userId)
->setKey($this->key)
->setOrderType(2) // todo
->setRouteName($routeName)
->setRouteType($scheduleDetails[0]->CII2_Name . "目的地线路")
->setAgcOrderNo($orderinfo[0]->COLI_GroupCode . "-" . $scheduleDetails[0]->CII2_Name)
->setAdultNum($orderinfo[0]->COLD_PersonNum)
->setChildNum($orderinfo[0]->COLD_ChildNum)
->setDestination($scheduleDetails[0]->CII2_Name)
->setTravelDate(strstr($orderinfo[0]->COLD_StartDate, " ", true))
->setLeavedDate(strstr($orderinfo[0]->COLD_EndDate, " ", true))
->setOrderRemark($orderinfo[0]->COLI_Memo . "\r\n" . $orderinfo[0]->COLD_Memo . "\r\n" . $orderinfo[0]->COLD_MemoText); // todo 抵离交通
foreach ($guestlist as $key => $vg) {
$this->tldOrderBuilder->setCustomersName($key, $vg->BPE_FirstName)
->setCustomersPeopleType($key, ($vg->BPE_GuestType==1 ? "成人" : "儿童"))
->setCustomersDocumentType($key, "护照") // Passport No.
->setCustomersDocumentNo($key, $vg->BPE_Passport)
->setCustomersOtherInfo($key, $this->Orders_model->GetNationalityName($orderinfo[0]->GUT_NationalityID));
}
foreach ($scheduleDetails as $ks => $vs) {
$this->tldOrderBuilder->setScheduleDetailsContent($ks, $vs->PAG2_Title)
->setScheduleDetailsTitle($ks, $vs->PAG2_Name)
// ->set_scheduleDetails($ks, "traffic", ($vs->PAG_Vehicle>60001 ? 1 : 0))
->setScheduleDetailsBreakFirst($ks, 0 )
->setScheduleDetailsDinner($ks, (in_array($vs->PAG_Meal, array('61003', '61004')) ? 1 : 0) )
->setScheduleDetailsLunch($ks, (in_array($vs->PAG_Meal, array('61002', '61004')) ? 1 : 0));
}
foreach ($travelFees as $kf => $vf) { // todo 发生退款或多笔收款
$this->tldOrderBuilder->setTravelFeesType($kf, "Per Group")
->setTravelFeesMoney($kf, $vf->GAI_SQJE)
->setTravelFeesNum($kf, 1)
->setTravelFeesUnit($kf, bcdiv($vf->GAI_SSJE, $vf->GAI_SQJE))
->setTravelFeesSumMoney($kf, $vf->GAI_SSJE)
->setTravelFeesRemark($kf, $vf->GAI_Memo);
}
$resp = $this->excute_curl($this->neworder_url, $this->tldOrderBuilder);
/** BIZ_GroupCombineInfo */
if (json_decode($resp)->status == 1) {
log_message('error','in GCI ' . json_decode($resp)->responseData->orderId);
$this->Orders_model->GCI_COLI_SN = $orderinfo[0]->COLI_SN;
$this->Orders_model->GCI_GRI_SN = $orderinfo[0]->COLI_GRI_SN;
$this->Orders_model->GCI_VendorOrderId = 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()
{
$this->load->model('Order_update');
$ret['status'] = -1;
$ret['errMsg'] = "未知错误";
$input = $this->input->post();
// todo 验证userID
// $vendorID = $input['userId'];
$vendorID = 29188;//29188 1343; // test
$vas_info = $this->Orders_model->get_vendorarrangestate_byVendor($input['orderId'], $vendorID);
if (empty($vas_info) && ! empty($input['agcOrderNo'])) {
$real_groupCode = $this->analysis_groupCode($input['agcOrderNo']);
$vas_info = $this->Orders_model->get_vendorarrangestate_byGroup($real_groupCode, $vendorID);
}
if (empty($vas_info)) {
$ret['errMsg'] = "未找到订单.";
} else {
$vendor_manager = $this->Orders_model->get_vendorContact($vendorID);
$VAS_ConfirmInfo = $input['orderRemark'] . "\r\n======确认人: " . $input['orderDuty'] . ", 确认时间: " . $input['orderTime'];
$VAS_ConfirmInfo .= "\r\n" . $vas_info[0]->VAS_ConfirmInfo;
$update_vas = $this->Order_update->vendorStatus_update($vas_info[0]->VAS_SN, $vendor_manager->LMI_SN, $VAS_ConfirmInfo);
$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: ' . raw_json_encode($input) . "; Result: " . raw_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) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FAILONERROR, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Accept: application/json"
));
$params_str = $content_builder->getBizContent();
$postBody = array('jsonParams' => $params_str, "notHander" => 1);
if (is_string($params_str) && 0 < mb_strlen($params_str)) {
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postBody);
}
$reponse = curl_exec($ch);
$eval_resp = json_decode($reponse);
if (curl_errno($ch) || $eval_resp->status == 0) {
log_message('error', "curl error code: ".curl_error($ch) . $eval_resp->errMsg . "; curl postBodyString: ".json_encode($postBody));
} else {
$httpStatusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if (200 !== $httpStatusCode) {
log_message('error', "Request html Status Code: ".$httpStatusCode."; curl postBodyString: ".json_encode($postBody));
}
}
curl_close($ch);
return $reponse;
}
/*!
* 转换字符集编码
* @param $data
* @param $targetCharset
* @return string
*/
protected function characet($data, $targetCharset) {
if (!empty($data)) {
$fileType = "UTF-8";
if (strcasecmp($fileType, $targetCharset) != 0) {
$data = mb_convert_encoding($data, $targetCharset, $fileType);
// $data = iconv($fileType, $targetCharset.'//IGNORE', $data);
}
}
return $data;
}
public function pag_no_tmp($routeName='')
{
return array(
"故宫深度一日游(目的地)" => "BJSIC-44"
,"故宫深度游拼团(目的地)" => "BJSIC-44"
,"北京精品一日游(目的地)" => "BJSIC-41"
,"北京精品两日游(目的地)" => "BJSIC-42"
,"北京精品三日游(目的地)" => "BJSIC-43"
,"北京精品游D2目的地" => "BJSIC-42"
,"北京精品游D3目的地" => "BJSIC-43"
,"北京单租车服务(目的地)" => "BJALC-209"
,"北京市内-天津新港大车接送(目的地)" => "BJSIC-16"
,"天津新港-北京市内大车接送(目的地)" => "BJSIC-16"
,"箭扣-慕田峪徒步一日游(目的地)" => "BJSIC-45"
,"箭扣-慕田峪长城徒步拼团(目的地)" => "BJSIC-45"
,"司马台西-金山岭徒步一日游(目的地)" => "BJSIC-46"
,"司马台西-金山岭长城徒步拼团(目的地)" => "BJSIC-46"
,"慕田峪半日游拼团(目的地)" => "BJSIC-47"
,"古北口长城徒步一日游(目的地)" => "BJSIC-48"
,"半日游广场故宫拼团(目的地)" => "BJSIC-41"
// ,=>
,"西安精品一日游(目的地)" => "XASIC-41"
,"西安精品两日游(目的地)" => "XASIC-42"
,"西安单租车服务(目的地)" => "XASIC-17"
,"西安单租车接送服务(目的地)" => "XASIC-17"
,"西安兵马俑精品一日游(目的地)" => "XASIC-41"
,"西安兵马俑精品半日游(目的地)" => "XASIC-15"
,"西安汉阳陵市内精品一日游(目的地)" => "XASIC-42"
// ,=>
,"上海精品一日游(目的地)" => "SHSIC-41"
,"上海市内精品一日游(目的地)" => "SHSIC-42"
,"周庄锦溪精品一日游(目的地)" => "SHSIC-43"
,"上海单租车(目的地)" => "SHSIC-45" //"SHALC-6,7,8,9"
);
}
}