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/vendorPlanSync/controllers/Tulanduo.php

646 lines
33 KiB
PHP

This file contains ambiguous Unicode 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 Tulanduo extends CI_Controller
{
/** Live */
/**
目的地
$this->userId = "1134";
$this->key = "73d180d05d425fd192e1c5b3097e75ff";
桂林海纳国旅
$this->userId = "18";
$this->key = "d05c25e6e6c5d4898161e0aaf700d9c7";
*/
// private $send_host = array(
// "30" => array(
// "userId" => 1134
// ,"key" => "73d180d05d425fd192e1c5b3097e75ff"
// )
// ,"1" => array(
// "userId" => 18
// ,"key" => "d05c25e6e6c5d4898161e0aaf700d9c7"
// )
// );
/** test
* 902 key:f56541ff40e1afba444d831c5a666195
*/
private $send_host = array(
"30" => array(
"userId" => 902
,"key" => "f56541ff40e1afba444d831c5a666195"
)
,"1" => array(
"userId" => 902
,"key" => "f56541ff40e1afba444d831c5a666195"
)
);
// userId key
// 1343 2e47c3721e3ff6e816fe6b928d7acc7d
// 29188 95c3b0d958a79a1216e651df182b3cb4
// 30548 9db75a2dc17156eb122364295804b7a2
// 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://ltdj.ltsoftware.net:19919/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/";
public function __construct(){
parent::__construct();
mb_regex_encoding("UTF-8");
bcscale(4);
$this->load->helper('array');
$this->load->library('trippest');
$this->load->model('Group_model');
$this->load->model('BIZ_orders_model', 'BIZ_order');
$this->load->model('TuLanDuo_queryContentBuilder', 'tld_order');
$this->load->model('TuLanDuo_addOrUpdateRouteOrderContentBuilder', 'tldOrderBuilder');
// $this->output->enable_profiler(TRUE);
$this->vendor_ids = $this->trippest->tulanduo_vei_sn;
}
public function order_push($order=null)
{
// 目的地计划
if (strval($order->GRI_OrderType) === "227002" && strval($order->department) === "30") {
return $this->push_trippest($order);
}
// 商务
if (strval($order->GRI_OrderType) === "227002") {
}
// 传统订单
if (strval($order->GRI_OrderType) === "227001") {
return $this->push_tour($order);
}
return "[Tulanduo>order_push] No function match. ";
}
/*!
* 发送线路订单计划
* @date 2018-11-22
*/
public function push_tour($vas=null)
{
$userId = $this->send_host["1"]["userId"];
$userKey = $this->send_host["1"]["key"];
$gri_sn = $vas->GRI_SN;
$vas_sn = $vas->VAS_SN;
$vei_sn = $vas->VAS_VEI_SN;
$is_send_vary = $vas->VAS_SendVary;
$change_info = $vas->VAS_ChangeText;
if (trim($change_info) !== "") {
preg_match_all('/(.*)={6}(.*)(\d{4}\-\d{2}\-\d{2})/ismU', characet($change_info,'UTF-8'), $change_arr);
$change_info = $change_arr[0][0];
}
$change_info = str_replace("\n", "<br>", $change_info);
$agcOrderNo = $vas->GRI_Name;
// $grd_info = $this->Group_model->get_vendor_plan_info($gri_sn, $vei_sn);
// $all_day_no = array_map(function($ele){return $ele->GRD_DayNo;}, $grd_info);
$routeType = "桂林海纳国旅"; // todo
$arrange_info = $this->Group_model->get_arrange_info($gri_sn, $vei_sn);
$routeName = "中华游" . $arrange_info[0]->tocity . "常规线路"; // todo
$last_date = count($arrange_info)-1;
$end_date = strstr($arrange_info[$last_date]->ACI_OrderDate, " ", true);
$this->tldOrderBuilder->setUserId($userId)
->setKey($userKey)
->setOrderType(1)
->setRouteName($routeName)
->setRouteType($routeType)
->setAgcOrderNo($agcOrderNo)
->setAdultNum(intval($arrange_info[0]->ACI_PersonNum))
->setChildNum(intval(bcadd($arrange_info[0]->ACI_ChildNum, $arrange_info[0]->ACI_BabyNum)))
->setDestination($arrange_info[0]->tocity)
->setTravelDate(strstr($arrange_info[0]->ACI_OrderDate, " ", true))
->setLeavedDate($end_date)
// ->setOrderRemark($order_remark)
;
$guestlist = $this->Group_model->get_customer_list($gri_sn); // todo orders_model
foreach ($guestlist as $key => $vg) {
$this->tldOrderBuilder->setCustomersName($key, $vg->MemberName )
->setCustomersPeopleType($key, (calc_age_type($vg->BirthDay)==1 ? "成人" : "儿童"))
->setCustomersDocumentType($key, "护照") // Passport No.
->setCustomersDocumentNo($key, $vg->PassportNo)
->setCustomersOtherInfo($key, $vg->Country);
}
return $this->tldOrderBuilder->getBizContent();
}
/*!
* 发送目的地项目组预订计划到图兰朵地接系统
* 地接社未接收的或有变更的
* @date 2018-10-26
*/
public function push_trippest($vas=null)
{
return "[Tulanduo>push_trippest] Done. "; // test
/** 目的地 */
$userId = $this->send_host["30"]["userId"];
$userKey = $this->send_host["30"]["key"];
$gri_sn = $vas->GRI_SN;
$vas_sn = $vas->VAS_SN;
$vei_sn = $vas->VAS_VEI_SN;
$is_send_vary = $vas->VAS_SendVary;
$change_info = $vas->VAS_ChangeText;
if (trim($change_info) !== "") {
preg_match_all('/(.*)={6}(.*)(\d{4}\-\d{2}\-\d{2})/ismU', characet($change_info,'UTF-8'), $change_arr);
$change_info = $change_arr[0][0];
}
$change_info = str_replace("\n", "<br>", $change_info);
$vei_sn_str = implode(",", $this->vendor_ids);
$orderinfo = $this->BIZ_order->get_orderinfo_detail($gri_sn, $vei_sn_str);
if(empty($orderinfo)) {return "[Tulanduo>push_trippest] Not found order detail. ";}
$COLI_ID = $orderinfo[0]->COLI_ID;
$set_pvt = strval($orderinfo[0]->COLI_PVT);
$travelFees = $this->BIZ_order->get_paymentDetails($COLI_ID);
// 按产品拆分 todo:按订单类型拆分? 单团/拼团
$fill_order = array();
$processed_date = array();
$processed_cold = array();
foreach ($orderinfo as $ko => $cold) {
if ( ! in_array($cold->COLD_SN, $processed_cold) && $cold->pag_code != '') {
$processed_cold[] = $cold->COLD_SN;
$all_package = $this->trippest->tour_code($cold->pag_code);
$pag_info = $this->BIZ_order->get_packageDetails(my_implode("'",",",$all_package));
if ($set_pvt==='1') {
$fill_order[0]["cold"][] = $cold;
$fill_order[0]["package_info"] = $pag_info; // todo ??? 这里是否丢失了产品
} else {
$fill_order[$cold->pag_code]["cold"][] = $cold;
$fill_order[$cold->pag_code]["package_info"] = $pag_info;
}
}
}
// $fill_order = array_values($fill_order);
$i=0;
$take_apart = count($fill_order)>1 ? true : false;
foreach ($fill_order as $kf => $vf) {
$i++;
$this->tldOrderBuilder->resetBizContent();
$order_type = intval($vf["package_info"][0]->PAG_ExtendType)===39009 ? 1 : 2;
$last_code = count($vf["package_info"])-1;
$last_date = count($vf["cold"])-1;
$tour_code = "";
$routeName = $vf["package_info"][0]->PAG2_Name . "(" . mb_strtoupper($vf["cold"][0]->pag_code) . ")";
$first_date = strstr($vf["cold"][0]->COLD_StartDate, " ", true);
$end_date = strstr($vf["cold"][$last_date]->COLD_EndDate, " ", true);
if (isset($this->trippest->special_route[$vf["cold"][0]->pag_code])) {
$routeName = $this->trippest->special_route[$vf["cold"][0]->pag_code]["name"];
$extra_day = $this->trippest->special_route[$vf["cold"][0]->pag_code]["day"]-1;
$end_date = date("Y-m-d", strtotime("+$extra_day day", strtotime($vf["cold"][0]->COLD_StartDate)));
}
$agcOrderNo = $vf["cold"][0]->COLI_GroupCode . "-" . $vf["package_info"][0]->city_code;
if ($take_apart===true) {
$agcOrderNo .= "-" . $i;
$tour_code = mb_strtoupper($vf["cold"][0]->pag_code);
}
$agcOrderNo .= "(" . $vf["cold"][0]->operator . ")";
$order_remark = "";
if (trim($vf['cold'][0]->GUT_TEL) != "") {
$order_remark = "预定人电话:" . trim($vf["cold"][0]->GUT_TEL);
}
$COLD_SN_str = implode(',', array_map( function($element){return $element->COLD_SN;}, $vf["cold"] )) ;
$guestlist = $this->BIZ_order->get_guestlist($COLD_SN_str);
$this->tldOrderBuilder->setUserId($userId)
->setKey($userKey)
->setOrderType($order_type)
->setRouteName($routeName)
->setRouteType($vf["package_info"][0]->city_chinese . "目的地线路")
->setAgcOrderNo($agcOrderNo)
->setAdultNum($vf["cold"][0]->COLD_PersonNum)
->setChildNum($vf["cold"][0]->COLD_ChildNum)
->setDestination($vf["package_info"][0]->city_chinese)
->setTravelDate(strstr($vf["cold"][0]->COLD_StartDate, " ", true))
->setLeavedDate($end_date)
->setOrderRemark($order_remark)
// ->setOrderRemark(trim($orderinfo[0]->COLI_Memo . "\r\n" . $orderinfo[0]->COLD_Memo . "\r\n" . $orderinfo[0]->COLD_MemoText))
// todo 抵离交通
// ->setToTraffic($toTraffic)
// ->setBackTraffic($backTraffic)
;
foreach ($guestlist as $key => $vg) {
$this->tldOrderBuilder->setCustomersName($key, $vg->BPE_FirstName . " " . $vg->BPE_LastName )
->setCustomersPeopleType($key, ($vg->BPE_GuestType==1 ? "成人" : "儿童"))
->setCustomersDocumentType($key, "护照") // Passport No.
->setCustomersDocumentNo($key, $vg->BPE_Passport)
->setCustomersOtherInfo($key, $this->BIZ_order->GetNationalityName($vg->BPE_Nationality));
}
$scheduleDetails = $this->BIZ_order->get_scheduleDetails($COLD_SN_str);
$schedule_obj = array();
foreach ($scheduleDetails as $ks => $vs) {
$schedule_obj[substr($vs->COLD_StartDate, 0, 10)]['date'] = substr($vs->COLD_StartDate, 0, 10);
$schedule_obj[substr($vs->COLD_StartDate, 0, 10)]['lunch'] = (in_array($vs->PAG_Meal, array('61002', '61004')) ? 1 : 0);
$schedule_obj[substr($vs->COLD_StartDate, 0, 10)]['dinner'] = (in_array($vs->PAG_Meal, array('61003', '61004')) ? 1 : 0);
$this_content = $this_title = "";
if ( ! isset($schedule_obj[substr($vs->COLD_StartDate, 0, 10)]['content'])) {
$schedule_obj[substr($vs->COLD_StartDate, 0, 10)]['content'] = "";
}
// 人数
$this_content .= "\r\n人数:" . $vs->COLD_PersonNum . "";
($vs->COLD_ChildNum>0) ? $this_content .= $vs->COLD_ChildNum . "" : null;
($vs->COLD_BabyNum>0) ? $this_content .= $vs->COLD_BabyNum . "" : null;
$this_content .= "\r\n客人:";
$this_guest = "";
foreach ($guestlist as $dkg => $dvg) {
if ($dvg->BPL_COLD_SN == $vs->COLD_SN) {
$this_guest .= "," . $dvg->BPE_FirstName . " " . $dvg->BPE_LastName;
}
}
$this_content .= substr($this_guest, 1);
// 酒店
$hotels = $this->BIZ_order->get_package_order($vs->COLD_SN);
if (trim($hotels[0]->POI_HotelAddress) != "") {
$this_content .= "\r\n酒店地址:" . $hotels[0]->POI_HotelAddress;
}
if ($hotels[0]->POI_FlightsNo) {
$this_content .= "\r\n航/车次:" . $hotels[0]->POI_FlightsNo;
if ($hotels[0]->POI_FromCity || $hotels[0]->POI_ToCity) {
$this_content .= ", (" . $hotels[0]->POI_FromCity . "-" . $hotels[0]->POI_ToCity . ")";
}
if ($hotels[0]->POI_Time || $hotels[0]->POI_EndTime) {
$this_content .= ", " . $hotels[0]->POI_Time . " " . $hotels[0]->POI_EndTime;
}
if ($hotels[0]->POI_AirPort) {
$this_content .= ", " . $hotels[0]->POI_AirPort;
}
}
$this_content .= "\r\n";
$schedule_obj[substr($vs->COLD_StartDate, 0, 10)]['accommodation'] = $hotels[0]->POI_Hotel;
// 补充行程
$fill_date = array();
if (isset($this->trippest->special_route[$vs->PAG_Code])) {
for ($j=0; $j < $this->trippest->special_route[$vs->PAG_Code]['day']; $j++) {
$e_day = date("Y-m-d", strtotime("+$j day", strtotime($vs->COLD_StartDate)));
if ( ! isset($schedule_obj[$e_day]['content'])) {
$schedule_obj[$e_day]['content'] = "";
}
$schedule_obj[$e_day]['date'] = $e_day;
$fill_date[] = $e_day;
$schedule_obj[$e_day]['code'] = $this->trippest->special_route[$vs->PAG_Code]['code'][$j];
$pag_detail = $this->BIZ_order->get_packageDetails("'" . $schedule_obj[$e_day]['code'] . "'");
$schedule_obj[$e_day]['title'] = $pag_detail[0]->PAG2_Name;
$schedule_obj[$e_day]['lunch'] = (in_array($pag_detail[0]->PAG_Meal, array('61002', '61004')) ? 1 : 0);
$schedule_obj[$e_day]['dinner'] = (in_array($pag_detail[0]->PAG_Meal, array('61003', '61004')) ? 1 : 0);
$schedule_obj[$e_day]['content'] .= $schedule_obj[$e_day]['title'] . $this_content;
$schedule_obj[$e_day]['accommodation'] = $hotels[0]->POI_Hotel;
}
}
// 行程
if ($vs->PAGS_CN_Title) {
$this_title .= "[" . $vs->PAGS_CN_Title . "]";
}
if ($this_title == "") {
$this_title .= $vs->PAG2_Name;
}
// 补充的行程避免重复
if ( ! in_array(substr($vs->COLD_StartDate, 0, 10), $fill_date)) {
$schedule_obj[substr($vs->COLD_StartDate, 0, 10)]['content'] .= $this_title . $this_content;
}
// 当前产品连续日期的补充
$date_s = new DateTime(strstr($vs->COLD_StartDate, " ", TRUE));
$date_e = new DateTime(strstr($vs->COLD_EndDate, " ", TRUE));
$date_d = $date_e->diff($date_s);
$d_t = ($date_d->format("%d"));
if ($d_t > 0) {
for ($d_i=0; $d_i < ($d_t+1); $d_i++) {
$f_d = date('Y-m-d', strtotime("+$d_i day", strtotime(substr($vs->COLD_StartDate, 0, 10))));
$schedule_obj[$f_d] = $schedule_obj[substr($vs->COLD_StartDate, 0, 10)];
$schedule_obj[$f_d]['date'] = $f_d;
}
}
}
// 补全空的日期
$date1 = new DateTime($first_date);
$date_end = new DateTime($end_date);
$date_diff = $date_end->diff($date1);
$d = ($date_diff->format("%d"));
$all_date = array();
for ($j=0; $j < ($d+1); $j++) {
$all_date[] = date('Y-m-d', strtotime("+$j day", strtotime($first_date)));
}
$real_date = array_column(array_values($schedule_obj), 'date');
foreach ($all_date as $kd => $vd) {
if ( ! in_array($vd, $real_date)) {
$this->tldOrderBuilder->setScheduleDetailsTitle($kd, "")
->setScheduleDetailsContent($kd, "")
->setScheduleDetailsAccommodation($kd, "")
// ->setScheduleDetailsTraffic($kd, ($vso->PAG_Vehicle>60001 ? 1 : 0))
->setScheduleDetailsBreakFirst($kd, 0 )
->setScheduleDetailsDinner($kd, 0)
->setScheduleDetailsLunch($kd, 0)
;
continue;
}
foreach (array_values($schedule_obj) as $kso => $vso) {
if ($vd==$vso['date']) {
$this->tldOrderBuilder->setScheduleDetailsTitle($kd, $vso['date'])
->setScheduleDetailsContent($kd, $vso['content'])
->setScheduleDetailsAccommodation($kd, $vso['accommodation'])
// ->setScheduleDetailsTraffic($kd, ($vso->PAG_Vehicle>60001 ? 1 : 0))
->setScheduleDetailsBreakFirst($kd, 0 )
->setScheduleDetailsDinner($kd, $vso['dinner'] )
->setScheduleDetailsLunch($kd, $vso['lunch'])
;
}
}
}
// 拆分的订单团款录第一个
if ($i===1) {
foreach ($travelFees as $kf => $vf) {
$this->tldOrderBuilder->setTravelFeesType($kf, "Per Group")
->setTravelFeesMoney($kf, $vf->GAI_SSJE)
->setTravelFeesNum($kf, 1)
->setTravelFeesUnit($kf, 1)
->setTravelFeesSumMoney($kf, $vf->GAI_SSJE)
->setTravelFeesRemark($kf, $vf->GAI_Memo);
}
}
// 查询是否变更
$sync_orderstate = 1;
$vps_sn = 0;
$vendor_orderid = 0;
if (intval($is_send_vary)===1) {
$vps = $this->Group_model->get_sync_info($vas_sn, $tour_code);
if ( ! empty($vps)) {
$vps_sn = $vps->VPS_SN;
$vendor_orderid = $vps->VPS_externalId;
$sync_orderstate = 11;
$modifyLogInfo = "<br>$change_info<br>";
// $modifyLogInfo = "<br><a href='https://www.trippest.com'>https://www.trippest.com</a><br>";
$this->tldOrderBuilder->setOrderId($vendor_orderid)
->setModifyLogInfo($modifyLogInfo)
;
}
} else {
$this->tldOrderBuilder->clearModifyLogInfo();
// $this->tldOrderBuilder->setModifyLogInfo($modifyLogInfo)
;
}
// echo(($this->tldOrderBuilder->getBizContent()));
// $this->output->set_content_type('application/json')->set_output($this->tldOrderBuilder->getBizContent());
$resp = $this->excute_curl($this->neworder_url, $this->tldOrderBuilder);
// var_dump($resp);
$response = json_decode($resp);
if ($response->status == 1) {
/** VendorPlanSync */
$sync_ret = array(
"VPS_VAS_SN" => $vas_sn
,"VPS_GRI_SN" => $gri_sn
,"VPS_VEI_SN" => $vei_sn
,"VPS_startDate" => $first_date
,"VPS_endDate" => $end_date
,"VPS_tourCode" => $tour_code
,"VPS_sendHost" => $userId
,"VPS_externalId" => $response->responseData->orderId
,"VPS_externalorderType" => $order_type
,"VPS_externalorderState" => $sync_orderstate
,"VPS_latestTime" => date('Y-m-d H:i:s')
);
if ($vps_sn === 0) {
$sync_id = $this->Group_model->insert_VendorPlanSync($sync_ret);
} else {
$update = $this->Group_model->update_VendorPlanSync($vps_sn, $sync_ret);
}
/** VendorArrangeState VAS_IsReceive */
$this->Group_model->set_plan_received($vas_sn);
}
}
return "Order Push done. ";
}
public function tourguide_update($input, $vps, $eva)
{
$ret['status'] = -1;
$ret['errMsg'] = "未知错误";
$eva_g_sn = $eva[0]->has_tourguide;
if (strval($vps->department)==="30") {
$userId = $this->send_host["30"]['userId'];
$userKey = $this->send_host["30"]['key'];
} else {
$userId = $this->send_host["1"]['userId'];
$userKey = $this->send_host["1"]['key'];
}
$this->tld_order->setOrderId($vps->VPS_externalId)
->setUserId($userId)
->setKey($userKey);
$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());
$ret['errMsg'] = "查询失败";
return $ret;
}
// 导游信息
$tourguige_name = "";
$tourguide_mobile = null;
if (isset($detail_jsonResp->orderDetail->operationDetails->guiderOperations) ) {
$tourguige_name = $detail_jsonResp->orderDetail->operationDetails->guiderOperations[0]->name;
$tourguide_mobile = real_phone_number($detail_jsonResp->orderDetail->operationDetails->guiderOperations[0]->mobelPhone, 86);
}
if ($tourguige_name === "") {
$ret['errMsg'] = "未查询到导游";
return $ret;
}
preg_match_all('/[^\w\s\-]+/', characet($tourguige_name, "UTF-8"), $cn_name_arr); // 取中文
$tourguige_name_cn = preg_replace('/^(上海|北京|西安)/', '', characet($cn_name_arr[0][0],'UTF-8'));
preg_match_all('/[a-zA-Z]+/', characet($tourguige_name, "UTF-8"), $en_name_arr); // 取英文
$tourguige_name_en = characet($en_name_arr[0][0],'UTF-8');
$ht_tourguide = $this->Group_model->search_tourguide($input['openId'], $tourguige_name_cn, $tourguige_name_en, $tourguide_mobile);
if (empty($ht_tourguide)) {
$ret['errMsg'] = "导游信息未录入";
return $ret;
}
$eva_tgi_column = array(
"EOI_Type" => 3
,"EOI_GRI_SN" => $eva->EOI_GRI_SN
,"EOI_VEI_SN" => $eva->EOI_ObjSN
,"EOI_ObjSN" => $ht_tourguide->TGI_SN
,"EOI_CII_SN" => $eva->EOI_CII_SN
,"EOI_GetDate" => $eva->EOI_GetDate
,"EOI_Date" => $eva->EOI_Date
,"EOI_Cancel" => $eva->EOI_Cancel
,"EOI_GroupType" => $eva->EOI_GroupType
,"EOI_FillWorkers_SN" => 0 // todo
,"EOI_FWks_LastEditTime" => date('Y-m-d H:i:s')
);
$this->Group_model->set_plan_tourguide($eva_g_sn, $eva_tgi_column);
$ret['status'] = 1;
$ret['errMsg'] = "";
return $ret;
}
/*!
* 订单状态变更,调度变更
* (地接社调用, 并邮件通知外联)
*/
public function order_change()
{
$this->load->model('Order_update');
$ret['status'] = -1;
$ret['errMsg'] = "未知错误";
$input = $this->input->post();
$vendorID = $input['openId'];
$validate = $this->calc_key($vendorID, $input['key']);
if ($validate !== TRUE) {
$ret['errMsg'] = "身份验证失败.";
return $this->output->set_content_type('application/json')->set_output(json_encode($ret));
}
// $vendorID = 29188;//29188 1343; // test
$vas_info = array();
if (in_array($input['agcName'], array("D目的地桂林组", "Trippest"))) {
$vas_info = $this->BIZ_order->get_vendorarrangestate_byVendor($input['orderId'], $vendorID);
if (empty($vas_info) && ! empty($input['agcOrderNo'])) {
$real_groupCode = analysis_groupCode($input['agcOrderNo']);
$vas_info = $this->BIZ_order->get_vendorarrangestate_byGroup($real_groupCode, $vendorID);
}
} elseif ($input['agcName'] == '桂林海纳国旅') {
$real_groupCode = analysis_groupCode($input['agcOrderNo']);
$vas_info = $this->BIZ_order->get_vendorarrangestate_byGroup_T($real_groupCode, $vendorID);
}
if (empty($vas_info)) {
$ret['errMsg'] = "未找到订单.";
} else {
$vendor_manager = $this->BIZ_order->get_vendorContact($vendorID);
/** VendorArrangeState */
$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);
if (in_array($input['agcName'], array("D目的地桂林组", "Trippest"))) { // 传统团的不需要更新订单主表
/** BIZ_confirmlineinfo */
$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));
}
$sender_name = "中华游供应商合作平台";
$sender_mail = "info@chinahighlights.net";
$from_name = $vendor_manager->LMI2_Name;
$from_mail = $vendor_manager->LMI_ListMail;
$to_name = $vas_info[0]->OPI_Name;
$to_mail = $vas_info[0]->OPI_Email;
$subject = $input['agcOrderNo'] . "团已确认: " . $vendor_manager->VEI2_CompanyBN;
$mail_body = $vendor_manager->VEI2_CompanyBN . "对团" . $input['agcOrderNo'] . "的计划在" . $input['orderTime'] . "已确认。\r\n";
$mail_body .= "确认说明:" . $input['orderRemark'] . "\r\n";
$mail_body .= "确认人:$vendor_manager->LMI2_Name $vendor_manager->LMI_ListMail 固定电话: $vendor_manager->LMI_Telephone 移动电话:$vendor_manager->LMI_Mobile\r\n";
$mail_body .= "变更内容: " . $vas_info[0]->VAS_ChangeText . "\r\n";
$this->BIZ_order->save_automail($sender_name, $sender_mail, $from_name, $from_mail, $to_name, $to_mail, $subject, $mail_body, $sender_name);
return $this->output->set_content_type('application/json')->set_output(json_encode($ret));
}
private 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;
}
public function pag_no_tmp($routeName='')
{
return array(
"故宫深度一日游(目的地)" => "BJSIC-44"
,"故宫深度游拼团(目的地)" => "BJSIC-44"
,"北京精品一日游(目的地)" => "BJSIC-41"
,"北京精品一日游PVT目的地" => "BJSIC-41"
,"北京精品两日游(目的地)" => "BJSIC-42"
,"北京精品两日游PVT目的地" => "BJSIC-42"
,"北京精品三日游(目的地)" => "BJSIC-43"
,"北京精品游D2目的地" => "BJSIC-42"
,"北京精品游D3目的地" => "BJSIC-43"
,"北京单租车服务(目的地)" => "BJALC-209"
,"北京单租车接送(常规)" => "BJALC-209"
,"北京单租车接送服务(目的地)" => "BJALC-209"
,"北京市内-天津新港大车接送(目的地)" => "BJSIC-16"
,"天津新港-北京市内大车接送(目的地)" => "BJSIC-16"
,"箭扣-慕田峪徒步一日游(目的地)" => "BJSIC-45"
,"箭扣-慕田峪徒步一日游PVT目的地" => "BJSIC-45"
,"箭扣-慕田峪长城徒步拼团(目的地)" => "BJSIC-45"
,"司马台西-金山岭徒步一日游(目的地)" => "BJSIC-46"
,"司马台西-金山岭徒步一日游PVT目的地" => "BJSIC-46"
,"司马台西-金山岭长城徒步拼团(目的地)" => "BJSIC-46"
,"慕田峪半日游拼团(目的地)" => "BJSIC-47"
,"慕田峪半日游PVT目的地" => "BJSIC-47"
,"古北口长城徒步一日游(目的地)" => "BJSIC-48"
,"古北口(目的地)" => "BJSIC-48"
,"半日游广场故宫拼团(目的地)" => "BJSIC-41"
// ,=>
,"西安精品一日游(目的地)" => "XASIC-41"
,"西安精品一日游PVT目的地" => "XASIC-41"
,"西安市内精品一日游(目的地)" => "XASIC-41"
,"西安精品两日游(目的地)" => "XASIC-42"
,"西安单租车服务(目的地)" => "XASIC-17"
,"西安单租车接送服务(目的地)" => "XASIC-17"
,"西安单租车接送服务" => "XASIC-17"
,"西安兵马俑精品一日游(目的地)" => "XASIC-41"
,"西安兵马俑精华一日游(目的地)" => "XASIC-41"
,"西安兵马俑精品半日游(目的地)" => "XASIC-15"
,"西安兵马俑精品半日游PVT目的地" => "XASIC-15"
,"西安汉阳陵市内精品一日游(目的地)" => "XASIC-42"
// ,=>
,"上海精品一日游(目的地)" => "SHSIC-41"
,"上海精品游PVT线路目的地" => "SHSIC-41"
,"上海市内精品一日游(目的地)" => "SHSIC-42"
,"周庄锦溪精品一日游(目的地)" => "SHSIC-43"
,"苏州精品一日游(目的地)" => "SHSIC-44"
,"上海单租车(目的地)" => "SHSIC-45" //"SHALC-6,7,8,9"
,"上海单租车接送服务(目的地)" => "SHSIC-45" //"SHALC-6,7,8,9"
);
}
public function calc_key($userId, $key)
{
$default = "b825e39422a54875a95752fc7ed6f5d2";
$ret = md5(hash("sha256", $userId.$default));
return $ret===$key;
}
}