HT = $this->load->database('TOURMANAGER_LOCAL', TRUE); $this->INFO = $this->load->database('INFORMATION_LOCAL', 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_operateTradeNo = '{$data->operateTradeNo}', ts_bookcallback = '{$data->bookcallback}',"; //ts_startime = '{$data->OrderTicketTime}', }else if(!empty($data->ticketresultcallback)){ $where .= "ts_ticketresultcallback = '{$data->ticketresultcallback}',"; }else if(!empty($data->confirmcallback)){ $where .= "ts_confirmcallback = '{$data->confirmcallback}',"; }else if(!empty($data->refundcallback )){ $where .= "ts_refundcallback = '{$data->refundcallback }',"; }else if(!empty($data->returncallback)){ $where .= "ts_returncallback = '{$data->returncallback}',"; if (!empty($data->operateTradeNo)){ $where .= "ts_operateTradeNo = '{$data->operateTradeNo}',"; } }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_orders_msg($data){ $where = ''; if(!empty($data->bookcallback)){ $where .= " ts_bookcallback = '{$data->bookcallback}',"; }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); } //更新乘客表信息,顺途新退票不再返回用户姓名及证件号码,用longElecNo长电子订单号来判断 2023-4-28 zp public function return_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_LongTrainNo = '{$data->longElecNo}' "; $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(); } //传入COLD_SN,获取trainsystem是否存在此订单,用来判断是否提交过 function get_submitStatus($cold_sn) { $sql = "SELECT top 1 ts_cold_sn FROM trainsystem WHERE ts_cold_sn= ?"; $query = $this->INFO->query($sql, $cold_sn); if($query->num_rows() == 0){ return true; }else{ return false; } } }