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/application/third_party/train/models/tuniu_model.php

461 lines
16 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
class tuniu_model extends CI_Model {
function __construct() {
parent::__construct();
$this->HT = $this->load->database('HT', TRUE);
$this->INFO = $this->load->database('INFO', TRUE);
}
//传入主订单翰特订单号COLI_ID161014006M获取子订单中火车订单的COLD_SN
function get_biz_cold($cols_id) {
$sql = "SELECT COLD_SN
FROM BIZ_ConfirmLineDetail bcld
WHERE bcld.COLD_COLI_SN=(
SELECT COLI_SN FROM BIZ_ConfirmLineInfo bcli WHERE bcli.COLI_ID=?)
AND bcld.DeleteFlag=0 AND bcld.COLD_ServiceType='2'";
$query = $this->HT->query($sql, $cols_id);
return $query->result();
}
//传入COLI_ID获取外联名
function get_operatorinfo($cols_id) {
$sql = "
SELECT
Name,
OPI_Name,
OPI_Email,
tel,
Mobile,
Email
FROM OperatorInfo
left join agenter_user
on AU_OPI_SN = OPI_SN
WHERE OPI_SN = (
SELECT COLI_OPI_ID
FROM BIZ_ConfirmLineInfo bcli
WHERE bcli.COLI_ID = ?
)
and agenter in ('cht', 'train_vac', 'jp', 'train_it', 'vc', 'ru')
";
$query = $this->HT->query($sql, $cols_id);
return $query->result();
}
//传入子订单COLD_SN获取子订单对应的乘客信息
function biz_people($cold_sn) {
$sql = "
SELECT bbp.BPE_SN
,bbp.BPE_FirstName
,bbp.BPE_MiddleName
,bbp.BPE_LastName
,bbp.BPE_GuestType
,bbp.BPE_Passport
FROM BIZ_BookPeople bbp
WHERE EXISTS(
SELECT TOP 1 1
FROM BIZ_BookPeopleList bbpl
WHERE bbpl.BPL_BPE_SN = bbp.BPE_SN
AND bbpl.BPL_COLD_SN = ?
)
";
$query = $this->HT->query($sql, $cold_sn);
return $query->result();
}
//传入COLD_SN获取火车车次等信息
function get_biz_foi($cold_sn) {
$sql = "
SELECT FOI_COLD_SN,
FlightsNo,
Cabin,
Aircraft,
DepartureCity,
ArrivalCity,
DepartureDate,
DepartureTime,
ArrivalTime,
adultcost,
FOI_SelectedSeat,
FOI_TrainNetOrderNo,
FOI_SaleDate,
(
SELECT TOP 1 TRS_StationCN
FROM TrainStation
WHERE TRS_Code = DepartAirport
) AS DepartAirport_cn
,(
SELECT TOP 1 TRS_StationCN
FROM TrainStation
WHERE TRS_Code = ArrivalAirport
) AS ArrivalAirport_cn
FROM BIZ_FlightsOrderInfo
WHERE FOI_COLD_SN = ?
";
$query = $this->HT->query($sql, $cold_sn);
return $query->result();
}
//传入COLD_SN获取BIZ_JuheOrderList是否存在此子订单用来判断是否提交过给聚合
function get_biz_jol($cold_sn) {
$sql = "SELECT top 1 JOL_SN FROM BIZ_JuheOrderList WHERE JOL_COLD_SN= ?";
$query = $this->HT->query($sql, $cold_sn);
if($query->num_rows() == 0){
return true;
}else{
return false;
}
}
public function get_order($pagesize=2,$page=0,$where="1=1"){
$data=new StdClass();
//获取总条数
$sql="SELECT COUNT(*) AS count FROM TuniuOrderList
LEFT JOIN
Tourmanager.dbo.BIZ_ConfirmLineInfo
ON
Tourmanager.dbo.BIZ_ConfirmLineInfo.COLI_SN=(SELECT COLD_COLI_SN FROM Tourmanager.dbo.BIZ_ConfirmLineDetail WHERE COLD_SN=substring(tol_retailOrderId,0,charindex('_',tol_retailOrderId)))
WHERE
{$where}
";
$query = $this->INFO->query($sql);
$count=$query->result();
$data->count=$count[0]->count;
$sql="SELECT TOP {$pagesize} TuniuOrderList.tol_subtime,
TuniuOrderList.tol_orderId,
TuniuOrderList.tol_returnCode,
TuniuOrderList.tol_retailOrderId,
TuniuOrderList.tol_Status,
TuniuOrderList.tol_errorMsg,
TuniuOrderList.tol_fromStationName,
TuniuOrderList.tol_toStationName,
TuniuOrderList.tol_cheCi,
TuniuOrderList.tol_orderAmount,
TuniuOrderList.tol_isauto,
TuniuOrderList.tol_sendmail,
Tourmanager.dbo.BIZ_ConfirmLineInfo.COLI_ID,
Tourmanager.dbo.BIZ_ConfirmLineInfo.COLI_WebCode
FROM
TuniuOrderList
LEFT JOIN
Tourmanager.dbo.BIZ_ConfirmLineInfo
ON
Tourmanager.dbo.BIZ_ConfirmLineInfo.COLI_SN=(SELECT COLD_COLI_SN FROM Tourmanager.dbo.BIZ_ConfirmLineDetail WHERE COLD_SN=substring(tol_retailOrderId,0,charindex('_',tol_retailOrderId)))
WHERE
TuniuOrderList.tol_orderId NOT IN(SELECT TOP {$page} TuniuOrderList.tol_orderId FROM TuniuOrderList ORDER BY TuniuOrderList.tol_sn DESC)
AND
{$where}
ORDER BY TuniuOrderList.tol_sn DESC";
$query = $this->INFO->query($sql);
$data->list=$query->result();
return $data;
}
function biz_order_detail($cold_sn) {
$sql = "
SELECT TOP 1 bfoi.FOI_SN
,bfoi.FOI_COLD_SN
,bfoi.DepartAirport
,bfoi.ArrivalAirport
,bfoi.FlightsNo
,bfoi.Aircraft
,bfoi.DepartureDate
,(
SELECT TOP 1 TRS_StationCN
FROM TrainStation
WHERE TRS_Code = DepartAirport
) AS DepartAirport_cn
,(
SELECT TOP 1 TRS_StationCN
FROM TrainStation
WHERE TRS_Code = ArrivalAirport
) AS ArrivalAirport_cn,
FOI_TrainNetOrderNo,
bfoi.adultcost
FROM BIZ_FlightsOrderInfo bfoi
WHERE bfoi.FOI_COLD_SN = ?
";
$query = $this->HT->query($sql, $cold_sn);
if ($query->num_rows() > 0) {
return $query->row();
} else {
return false;
}
}
//传入一组BPE_SN获取乘客信息
function in_bpesn_people_info($bpe_sn){
$sql = "
SELECT bbp.BPE_SN
,bbp.BPE_FirstName
,bbp.BPE_MiddleName
,bbp.BPE_LastName
,bbp.BPE_GuestType
,bbp.BPE_Passport
,bbp.BPE_PassportType
FROM BIZ_BookPeople bbp
WHERE BPE_SN in(".$bpe_sn.")
";
$query = $this->HT->query($sql);
return $query->result();
}
//添加途牛订单记录
function tuniu_add_biz_jol($data,$isauto){
if($isauto){
$isauto = 1;
}else{
$isauto = 0;
}
$sql="
INSERT INTO TuniuOrderList(
tol_subTime,
tol_cheCi,
tol_fromStationName,
tol_fromStationCode,
tol_toStationName,
tol_toStationCode,
tol_retailOrderId,
tol_orderId,
tol_status,
tol_errorMsg,
tol_isauto
)
VALUES(getdate(),?,?,?,?,?,?,?,?,?,?)
";
$query = $this->INFO->query($sql,array($data->tol_cheCi,$data->tol_fromStationName,$data->tol_fromStationCode,$data->tol_toStationName,$data->tol_toStationCode,$data->tol_retailOrderId,$data->tol_orderId,$data->tol_status,$data->tol_errorMsg,$isauto));
return $query;
}
//途牛预定处理
function book_tuniu_order($data){
$sql = "
UPDATE TuniuOrderList
set
tol_orderId = '{$data['orderId']}',
tol_returnCode = '{$data['returnCode']}',
tol_status = '2',
tol_errorMsg = '{$data['errorMsg']}',
--tol_fromStationCode = '{$data['fromStationCode']}',
--tol_fromStationName = '{$data['fromStationName']}',
--tol_toStationCode = '{$data['toStationCode']}',
--tol_toStationName = '{$data['toStationName']}',
--tol_cheCi = '{$data['cheCi']}',
tol_orderAmount = '{$data['orderAmount']}',
tol_booktxt = '{$data['backtxt']}'
WHERE
tol_retailOrderId = '{$data['retailOrderId']}'
";
$query = $this->INFO->query($sql);
return $query;
}
//确认出票更新
public function confirm_tuniu_order($data){
$sql = "
UPDATE TuniuOrderList
set
tol_orderId = '{$data['orderId']}',
tol_returnCode = '{$data['returnCode']}',
tol_status = '4',
tol_errorMsg = '{$data['errorMsg']}',
tol_confirmtxt = '{$data['confirmtxt']}'
WHERE
tol_retailOrderId = '{$data['retailOrderId']}'
";
$query = $this->INFO->query($sql);
return $query;
}
//退票更新
public function return_tuniu_order($data){
$sql = "
UPDATE TuniuOrderList
set
tol_returnCode = '{$data['returnCode']}',
tol_status = '7',
tol_errorMsg = '{$data['errorMsg']}',
tol_returntxt = '{$data['returntxt']}'
WHERE
tol_retailOrderId = '{$data['retailOrderId']}'
";
$query = $this->INFO->query($sql);
return $query;
}
//抢票更新
public function grab_tuniu_order($data){
$sql = "
UPDATE TuniuOrderList
set
tol_returnCode = '{$data['returnCode']}',
tol_status = '9',
tol_errorMsg = '{$data['errorMsg']}',
tol_fromStationCode = '{$data['fromStationCode']}',
tol_fromStationName = '{$data['fromStationName']}',
tol_toStationCode = '{$data['toStationCode']}',
tol_toStationName = '{$data['toStationName']}',
tol_cheCi = '{$data['cheCi']}',
tol_orderAmount = '{$data['orderAmount']}',
tol_booktxt = '{$data['booktxt']}'
WHERE
tol_retailOrderId = '{$data['retailOrderId']}'
";
$query = $this->INFO->query($sql);
return $query;
}
//取消抢票更新
public function cancelgragticket($data){
$sql = "
UPDATE TuniuOrderList
set
tol_errorMsg = '{$data['errorMsg']}',
tol_returnCode = '{$data['returnCode']}',
tol_status = '8',
tol_orderId = '{$data['orderId']}'
WHERE
tol_retailOrderId = '{$data['retailOrderId']}'
";
$query = $this->INFO->query($sql);
return $query;
}
//获取途牛订单信息
public function get_tuniuorder_info($retailOrderId,$orderId){
$sql = 'select tol_booktxt from TuniuOrderList where tol_retailOrderId = ? and tol_orderId =?';
$query = $this->INFO->query($sql,array($retailOrderId,$orderId));
return $query->result();
}
//BIZ_TrainOrderCost,我的支付
//BIZ_FlightsOrderInfo.FOI_TrainNetOrderNo,更新取票号
public function add_grab_order($data){
$sql="SELECT COLD_COLI_SN FROM BIZ_ConfirmLineDetail WHERE COLD_SN=?";
$query=$this->HT->query($sql,$data->TOC_COLD_SN);
$query=$query->result();
$CCSN=$query[0]->COLD_COLI_SN;
//删除多余支付记录
$sql = "delete from BIZ_TrainOrderCost where TOC_COLI_SN = '{$CCSN}' and TOC_TicketCost is null";
$query=$this->HT->query($sql);
$sql="IF EXISTS(
select * from BIZ_FlightsOrderInfo where FOI_COLD_SN = '$data->TOC_COLD_SN' and (FOI_TrainNetOrderNo is null or FOI_TrainNetOrderNo = '' or FOI_TrainNetOrderNo like '%$data->FOI_TrainNetOrderNo%'))
UPDATE BIZ_FlightsOrderInfo
SET
FOI_TrainNetOrderNo='$data->FOI_TrainNetOrderNo'
WHERE
FOI_COLD_SN='$data->TOC_COLD_SN'
ELSE
UPDATE BIZ_FlightsOrderInfo
SET
FOI_TrainNetOrderNo=(select FOI_TrainNetOrderNo from BIZ_FlightsOrderInfo where FOI_COLD_SN = '$data->TOC_COLD_SN') + '&' + '$data->FOI_TrainNetOrderNo'
WHERE
FOI_COLD_SN='$data->TOC_COLD_SN'";
$this->HT->query($sql);
$sql="IF NOT EXISTS(
SELECT TOP 1 1 FROM BIZ_TrainOrderCost
WHERE TOC_COLD_SN = ? AND TOC_Memo like ?
)
INSERT INTO BIZ_TrainOrderCost(
TOC_Memo,
TOC_CreateDate,
TOC_COLI_SN,
TOC_COLD_SN,
TOC_TrainNumber,
TOC_DepartureDate,
TOC_TicketCost,
TOC_WL,
TOC_OtherCost
)
VALUES(?,getdate(),{$CCSN},?,?,?,?,(SELECT COLI_OPI_ID FROM BIZ_ConfirmLineInfo WHERE COLI_SN={$CCSN}),null),(?,getdate(),{$CCSN},?,?,?,?,(SELECT COLI_OPI_ID FROM BIZ_ConfirmLineInfo WHERE COLI_SN={$CCSN}),1)";
$query = $this->HT->query($sql,array($data->TOC_COLD_SN,"%".$data->TOC_Memo."%",$data->TOC_Memo." 途牛抢票出票",$data->TOC_COLD_SN,$data->TOC_TrainNumber,$data->TOC_DepartureDate,$data->TOC_TicketCost,$data->TOC_Memo." 手续费",$data->TOC_COLD_SN,$data->TOC_TrainNumber,$data->TOC_DepartureDate,$data->poundage));
return $query;
}
public function add_return_order($data){
$sql="SELECT COLD_COLI_SN FROM BIZ_ConfirmLineDetail WHERE COLD_SN=?";
$query=$this->HT->query($sql,$data->TOC_COLD_SN);
$query=$query->result();
$CCSN=$query[0]->COLD_COLI_SN;
$sql="IF NOT EXISTS(
SELECT TOP 1 1 FROM BIZ_TrainOrderCost
WHERE TOC_COLD_SN = ? AND TOC_Memo like ?
)
INSERT INTO BIZ_TrainOrderCost(
TOC_Memo,
TOC_CreateDate,
TOC_COLI_SN,
TOC_COLD_SN,
TOC_TrainNumber,
TOC_TicketCost,
TOC_WL
)
VALUES(?,getdate(),{$CCSN},?,?,?,(SELECT COLI_OPI_ID FROM BIZ_ConfirmLineInfo WHERE COLI_SN={$CCSN}))";
$query = $this->HT->query($sql,array($data->TOC_COLD_SN,"%".$data->TOC_Memo."%","途牛退票费 ".$data->TOC_Memo,$data->TOC_COLD_SN,$data->TOC_TrainNumber,$data->TOC_TicketCost));
return $query;
}
public function update_status($data){
$sql = "update
TuniuOrderList
set
tol_status = '9',
tol_returnCode = '{$data['returnCode']}',
tol_errorMsg = '{$data['errorMsg']}'
where
tol_retailOrderId = '{$data['retailOrderId']}'
";
$query = $this->INFO->query($sql);
return $query;
}
public function get_transaction_record(){
$sql = "select * from TuniuExcel";
$query = $this->INFO->query($sql);
return $query->result();
}
public function get_order_info($order){
$sql = "SELECT tol_retailOrderId,tol_orderId FROM TuniuOrderList WHERE tol_orderId = '{$order}'";
$query = $this->INFO->query($sql);
return $query->result();
}
public function get_coli_id($cold_sn){
$sql = "select * from BIZ_ConfirmLineInfo where coli_sn = (select cold_coli_sn from BIZ_ConfirmLineDetail where COLD_SN = '{$cold_sn}')";
$query = $this->HT->query($sql);
return $query->result();
}
function get_gri_no($coli_id){
$sql="SELECT GRI_No FROM GroupInfo
WHERE GRI_SN=(
SELECT COLI_GRI_SN FROM BIZ_ConfirmLineInfo WHERE COLI_ID=?
)
";
$query = $this->HT->query($sql, $coli_id);
return $query->result();
}
public function test(){
$sql = "delete from TuniuOrderList where tol_sn in (18,20)";
$query = $this->INFO->query($sql);
return $query;
}
}
?>