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.
267 lines
8.3 KiB
PHP
267 lines
8.3 KiB
PHP
<?php
|
|
|
|
class train_system_model extends CI_Model {
|
|
private $order="";//订单号
|
|
|
|
function __construct() {
|
|
parent::__construct();
|
|
$this->HT = $this->load->database('HT', TRUE);
|
|
$this->INFO = $this->load->database('INFO', TRUE);
|
|
}
|
|
|
|
//获取订单(用于订单列表)
|
|
public function get_order($pagesize=2,$page=0,$where="1=1"){
|
|
$data=new StdClass();
|
|
//获取总条数
|
|
$sql="SELECT COUNT(*) AS count FROM InfoManager.dbo.trainsystem
|
|
LEFT JOIN
|
|
BIZ_ConfirmLineInfo
|
|
ON
|
|
BIZ_ConfirmLineInfo.COLI_SN=(SELECT COLD_COLI_SN FROM BIZ_ConfirmLineDetail WHERE COLD_SN = InfoManager.dbo.trainsystem.ts_cold_sn)
|
|
WHERE
|
|
{$where}
|
|
";
|
|
$query = $this->HT->query($sql);
|
|
$count=$query->result();
|
|
$data->count=$count[0]->count;
|
|
|
|
$sql="SELECT TOP {$pagesize} InfoManager.dbo.trainsystem.ts_subtime,
|
|
InfoManager.dbo.trainsystem.ts_cold_sn,
|
|
InfoManager.dbo.trainsystem.ts_ordernumber,
|
|
InfoManager.dbo.trainsystem.ts_status,
|
|
InfoManager.dbo.trainsystem.ts_errormsg,
|
|
InfoManager.dbo.trainsystem.ts_fromstationame,
|
|
InfoManager.dbo.trainsystem.ts_tostationame,
|
|
InfoManager.dbo.trainsystem.ts_checi,
|
|
InfoManager.dbo.trainsystem.ts_orderamount,
|
|
InfoManager.dbo.trainsystem.ts_isauto,
|
|
InfoManager.dbo.trainsystem.ts_sendmail,
|
|
InfoManager.dbo.trainsystem.ts_m_sn,
|
|
InfoManager.dbo.trainsystem.ts_channel,
|
|
BIZ_ConfirmLineInfo.COLI_ID,
|
|
BIZ_ConfirmLineInfo.COLI_WebCode
|
|
FROM
|
|
InfoManager.dbo.trainsystem
|
|
LEFT JOIN
|
|
BIZ_ConfirmLineInfo
|
|
ON
|
|
BIZ_ConfirmLineInfo.COLI_SN=(SELECT COLD_COLI_SN FROM BIZ_ConfirmLineDetail WHERE COLD_SN = InfoManager.dbo.trainsystem.ts_cold_sn)
|
|
WHERE
|
|
InfoManager.dbo.trainsystem.ts_id NOT IN(
|
|
SELECT
|
|
TOP {$page} ts_id
|
|
FROM
|
|
InfoManager.dbo.trainsystem
|
|
LEFT JOIN
|
|
BIZ_ConfirmLineInfo
|
|
ON
|
|
BIZ_ConfirmLineInfo.COLI_SN=(SELECT COLD_COLI_SN FROM BIZ_ConfirmLineDetail WHERE COLD_SN = InfoManager.dbo.trainsystem.ts_cold_sn)
|
|
where {$where}
|
|
ORDER BY ts_subtime DESC)
|
|
AND
|
|
{$where}
|
|
ORDER BY InfoManager.dbo.trainsystem.ts_subtime DESC";
|
|
|
|
$query = $this->HT->query($sql);
|
|
$data->list=$query->result();
|
|
return $data;
|
|
|
|
}
|
|
|
|
//获取指定订单信息
|
|
public function get_passager_details($ordernumber){
|
|
$sql = "select * from trainsystem_tickets where tst_ordernumber = '{$ordernumber}'";
|
|
$query = $this->INFO->query($sql);
|
|
return $query->result();
|
|
}
|
|
|
|
//添加订单
|
|
function add_orders($data){
|
|
$sql="
|
|
INSERT INTO trainsystem(
|
|
ts_cold_sn,
|
|
ts_ordernumber,
|
|
ts_subtime,
|
|
ts_returncode,
|
|
ts_status,
|
|
ts_errormsg,
|
|
ts_fromstationame,
|
|
ts_fromstationcode,
|
|
ts_tostationame,
|
|
ts_tostationcode,
|
|
ts_startdate,
|
|
ts_startime,
|
|
ts_endtime,
|
|
ts_runtime,
|
|
ts_checi,
|
|
ts_channel,
|
|
ts_isauto
|
|
)
|
|
VALUES(
|
|
'{$data->cold_sn}',
|
|
'{$data->ordernumber}',
|
|
getdate(),
|
|
'{$data->returncode}',
|
|
'{$data->status}',
|
|
'{$data->errormsg}',
|
|
'{$data->fromstationame}',
|
|
'{$data->fromstationcode}',
|
|
'{$data->tostationame}',
|
|
'{$data->tostationcode}',
|
|
'{$data->startdate}',
|
|
'{$data->startime}',
|
|
'{$data->endtime}',
|
|
'{$data->runtime}',
|
|
'{$data->checi}',
|
|
'{$data->channel}',
|
|
'{$data->isauto}'
|
|
)
|
|
";
|
|
//echo $sql;
|
|
$query = $this->INFO->query($sql);
|
|
}
|
|
|
|
public function ticketfrom($ts_ordernumber){
|
|
$sql = "select ts_channel,ts_cold_sn,ts_ordernumber from trainsystem where ts_ordernumber = ?";
|
|
$query = $this->INFO->query($sql,array($ts_ordernumber));
|
|
return $query->row();
|
|
}
|
|
|
|
public function get_passenger_info($ordernumber,$passportname,$passportno){
|
|
$sql = "select * from trainsystem_tickets left join trainsystem on tst_ordernumber = ts_ordernumber where tst_realname = ? and tst_numberid = ? and tst_ordernumber = ?";
|
|
$query = $this->INFO->query($sql,array($passportname,$passportno,$ordernumber));
|
|
return $query->row();
|
|
}
|
|
|
|
//新增乘客
|
|
function add_passagers($data){
|
|
$sql = "IF EXISTS (select * from trainsystem_tickets where tst_ordernumber = '{$data->ordernumber}' and tst_numberid = '{$data->numberid}' and tst_realname = '{$data->realname}')
|
|
update
|
|
trainsystem_tickets
|
|
set
|
|
tst_identitytype = '{$data->identitytype}',
|
|
tst_numberid = '{$data->numberid}',
|
|
tst_ticketype = '{$data->ticketype}',
|
|
tst_ticketprice = '{$data->ticketprice}',
|
|
tst_seatstype = '{$data->seatype}',
|
|
tst_seatdetail = '{$data->seatdetail}',
|
|
tst_status = '{$data->status}',
|
|
tst_LongTrainNo = '{$data->longtrainno}'
|
|
where
|
|
tst_ordernumber = '{$data->ordernumber}'
|
|
and
|
|
tst_numberid = '{$data->numberid}'
|
|
and
|
|
tst_realname = '{$data->realname}'
|
|
else
|
|
INSERT INTO trainsystem_tickets (
|
|
tst_ordernumber,
|
|
tst_status,
|
|
tst_realname,
|
|
tst_identitytype,
|
|
tst_numberid,
|
|
tst_ticketype,
|
|
tst_ticketprice,
|
|
tst_seatstype,
|
|
tst_seatdetail,
|
|
tst_LongTrainNo
|
|
)VALUES(
|
|
'{$data->ordernumber}',
|
|
'{$data->status}',
|
|
'{$data->realname}',
|
|
'{$data->identitytype}',
|
|
'{$data->numberid}',
|
|
'{$data->ticketype}',
|
|
'{$data->ticketprice}',
|
|
'{$data->seatype}',
|
|
'{$data->seatdetail}',
|
|
'{$data->longtrainno}'
|
|
)
|
|
";
|
|
$query =$this->INFO->query($sql);
|
|
}
|
|
|
|
//更新订单信息
|
|
public function update_orders($data){
|
|
$where = '';
|
|
if(!empty($data->bookcallback)){
|
|
$where .= "
|
|
ts_seatsinfo = '{$data->seatsinfo}',
|
|
ts_checkdoor = '{$data->TicketCheck}',
|
|
ts_elecnumber = '{$data->ElectronicOrderNumber}',
|
|
ts_orderamount = '{$data->OrderTotleFee}',
|
|
ts_bookcallback = '{$data->bookcallback}',
|
|
ts_startime = '{$data->OrderTicketTime}',";
|
|
}else if(!empty($data->confirmcallback)){
|
|
$where .= "ts_confirmcallback = '{$data->confirmcallback}',";
|
|
}else if(!empty($data->returncallback)){
|
|
$where .= "ts_returncallback = '{$data->returncallback}',";
|
|
}else if(!empty($data->reschedulecallback)){
|
|
$where .= "ts_reschedulecallback = '{$data->reschedulecallback}',";
|
|
}
|
|
$sql ="
|
|
update trainsystem
|
|
set
|
|
ts_status = '{$data->OrderStatus}',
|
|
ts_errormsg = '{$data->ErrorMsg}',
|
|
".substr($where,0,strlen($where)-1)."
|
|
where
|
|
ts_ordernumber = '{$data->ordernumber}'
|
|
";
|
|
//echo $sql;die();
|
|
$query = $this->INFO->query($sql);
|
|
}
|
|
|
|
//更新乘客表信息
|
|
public function update_passpager_info($data){
|
|
$sql = "update
|
|
trainsystem_tickets
|
|
set
|
|
tst_status = '{$data->status}',
|
|
tst_returncallback = '{$data->returncallback}',
|
|
tst_lasteditdate = getdate()
|
|
where
|
|
tst_ordernumber = '{$data->ordernumber}'
|
|
and
|
|
tst_realname = '{$data->realname}'
|
|
and
|
|
tst_numberid = '{$data->numberid}'
|
|
";
|
|
$query = $this->INFO->query($sql);
|
|
}
|
|
|
|
//获取订单出票状态
|
|
public function get_tickets_info($cold_sn){
|
|
$sql = "select top 1 ts_status,ts_ordernumber,ts_elecnumber,ts_seatsinfo from trainsystem where ts_cold_sn = ? and ts_status in ('4','7') order by ts_subtime desc";
|
|
$query = $this->INFO->query($sql,array($cold_sn));
|
|
return $query->row();
|
|
}
|
|
|
|
//获取所有订单
|
|
public function getallorders(){
|
|
$sql = "select * from Tourmanager.dbo.BIZ_JuheOrderList where JOL_SubTime > '2019-03-01' and (JOL_Status = '4' or JOL_Status = '7')";
|
|
$query = $this->HT->query($sql);
|
|
return $query->result();
|
|
}
|
|
|
|
//根据cold_sn 获取出票情况(仅限出票成功)
|
|
public function get_ticketinfos($cold_sn){
|
|
$sql = "select * from trainsystem where ts_cold_sn = ? and ts_status = '4'";
|
|
$query = $this->INFO->query($sql,array($cold_sn));
|
|
return $query->row();
|
|
}
|
|
|
|
//获取订单信息 根据第三方订单号查询
|
|
public function get_order_info($ordernumber){
|
|
$sql = "select * from trainsystem where ts_ordernumber = ?";
|
|
$query = $this->INFO->query($sql,array($ordernumber));
|
|
return $query->row();
|
|
}
|
|
|
|
//获取携程出票成功的订单详情
|
|
public function ctripOrderDetail($ordernumber){
|
|
$sql = "select * from trainsystem left join trainsystem_tickets on ts_ordernumber = tst_ordernumber where ts_ordernumber = ? and ts_channel = 'ctrip' and ts_status = 4";
|
|
$query = $this->INFO->query($sql,array($ordernumber));
|
|
return $query->result();
|
|
}
|
|
} |