上报导游变更

feature/pay
lyt 7 years ago
parent 0c7fdc5c18
commit a668669d86

@ -5,39 +5,38 @@ if (!defined('BASEPATH'))
class Tulanduo 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"
/** 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"
// )
// );
public $city_info = array(
"北京分公司" => array(
"PlanVEI_SN" => 1343
,"COLI_sourcetype" => 32090
,"routeType" => "北京目的地线路"
),
"总部" => 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
* 902 key:f56541ff40e1afba444d831c5a666195
*/
private $send_host = array(
"30" => array(
"userId" => 902
,"key" => "f56541ff40e1afba444d831c5a666195"
)
,"1" => array(
"userId" => 902
,"key" => "f56541ff40e1afba444d831c5a666195"
)
);
// public $vendor_ids = array(1343,30548,29188);
// userId key
// 1343 2e47c3721e3ff6e816fe6b928d7acc7d
@ -49,8 +48,8 @@ class Tulanduo extends CI_Controller
// 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 $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(){
@ -61,20 +60,10 @@ class Tulanduo extends CI_Controller
$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_queryContentBuilder', 'tld_order');
$this->load->model('TuLanDuo_addOrUpdateRouteOrderContentBuilder', 'tldOrderBuilder');
// $this->output->enable_profiler(TRUE);
/** test
902 key:f56541ff40e1afba444d831c5a666195
*/
$this->userId = "902";
$this->key = "f56541ff40e1afba444d831c5a666195";
/** Live */
// 目的地
// $this->userId = "1134";
// $this->key = "73d180d05d425fd192e1c5b3097e75ff";
// 桂林海纳国旅
// $this->userId = "18";
// $this->key = "d05c25e6e6c5d4898161e0aaf700d9c7";
$this->vendor_ids = $this->trippest->tulanduo_vei_sn;
}
@ -112,8 +101,8 @@ class Tulanduo extends CI_Controller
{
// exit();
/** 目的地 test */
$this->userId = "902";
$this->key = "f56541ff40e1afba444d831c5a666195";
$userId = $this->send_host["30"]["userId"];
$userKey = $this->send_host["30"]["key"];
$gri_sn = $vas->GRI_SN;
$vas_sn = $vas->VAS_SN;
@ -126,7 +115,6 @@ class Tulanduo extends CI_Controller
}
$change_info = str_replace("\n", "<br>", $change_info);
$vei_sn_str = implode(",", $this->vendor_ids);
$this->load->model('TuLanDuo_addOrUpdateRouteOrderContentBuilder', 'tldOrderBuilder');
$orderinfo = $this->BIZ_order->get_orderinfo_detail($gri_sn, $vei_sn_str);
if(empty($orderinfo)) {return;}
$COLI_ID = $orderinfo[0]->COLI_ID;
@ -143,7 +131,7 @@ class Tulanduo extends CI_Controller
$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;
$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;
@ -159,7 +147,7 @@ class Tulanduo extends CI_Controller
$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 = mb_strtoupper($vf["cold"][0]->pag_code);
$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);
@ -171,6 +159,7 @@ class Tulanduo extends CI_Controller
$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 = "";
@ -179,8 +168,8 @@ class Tulanduo extends CI_Controller
}
$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($this->userId)
->setKey($this->key)
$this->tldOrderBuilder->setUserId($userId)
->setKey($userKey)
->setOrderType($order_type)
->setRouteName($routeName)
->setRouteType($vf["package_info"][0]->city_chinese . "目的地线路")
@ -341,7 +330,7 @@ class Tulanduo extends CI_Controller
$vps = $this->Group_model->get_sync_info($vas_sn, $tour_code);
if ( ! empty($vps)) {
$vps_sn = $vps->VPS_SN;
$vendor_orderid = $vps->VPS_sync_id;
$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>";
@ -368,10 +357,11 @@ class Tulanduo extends CI_Controller
,"VPS_startDate" => $first_date
,"VPS_endDate" => $end_date
,"VPS_tourCode" => $tour_code
,"VPS_sync_id" => $response->responseData->orderId
,"VPS_sync_orderType" => $order_type
,"VPS_sync_orderState" => $sync_orderstate
,"VPS_syncTime" => date('Y-m-d H:i:s')
,"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);
@ -386,6 +376,68 @@ class Tulanduo extends CI_Controller
return;
}
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;
}
/*!
* 订单状态变更,调度变更
* (地接社调用, 并邮件通知外联)
@ -456,7 +508,7 @@ class Tulanduo extends CI_Controller
}
protected function excute_curl($url, $content_builder) {
private function excute_curl($url, $content_builder) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FAILONERROR, false);

@ -47,6 +47,11 @@ class Index extends CI_Controller {
$ret['errMsg'] = "身份验证失败.";
return $this->output->set_content_type('application/json')->set_output(json_encode($ret));
}
$vps = $this->Group_model->get_sync_info_by_vendororder($input['orderId']);
if (empty($vps)) {
$ret['errMsg'] = "未找到相应的订单.";
return $this->output->set_content_type('application/json')->set_output(json_encode($ret));
}
$vendor_order_id = $input['orderId'];
$action_code = $input['operationTypeCode'];
switch ($action_code) {
@ -54,10 +59,10 @@ class Index extends CI_Controller {
# code...
break;
case '2000':
$ret = $this->plan_confirm($input);
$ret = $this->plan_confirm($input, $vps);
break;
case '3001':
# code...
$ret = $this->fill_tourguide($input, $vps);
break;
case '4001':
# code...
@ -73,15 +78,10 @@ class Index extends CI_Controller {
return $this->output->set_content_type('application/json')->set_output(json_encode($ret));
}
public function plan_confirm($input)
public function plan_confirm($input, $vps)
{
$ret['status'] = -1;
$ret['errMsg'] = "未知用户";
$vps = $this->Group_model->get_sync_info_by_vendororder($input['orderId']);
if (empty($vps)) {
$ret['errMsg'] = "未找到相应的订单.";
return $ret;
}
$ret['errMsg'] = "";
$vendor_manager = $this->Group_model->get_vendorContact($input['openId']);
/** VendorArrangeState */
$VAS_ConfirmInfo = $input['operationRemark'] . "\r\n======确认人: " . $input['operator'] . ", 确认时间: " . $input['operateTime'];
@ -91,8 +91,8 @@ class Index extends CI_Controller {
$ret['status'] = 1;
$ret['errMsg'] = "";
$sync_arr = array(
"VPS_sync_orderState" => 2
,"VPS_syncTime" => date('Y-m-d H:i:s')
"VPS_externalorderState" => 2
,"VPS_latestTime" => date('Y-m-d H:i:s')
);
/** VendorPlanSync */
$this->Group_model->update_VendorPlanSync($vps->VPS_SN, $sync_arr);
@ -115,6 +115,30 @@ class Index extends CI_Controller {
return $ret;
}
public function fill_tourguide($input, $vps)
{
$ret['status'] = -1;
$ret['errMsg'] = "";
$eva = $this->Group_model->get_plan_eva($vps->VAS_SN);
if (empty($eva)) {
$ret['errMsg'] = "未找到相应的订单.";
return $this->output->set_content_type('application/json')->set_output(json_encode($ret));
}
if (intval($eva[0]->need_tourguide)===0) {
// 不需要设置导游
$ret['status'] = 1;
$ret['errMsg'] = "";
return $ret;
}
// 需要填写导游, 则根据不同的供应商调用相应的方法
if (in_array($input['openId'], $this->trippest->tulanduo_vei_sn)) {
require_once('Tulanduo.php');
$tulanduo_fun = new Tulanduo();
return $tulanduo_fun->tourguide_update($input, $vps, $eva);
}
return $ret;
}
public function calc_key($userId, $key)
{
$default = "b825e39422a54875a95752fc7ed6f5d2";

@ -32,6 +32,22 @@ class Group_model extends CI_Model {
return $this->HT->query($sql)->result();
}
public function get_plan_eva($vas)
{
$sql = "SELECT
isnull(eoi_v.EOI_SendEvaluation,0) as need_tourguide,
isnull(eoi_g.EOI_SN,0) as has_tourguide,
vas.*,eoi_v.*
from VendorArrangeState vas
inner join Eva_ObjectInfo eoi_v on EOI_GRI_SN=VAS_GRI_SN
and EOI_Type=1 and EOI_ObjSN=VAS_VEI_SN
left join Eva_ObjectInfo eoi_g on eoi_g.EOI_GRI_SN=VAS_GRI_SN
and eoi_g.EOI_Type=3 and eoi_g.EOI_VEI_SN=eoi_v.EOI_ObjSN
where VAS_SN=?
order by has_tourguide desc ";
return $this->HT->query($sql, array($vas))->result();
}
public function get_vendor_plan_info($gri_sn, $vendor_id)
{
$sql = " SP_VendorPlan_GetPlanInfo $gri_sn, $vendor_id, 0 ";
@ -41,7 +57,7 @@ class Group_model extends CI_Model {
public function get_sync_info($vas, $tour_code="")
{
$sql = "SELECT *
from VendorPlanSync
from VendorPlanSendout
where VPS_VAS_SN=? ";
$param_arr = array($vas);
if ($tour_code !== "") {
@ -56,11 +72,11 @@ class Group_model extends CI_Model {
$sql = "SELECT
opi.OPI_DEI_SN as department,
*
from VendorPlanSync vps
from VendorPlanSendout vps
inner join VendorArrangeState vas on vas.VAS_SN=vps.VPS_VAS_SN
inner join GRoupInfo gri on GRI_SN=vas.VAS_GRI_SN
left join OperatorInfo opi on opi.OPI_SN=GRI_operator
where VPS_sync_id=? ";
where VPS_externalId=? ";
$param_arr = array($vendor_order_id);
return $this->HT->query($sql, $param_arr)->row();
}
@ -86,6 +102,57 @@ class Group_model extends CI_Model {
return $query->row();
}
public function search_tourguide($vendor, $cn_name, $en_name=null, $mobile=null)
{
$param_arr = array($cn_name);
$en_sql = " ";
if (strval($en_name)!=="") {
$en_sql = " and tgi_en.TGI2_Name =? ";
$param_arr[] = $en_name;
}
$mobile_sql = " ";
if (strval($mobile)!=="") {
$mobile_sql = " or TGI_Mobile=? ";
$param_arr[] = $mobile;
}
$sql = "SELECT TGI_VEI_SN,TGI_Mobile,
tgi_cn.TGI2_Name cn_name,
tgi_en.TGI2_Name en_name,
TGI_SN
from TouristGuideInfo2 tgi_en
join TouristGuideInfo on TGI_SN=tgi_en.TGI2_TGI_SN and tgi_en.TGI2_LGC=1
join TouristGuideInfo2 tgi_cn on TGI_SN=tgi_cn.TGI2_TGI_SN and tgi_cn.TGI2_LGC=2
where (
( 1=1
and tgi_cn.TGI2_Name like '%" . $this->HT->escape_like_str($cn_name) . "%'
$en_sql
)
$mobile_sql
)
and TGI_VEI_SN in ($vendor)";
return $this->HT->query($sql, $param_arr)->row();
}
public function set_plan_tourguide($eva_g_sn=0, $column=array())
{
if ($eva_g_sn===0) {
// 第一次设置导游
$this->HT->insert("Eva_ObjectInfo", $column);
$eva_g_sn = $this->HT->query("SELECT MAX(EOI_SN) EOI_SN from Eva_ObjectInfo
where EOI_GRI_SN=?
and EOI_VEI_SN=?
and EOI_Type=3
", array($column['EOI_GRI_SN'], $column['EOI_VEI_SN']))
->row()->EOI_SN;
} else {
// 变更导游设置
$update_where = " EOI_SN=".$eva_g_sn;
$update_sql = $this->HT->update_string("Eva_ObjectInfo", $column, $update_where);
$this->HT->query($update_sql);
}
return $eva_g_sn;
}
public function set_plan_received($vas_sn=0)
{
$sql = "UPDATE VendorArrangeState set VAS_IsReceive=1,VAS_ReceiveTime=GETDATE() where VAS_SN=? ";
@ -102,7 +169,7 @@ class Group_model extends CI_Model {
$sql = "UPDATE VendorArrangeState
SET VAS_IsConfirm=1
,VAS_ConfirmInfo=?
,VAS_ConfirmTime=getdate()
,VAS_ConfirmTime=GETDATE()
,VAS_ConfirmSN=?
WHERE VAS_SN=?";
$query = $this->HT->query($sql, array($confirminfo, $lmi_sn, $vas_sn));
@ -116,15 +183,15 @@ class Group_model extends CI_Model {
public function insert_VendorPlanSync($sync_arr=array())
{
$this->HT->insert('VendorPlanSync', $sync_arr);
return $this->HT->query("SELECT MAX(VPS_SN) VPS_SN from VendorPlanSync")
$this->HT->insert('VendorPlanSendout', $sync_arr);
return $this->HT->query("SELECT MAX(VPS_SN) VPS_SN from VendorPlanSendout")
->row()->VPS_SN;
}
public function update_VendorPlanSync($vps, $sync_arr=array())
{
$where = " VPS_SN=" . $vps;
$update_sql = $this->HT->update_string('VendorPlanSync', $sync_arr, $where);
$update_sql = $this->HT->update_string('VendorPlanSendout', $sync_arr, $where);
return $this->HT->query($update_sql);
}

Loading…
Cancel
Save