|
|
<?php
|
|
|
|
|
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
|
|
|
|
|
class Api_model extends CI_Model {
|
|
|
|
|
|
|
|
|
public function __construct()
|
|
|
{
|
|
|
parent::__construct();
|
|
|
$this->HT = $this->load->database('HT', TRUE);
|
|
|
|
|
|
}
|
|
|
|
|
|
var $dei_sn = 17; //组别ID
|
|
|
var $CTLGC = 104; //语种
|
|
|
|
|
|
/**
|
|
|
* @description: 根据一日游code获取对应人数的成人价格
|
|
|
* @param {string} $pagecode 线路代码
|
|
|
* @param int $personnum 人数
|
|
|
* @return:
|
|
|
*/
|
|
|
function getDaytripsPrice($pagcode, $personnum)
|
|
|
{
|
|
|
$sql = "select top 1 isnull(PKP_AdultPrice,0) as PKP_AdultPrice,isnull(PKP_AdultSpecialPrice,0) as PKP_AdultSpecialPrice
|
|
|
,PAG_DefaultVEI_SN
|
|
|
from BIZ_PackagePrice
|
|
|
inner join BIZ_PackageInfo on BIZ_PackageInfo.PAG_SN = BIZ_PackagePrice.PKP_PAG_SN
|
|
|
and BIZ_PackagePrice.PKP_VEI_SN = BIZ_PackageInfo.PAG_DefaultVEI_SN
|
|
|
where (BIZ_PackageInfo.PAG_Code = ?) AND (pag_dei_sn= ? )
|
|
|
and ? between PKP_PersonStart and PKP_PersonStop and CONVERT(varchar(12),getdate(),111) between pkp_validdate and pkp_invaliddate
|
|
|
order by isnull( BIZ_PackageInfo.PAG_DefaultVEI_SN,0) desc,PKP_PriceGrade ";
|
|
|
$param = array($pagcode,$this->dei_sn, $personnum);
|
|
|
|
|
|
$query = $this->HT->query($sql, $param);
|
|
|
if ($query->num_rows() > 0) {
|
|
|
return $query->row();
|
|
|
} else {
|
|
|
//'第二种有默认供应商但是没有当前日期价格的时候
|
|
|
$sql = "select top 1 isnull(PKP_AdultPrice,0) as PKP_AdultPrice,isnull(PKP_AdultSpecialPrice,0) as PKP_AdultSpecialPrice
|
|
|
,PAG_DefaultVEI_SN
|
|
|
from BIZ_PackagePrice
|
|
|
inner join BIZ_PackageInfo on BIZ_PackageInfo.PAG_SN = BIZ_PackagePrice.PKP_PAG_SN
|
|
|
and BIZ_PackagePrice.PKP_VEI_SN = BIZ_PackageInfo.PAG_DefaultVEI_SN
|
|
|
where (BIZ_PackageInfo.PAG_Code = ? ) AND (pag_dei_sn= ? )
|
|
|
and ? between PKP_PersonStart and PKP_PersonStop
|
|
|
order by pkp_invaliddate desc,PKP_PriceGrade ";
|
|
|
$query = $this->HT->query($sql, $param);
|
|
|
if ($query->num_rows() > 0) {
|
|
|
return $query->row();
|
|
|
}else{
|
|
|
//'第三种没有默认供应商但是有当前日期价格的时候
|
|
|
$sql = "select top 1 isnull(PKP_AdultPrice,0) as PKP_AdultPrice,isnull(PKP_AdultSpecialPrice,0) as PKP_AdultSpecialPrice
|
|
|
,PAG_DefaultVEI_SN
|
|
|
from BIZ_PackagePrice
|
|
|
inner join BIZ_PackageInfo on BIZ_PackageInfo.PAG_SN = BIZ_PackagePrice.PKP_PAG_SN
|
|
|
where (BIZ_PackageInfo.PAG_Code = ? ) AND (pag_dei_sn= ? )
|
|
|
and ? between PKP_PersonStart and PKP_PersonStop and CONVERT(varchar(12),getdate(),111) between pkp_validdate and pkp_invaliddate
|
|
|
order by isnull( BIZ_PackageInfo.PAG_DefaultVEI_SN,0) desc,PKP_PriceGrade ";
|
|
|
$query = $this->HT->query($sql, $param);
|
|
|
if ($query->num_rows() > 0) {
|
|
|
return $query->row();
|
|
|
}else{
|
|
|
//'第四种无默认供应商无当前日期价格
|
|
|
$sql = "select top 1 isnull(PKP_AdultPrice,0) as PKP_AdultPrice,isnull(PKP_AdultSpecialPrice,0) as PKP_AdultSpecialPrice
|
|
|
,PAG_DefaultVEI_SN
|
|
|
from BIZ_PackagePrice
|
|
|
inner join BIZ_PackageInfo on BIZ_PackageInfo.PAG_SN = BIZ_PackagePrice.PKP_PAG_SN
|
|
|
where (BIZ_PackageInfo.PAG_Code = ? ) AND (pag_dei_sn= ? )
|
|
|
and ? between PKP_PersonStart and PKP_PersonStop
|
|
|
order by pkp_invaliddate desc,PKP_PriceGrade ";
|
|
|
if ($query->num_rows() > 0) {
|
|
|
return $query->row();
|
|
|
}else {
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @description: 获取精华线路价格,2人等
|
|
|
* @param {*}
|
|
|
* @return {*}
|
|
|
* @Date Changed:
|
|
|
*/
|
|
|
function getTourPrice($cli_no){
|
|
|
$CLI_SN = "";
|
|
|
$reust = "";
|
|
|
//'新的GP没有设置以前的2-5人等价格,导致读不出价格。把Gp价格放前面计算
|
|
|
$sql = "select top 1 CLI_SN,CLI_PackageClass from CustomerLineInfo
|
|
|
where CLI_NO=? and CLI_State=1005004
|
|
|
AND (CLI_DEI_SN= ? )";
|
|
|
$query = $this->HT->query($sql,array($cli_no,$this->dei_sn));
|
|
|
if (!$query->num_rows()>0){
|
|
|
return null;
|
|
|
}else{
|
|
|
$row = $query->row();
|
|
|
if (isset($row)){
|
|
|
$CLI_SN = $row->CLI_SN;
|
|
|
}
|
|
|
|
|
|
//'获取线路是否有travelbuddy,也就是有固定的发团日期
|
|
|
$fut_sql = "SELECT count(*) as CountBuddy FROM FixedGroupDate WHERE FGD_CLI_SN='".$CLI_SN."'";
|
|
|
$futQuery = $this->HT->query($fut_sql);
|
|
|
$futrow = $futQuery->row();
|
|
|
$fut_CountBuddy = $futrow->CountBuddy;
|
|
|
|
|
|
if ($fut_CountBuddy>0){
|
|
|
//读取GP价格
|
|
|
$gpSql ="SELECT TOP 1 FGD_AdultPrice,FGD_Departure,
|
|
|
isnull(FGD_ProAdultPrice,0) as FGD_ProAdultPrice
|
|
|
FROM FixedGroupDate
|
|
|
WHERE (FGD_Departure >= GETDATE())
|
|
|
AND (FGD_CLI_SN = ".$CLI_SN.") AND (FGD_State = 1) ORDER BY FGD_AdultPrice";
|
|
|
$gpquery = $this->HT->query($gpSql);
|
|
|
if ($gpquery->num_rows()>0){
|
|
|
$gpRow = $gpquery->row();
|
|
|
$FGD_AdultPrice = $gpRow->FGD_AdultPrice;
|
|
|
$FGD_ProAdultPrice = $gpRow->FGD_ProAdultPrice;
|
|
|
if ($FGD_ProAdultPrice>0){
|
|
|
$reust = $FGD_ProAdultPrice; //促销价
|
|
|
}else{
|
|
|
$reust=$FGD_AdultPrice;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}else {
|
|
|
//普通线路价格
|
|
|
$sql = "select top 1
|
|
|
CLI_SN,CLP_TwoToFiveAdultPrice,CLI_PackageClass
|
|
|
FROM CustomerLineInfo INNER JOIN
|
|
|
CustomerLinePrice ON CustomerLineInfo.CLI_SN = CustomerLinePrice.CLP_CLI_SN INNER JOIN
|
|
|
CustomerLineInfo2 ON CustomerLineInfo.CLI_SN = CustomerLineInfo2.CLI2_CLI_SN
|
|
|
where CLI_SN= ? and CLI2_LGC=? and (CLP_Area=1 or CLP_Area=2)
|
|
|
and CLI_State = 1005004 ORDER BY CLP_TwoToFiveAdultPrice";
|
|
|
$query = $this->HT->query($sql,array($CLI_SN,$this->CTLGC));
|
|
|
if ($query->num_rows()>0){
|
|
|
$reust = $query->row()->CLP_TwoToFiveAdultPrice;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return $reust;
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* @description: 一日游列表,包含信息平台和HT
|
|
|
* @param {*} $whereHT HT的查询条件
|
|
|
* @param {*} $whereInfo 信息平台的查询条件
|
|
|
* @return {*}
|
|
|
* @Date Changed:
|
|
|
*/
|
|
|
function getDaytripList($whereHT="",$whereInfo=""){
|
|
|
$sql = "select * from(
|
|
|
|
|
|
select * from(
|
|
|
SELECT p2.PAG2_Name as title
|
|
|
,P1.PAG_Code as code
|
|
|
,'' as url
|
|
|
,isnull(p2.PAG2_ImageURL,'') as pic1
|
|
|
,isnull((select top 1 PAP_ImageURL from BIZ_PackagePic where PAP_PII_SN=p2.PAG2_PII_SN),'') as pic2
|
|
|
,'2' as sortby
|
|
|
FROM dbo.BIZ_PackageInfo P1
|
|
|
INNER JOIN dbo.BIZ_PackageInfo2 p2 ON P1.PAG_SN = p2.PAG2_PAG_SN
|
|
|
INNER JOIN dbo.CItyInfo2 ON P1.PAG_CII_SN = dbo.CItyInfo2.CII2_CII_SN AND dbo.CItyInfo2.CII2_LGC = 1
|
|
|
WHERE (p2.PAG2_LGC = 104)
|
|
|
AND (p1.pag_dei_sn = 17)
|
|
|
AND (p2.PAG2_Check = 2)
|
|
|
AND (PAG_Code not in(
|
|
|
SELECT convert(varchar(100),(
|
|
|
SELECT TOP 1 im_value
|
|
|
FROM infoMetas
|
|
|
WHERE im_key = 'meta_product_code'
|
|
|
AND im_ic_id = ic_id
|
|
|
)) AS code
|
|
|
FROM dbo.infoContents
|
|
|
INNER JOIN infoStructures ON ic_id = is_ic_id
|
|
|
WHERE is_sitecode = 'chinatravel'".$whereInfo."
|
|
|
AND ic_status = 1
|
|
|
))
|
|
|
AND (isnull(P1.DeleteFlag,0) <>1) ".$whereHT."
|
|
|
) Tmp
|
|
|
|
|
|
UNION ALL
|
|
|
|
|
|
SELECT * from (
|
|
|
select ic_url_title as title
|
|
|
,(select top 1 im_value from infoMetas where im_key='meta_product_code' and im_ic_id=ic_id) as code
|
|
|
,ic_url as url , ic_photo as pic1
|
|
|
,(select top 1 im_value from infoMetas where im_key='meta_addon_picture_mobile' and im_ic_id=ic_id) as pic2
|
|
|
,'1' as sortby
|
|
|
FROM dbo.infoContents
|
|
|
inner join infoStructures on ic_id=is_ic_id
|
|
|
WHERE is_sitecode='chinatravel' ".$whereInfo."
|
|
|
and ic_status=1
|
|
|
) as t
|
|
|
) tball
|
|
|
where 1=1
|
|
|
ORDER BY tball.sortBy ASC
|
|
|
";
|
|
|
|
|
|
$query = $this->HT->query($sql);
|
|
|
return $query->result();
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* @description: HT获取一日游列表
|
|
|
* @param {*} $city 一日游城市 ,默认必须有城市,不然太多
|
|
|
* @param {*} $where 其它条件
|
|
|
* @return {*}
|
|
|
* @Date Changed:
|
|
|
*/
|
|
|
function getDaytripListHT($city="beijing",$where=""){
|
|
|
$sql = " select * from(
|
|
|
SELECT p2.PAG2_Name
|
|
|
,p2.PAG2_Intro
|
|
|
,P1.PAG_NeedTime
|
|
|
,P1.PAG_SN
|
|
|
,P1.PAG_Leve
|
|
|
,p2.PAG2_Order
|
|
|
,P1.PAG_Code
|
|
|
,p2.PAG2_Attraction
|
|
|
,CItyInfo2.CII2_Name
|
|
|
,isnull((select top 1 PAP_ImageURL from BIZ_PackagePic where PAP_PII_SN=p2.PAG2_PII_SN),'') as NewListImage
|
|
|
,isnull(p2.PAG2_ImageURL,'') as NewListImage2
|
|
|
,dbo.GetFullPathByPII_SN(p2.PAG2_PII_SN, 2) AS picpath
|
|
|
,p2.PAG2_Title
|
|
|
,p1.PAG_Type
|
|
|
,pag2_summary
|
|
|
FROM dbo.BIZ_PackageInfo P1
|
|
|
INNER JOIN dbo.BIZ_PackageInfo2 p2 ON P1.PAG_SN = p2.PAG2_PAG_SN
|
|
|
INNER JOIN dbo.CItyInfo2 ON P1.PAG_CII_SN = dbo.CItyInfo2.CII2_CII_SN AND dbo.CItyInfo2.CII2_LGC = 1
|
|
|
WHERE (p2.PAG2_LGC = ?)
|
|
|
AND (p1.pag_dei_sn = ?)
|
|
|
AND (p2.PAG2_Check = 2)
|
|
|
AND (isnull(P1.DeleteFlag,0) <>1)
|
|
|
) Tmp
|
|
|
where 1=1 ";
|
|
|
if ($city!=""){
|
|
|
$sql .= " AND (CII2_Name ='".$city."')";
|
|
|
}
|
|
|
// $sql .= "and PAG_Code in ('SHALC-1','SHALC-7')";
|
|
|
$sql .= " order by isnull(pag2_order,0) desc,pag_code ";
|
|
|
// echo ($sql);
|
|
|
$param = array($this->CTLGC,$this->dei_sn);
|
|
|
$query = $this->HT->query($sql,$param);
|
|
|
return $query->result();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* @description: 获取子类信息列表
|
|
|
* @param {type} $old_pid,$new_pid 父类的Id,分为旧网站的和新网站的
|
|
|
* @return:
|
|
|
* @Date Changed:
|
|
|
*/
|
|
|
function getGuideList($old_pid,$new_pid){
|
|
|
$sql = "
|
|
|
select * from (
|
|
|
SELECT ic_url,ic_url_title,ic_photo
|
|
|
,(select top 1 im_value from infoMetas where im_key='meta_addon_picture_mobile' and im_ic_id=ic_id) as pic2
|
|
|
,'2' as sortby
|
|
|
FROM dbo.infoContents
|
|
|
inner join infoStructures on ic_id=is_ic_id
|
|
|
WHERE is_sitecode='ct'
|
|
|
and ic_status=1
|
|
|
and is_parent_id = ?
|
|
|
|
|
|
UNION ALL
|
|
|
|
|
|
SELECT ic_url,ic_url_title,ic_photo
|
|
|
,(select top 1 im_value from infoMetas where im_key='meta_addon_picture_mobile' and im_ic_id=ic_id) as pic2
|
|
|
,'1' as sortby
|
|
|
FROM dbo.infoContents
|
|
|
inner join infoStructures on ic_id=is_ic_id
|
|
|
WHERE is_sitecode='chinatravel'
|
|
|
and ic_status=1
|
|
|
and is_parent_id = ?
|
|
|
) allbt
|
|
|
order by sortby
|
|
|
|
|
|
";
|
|
|
|
|
|
$qurey = $this->HT->query($sql,array($old_pid,$new_pid));
|
|
|
return $qurey->result();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @description: 获取线路的sn
|
|
|
* @param {*} $clino 线路编码
|
|
|
* @return {*}
|
|
|
* @Date Changed:
|
|
|
*/
|
|
|
function getCliSn($clino=""){
|
|
|
$sql = "select top 1 CLI_SN,CLI_PackageClass from CustomerLineInfo
|
|
|
where CLI_NO=? and CLI_State=1005004
|
|
|
AND (CLI_DEI_SN= ? )";
|
|
|
$query = $this->HT->query($sql,array($clino,$this->dei_sn));
|
|
|
if (!$query->num_rows()>0){
|
|
|
return null;
|
|
|
}else{
|
|
|
return $query->row();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* @description: 获取一日游价格列表
|
|
|
* @param {*} $pagcode
|
|
|
* @return {*}
|
|
|
* @Date Changed:
|
|
|
*/
|
|
|
function getDaytripPriceList($pagcode){
|
|
|
//1.先根据编码获取SN
|
|
|
$sql = "select top 1 PAG_SN from BIZ_PackageInfo p1
|
|
|
inner join BIZ_PackageInfo2 p2 on p1.PAG_SN = p2.PAG2_PAG_SN
|
|
|
where p1.pag_dei_sn = ?
|
|
|
and p2.PAG2_LGC = ?
|
|
|
and p1.PAG_Code = ?
|
|
|
and p2.PAG2_Check = 2
|
|
|
AND (isnull(P1.DeleteFlag,0) <>1) ";
|
|
|
$query = $this->HT->query($sql,array($this->dei_sn,$this->CTLGC,$pagcode));
|
|
|
if ($query->num_rows()>0){
|
|
|
//2.根据SN获取获取一个供应商的ID,不然所有供应商的价格都出来了。
|
|
|
$pagsn = $query->row()->PAG_SN;
|
|
|
$sql = "select top 10 PAG_DefaultVEI_SN,pkp_vei_sn ,*
|
|
|
from BIZ_PackagePrice
|
|
|
left join BIZ_PackageInfo on BIZ_PackageInfo.PAG_DefaultVEI_SN=BIZ_PackagePrice.PKP_VEI_SN
|
|
|
and BIZ_PackageInfo.PAG_SN = BIZ_PackagePrice.PKP_PAG_SN
|
|
|
where PKP_PAG_SN =?
|
|
|
order by isnull( BIZ_PackageInfo.PAG_DefaultVEI_SN,0) desc ,PKP_InvalidDate desc";
|
|
|
$query = $this->HT->query($sql,array($pagsn));
|
|
|
if ($query->num_rows()>0){
|
|
|
$veisn = $query->row()->pkp_vei_sn;
|
|
|
if (!empty($query->row()->PAG_DefaultVEI_SN)){
|
|
|
$veisn = $query->row()->PAG_DefaultVEI_SN;
|
|
|
}
|
|
|
}else{
|
|
|
$veisn=0;
|
|
|
}
|
|
|
|
|
|
//3.根据供应商ID获取对应价格列表
|
|
|
$sql = "SELECT isnull(PKP_AdultPrice, 0) AS PKP_AdultPrice
|
|
|
,isnull(PKP_AdultSpecialPrice, 0) AS PKP_AdultSpecialPrice
|
|
|
,PKP_PersonStart
|
|
|
,PKP_PersonStop
|
|
|
FROM BIZ_PackagePrice
|
|
|
WHERE PKP_PAG_SN = ?
|
|
|
AND PKP_VEI_SN = ?
|
|
|
AND getdate() BETWEEN pkp_validdate AND pkp_invaliddate
|
|
|
and Checked=2
|
|
|
ORDER BY PKP_PersonStart ";
|
|
|
$query = $this->HT->query($sql,array($pagsn,$veisn));
|
|
|
if (!$query->num_rows()>0){
|
|
|
//如果今年没价格,获取去年的价格
|
|
|
$nowYear = date('Y');
|
|
|
for ($i=1;$i<6;$i++){
|
|
|
$price_pyears = $nowYear-$i ."-1-1";
|
|
|
$price_pyears_2 = $nowYear-$i . "-12-31";
|
|
|
$sql = "SELECT isnull(PKP_AdultPrice, 0) AS PKP_AdultPrice
|
|
|
,isnull(PKP_AdultSpecialPrice, 0) AS PKP_AdultSpecialPrice
|
|
|
,PKP_PersonStart
|
|
|
,PKP_PersonStop
|
|
|
FROM BIZ_PackagePrice
|
|
|
WHERE PKP_PAG_SN = ?
|
|
|
AND PKP_VEI_SN = ?
|
|
|
AND pkp_validdate BETWEEN '".$price_pyears."' AND '".$price_pyears_2."' ORDER BY PKP_PersonStart ";
|
|
|
$query = $this->HT->query($sql,array($pagsn,$veisn));
|
|
|
if ($query->num_rows()>0){
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if ($query->num_rows()>0){
|
|
|
//4.价格列表返回
|
|
|
return $query->result();
|
|
|
}else {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
}else{
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//根据图片URL判断CDN的地址
|
|
|
function getPicCdn($picurl){
|
|
|
$strCdn ="";
|
|
|
if (strpos($picurl,"chinatravel.com")!== false) {
|
|
|
$strCdn="";
|
|
|
} else if (strpos($picurl,"allpicture")!== false){
|
|
|
$strCdn = "//images.chinatravel.com";
|
|
|
}else if (strpos($picurl,"/album/userupload/")!== false){
|
|
|
$strCdn = "//data.chinatravel.com";
|
|
|
}else if (strpos($picurl,"/images/")!== false) {
|
|
|
$strCdn = "//data.chinatravel.com";
|
|
|
}else{
|
|
|
$strCdn = "//images.chinatravel.com";
|
|
|
}
|
|
|
return $strCdn;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/* End of file Api_model.php */
|