花梨鹰fix update_www_cache .上海站线路列表更新

master
赵鹏 10 months ago
parent 1864248cab
commit b821f8b69a

@ -850,6 +850,8 @@ class Information extends CI_Controller
$this->make_www_cache_ts($information);
} else if ($this->config->item('site_code') == 'guilin') {
$this->make_www_cache_gl($information);
} else if ($this->config->item('site_code') == 'hly') {
$this->make_www_cache_hly($information);
} else if ($this->config->item('site_code') == 'gh') {
$this->make_www_cache_gh('pc', $information, $recommand_information);
$this->make_www_cache_gh('mobile', $information, $recommand_information);

@ -486,6 +486,15 @@ class Api extends CI_Controller {
echo json_encode($list,JSON_UNESCAPED_UNICODE);
}
/**
* 获取所有录入一日游的列表(搜索页)
*/
function getSearchDaytripList(){
$list = $this->api_model->getSearchDaytripList();
echo json_encode($list,JSON_UNESCAPED_UNICODE);
}
}
/* End of file Api.php */

@ -776,7 +776,7 @@ class Api_model extends CI_Model {
)) AS code
FROM information_ct.dbo.infoContents
INNER JOIN information_ct.dbo.infoStructures ON ic_id = is_ic_id
WHERE is_sitecode ='shanghai' AND ic_status = 1
WHERE is_sitecode ='".$this->WebCode."' AND ic_status = 1
and ic_id in (select im_ic_id from information_ct.dbo.infoMetas where im_key='meta_ct_page_type' and convert(varchar(100),im_value)='daytripdetail')
) ";
@ -845,6 +845,110 @@ class Api_model extends CI_Model {
}
/**
* 获取所有录入一日游的列表(搜索页)
*/
function getSearchDaytripList(){
$sql = "SELECT convert(varchar(100),(
SELECT TOP 1 im_value
FROM information_ct.dbo.infoMetas
WHERE im_key = 'meta_ct_page_value'
AND im_ic_id = ic_id
)) AS code
,convert(varchar(100),(
SELECT TOP 1 im_value
FROM information_ct.dbo.infoMetas
WHERE im_key = 'meta_addon_picture'
AND im_ic_id = ic_id
)) AS pcPic
,convert(varchar(100),(
SELECT TOP 1 im_value
FROM information_ct.dbo.infoMetas
WHERE im_key = 'meta_addon_picture_mobile'
AND im_ic_id = ic_id
)) AS mobilePic
,ic_photo,ic_url,ic_url_title
FROM information_ct.dbo.infoContents
INNER JOIN information_ct.dbo.infoStructures ON ic_id = is_ic_id
WHERE is_sitecode ='".$this->WebCode."' AND ic_status = 1
and ic_id in (select im_ic_id from information_ct.dbo.infoMetas where im_key='meta_ct_page_type' and convert(varchar(100),im_value)='daytripdetail') "; //信息平台开放的一日游列表
$query =$this->HT->query($sql);
$resultJson = array();
if ($query->num_rows() > 0) {
foreach ($query->result_array() as $row) {
$tourItem = new stdClass();
$tourItem->code = $row["code"];
// 优先级mobilePic → pcPic → ic_photo → 默认图
$tourItem->pic = !empty($row["mobilePic"]) ? $row["mobilePic"]
: (!empty($row["pcPic"]) ? $row["pcPic"]
: (!empty($row["ic_photo"]) ? $row["ic_photo"] : "/image/grey.gif"));
$tourItem->url = $row["ic_url"];
$tourItem->title = $row["ic_url_title"];
//价格
$price = $this->getDaytripsPrice($row["code"],2);
// 处理价格:
// 1. 如果是 null设为空字符串 ""
// 2. 如果是数字(如 100.0000转为整数100
$tourItem->price = ($price === null)
? ""
: (string)(int)floatval($price);
//类别信息
$dayTripDetail = $this->getSearchDaytripDetail($row["code"]);
if (isset($dayTripDetail->PAG_Type)){
$tourItem->type = strval($dayTripDetail->PAG_Type);
}else{
$tourItem->type = "";
}
//扩展类别
if (isset($dayTripDetail->PAG_ExtendType)){
$tourItem->extendType = $dayTripDetail->PAG_ExtendType;
}else{
$tourItem->extendType = "";
}
//时间
if (isset($dayTripDetail->PAG_NeedTime)){
$tourItem->needTime = $dayTripDetail->PAG_NeedTime;
}else{
$tourItem->needTime = 0;
}
$resultJson[] = $tourItem;
}
}
return $resultJson;
}
/***
* 根据一日游编码获取录入一日游的详细信息(搜索页)
*/
function getSearchDaytripDetail($pagcode){
$sql = " SELECT top 1 p2.PAG2_Name, p2.PAG2_Intro, P1.PAG_NeedTime,P1.PAG_SN, P1.PAG_Code, CItyInfo2.CII2_Name
,P1.PAG_Type ,P1.PAG_ExtendType
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 =".$this->CTLGC.") AND (p1.pag_dei_sn=".$this->dei_sn.") ) AND
(p2.PAG2_Check = 2) and (PAG_Code='".$pagcode."')";
$query =$this->HT->query($sql);
if ($query->num_rows() > 0) {
return $query->row();
}else{
return null;
}
}
}
/* End of file Api_model.php */

@ -10,25 +10,38 @@
<?php } ?>
</ul>
<div class="popup-bottom">
<a href="javascript:;" class="clearbtn" id="clear-category"><strong>Clear</strong></a>
<a href="#" class="btn-base">See <span id="category-count">0</span> results</a>
<a href="javascript:;" class="clearbtn" id="clear-category"><strong>Clear</strong></a>
</div>
</div>
</div>
<div class="filter-item">
<div class="filter-nav">Days</div>
<div class="filter-popup">
<p class="popup-title">Tours</p>
<p class="popup-title"></p>
<ul id="days-list">
<li><a href="javascript:;" data-day="1">1 Days</a></li>
<li><a href="javascript:;" data-day="2-3">2-3 Days</a></li>
<li><a href="javascript:;" data-day="4-6">4-6 Days</a></li>
<li><a href="javascript:;" data-day="7-9">7-9 Days</a></li>
<li><a href="javascript:;" data-day="10-20">10 or more Days</a></li>
<li><a href="javascript:;" data-day="1">1-2 Days</a></li>
<li><a href="javascript:;" data-day="3-3">3 Days</a></li>
<li><a href="javascript:;" data-day="4-4">4 Days</a></li>
<li><a href="javascript:;" data-day="5-7">5-7 Days</a></li>
<li><a href="javascript:;" data-day="8-20">more than 7 days</a></li>
</ul>
<div class="popup-bottom">
<a href="javascript:;" class="clearbtn" id="clear-days"><strong>Clear</strong></a>
<a href="#" class="btn-base">See <span id="days-count">0</span> results</a>
<a href="javascript:;" class="clearbtn" id="clear-days"><strong>Clear</strong></a>
</div>
</div>
</div>
<div class="filter-item">
<div class="filter-nav">Price</div>
<div class="filter-popup">
<p class="popup-title"></p>
<ul id="price-list">
<li><a href="javascript:;" data-price="0-299">< $300</a></li>
<li><a href="javascript:;" data-price="300-500">$300-$500</a></li>
<li><a href="javascript:;" data-price="501-1000">$501-$1000</a></li>
<li><a href="javascript:;" data-price="1001-10000">> $1000</a></li>
</ul>
<div class="popup-bottom">
<a href="javascript:;" class="clearbtn" id="clear-price"><strong>Clear</strong></a>
</div>
</div>
</div>
@ -56,35 +69,34 @@
<script>
var TourData = <?php echo json_encode($tourListData, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP); ?>;
// 如果$tourListData可能为null可以添加默认值
TourData = TourData || [];
document.addEventListener('DOMContentLoaded', function() {
var TourData = <?php echo json_encode($tourListData, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP); ?>;
// 如果$tourListData可能为null可以添加默认值
TourData = TourData || [];
// 获取DOM元素
const tourListContainer = document.getElementById('js_tourlist');
const allCountSpan = document.getElementById('all-count');
// 为分类和天数添加点击事件
setupFilterList('category-list', 'clear-category', 'category-count');
setupFilterList('days-list', 'clear-days', 'days-count');
// 初始化筛选器
setupFilter('category-list', 'clear-category');
setupFilter('days-list', 'clear-days');
setupFilter('price-list', 'clear-price');
// 通用函数:设置筛选列表的点击和清除功能
function setupFilterList(listId, clearBtnId, countSpanId) {
function setupFilter(listId, clearBtnId) {
const list = document.getElementById(listId);
const clearBtn = document.getElementById(clearBtnId);
const countSpan = document.getElementById(countSpanId);
if (!list || !clearBtn) return;
// 点击列表项
list.addEventListener('click', function(e) {
const target = e.target.closest('li');
if (target && e.target.tagName === 'A') {
target.classList.toggle('active');
updateSelectedCount();
filterAndDisplayTours();
}
});
@ -95,15 +107,8 @@ document.addEventListener('DOMContentLoaded', function() {
activeItems.forEach(item => {
item.classList.remove('active');
});
updateSelectedCount();
filterAndDisplayTours();
});
// 更新选中数量
function updateSelectedCount() {
const count = list.querySelectorAll('.active').length;
countSpan.textContent = count;
}
}
// 筛选并显示旅游项目
@ -120,6 +125,12 @@ document.addEventListener('DOMContentLoaded', function() {
selectedDayRanges.push(a.getAttribute('data-day'));
});
// 获取选中的价格范围
const selectedPriceRanges = [];
document.querySelectorAll('#price-list li.active a').forEach(a => {
selectedPriceRanges.push(a.getAttribute('data-price'));
});
// 筛选旅游数据
const filteredTours = TourData.filter(tour => {
// 检查分类
@ -131,19 +142,30 @@ document.addEventListener('DOMContentLoaded', function() {
// 检查天数
const dayMatch = selectedDayRanges.length === 0 ||
selectedDayRanges.some(range => {
if (range.includes('-')) {
const [min, max] = range.split('-').map(Number);
return tour.Days >= min && tour.Days <= max;
}
return tour.Days === Number(range);
const [min, max] = range.split('-').map(Number);
return tour.Days >= min && tour.Days <= max;
});
// 检查价格
const priceMatch = selectedPriceRanges.length === 0 ||
selectedPriceRanges.some(range => {
const [min, max] = range.split('-').map(Number);
// 处理空价格或无效价格情况
if (tour.price === undefined || tour.price === null || tour.price === "") return false;
// 转换价格为数字
const price = typeof tour.price === 'string'
? parseFloat(tour.price.replace(/[^0-9.]/g, ''))
: Number(tour.price);
// 检查价格是否在范围内
return !isNaN(price) && price >= min && price <= max;
});
return categoryMatch && dayMatch;
return categoryMatch && dayMatch && priceMatch;
});
// 更新计数
document.getElementById('category-count').textContent = selectedCategories.length;
document.getElementById('days-count').textContent = selectedDayRanges.length;
// 更新总计数
allCountSpan.textContent = filteredTours.length;
// 显示筛选结果
@ -163,23 +185,36 @@ document.addEventListener('DOMContentLoaded', function() {
// 遍历并添加每个旅游项目
tours.forEach(tour => {
const cities = tour.PassCity.split(',').map(city => city.trim());
const cities = tour.PassCity ? tour.PassCity.split(',').map(city => city.trim()) : [];
// 格式化价格显示 - 修改后的逻辑
let priceDisplay = 'Price on request';
if (tour.price !== undefined && tour.price !== null && tour.price !== "" && tour.price !== 0) {
const priceNum = typeof tour.price === 'string'
? parseFloat(tour.price.replace(/[^0-9.]/g, ''))
: Number(tour.price);
if (!isNaN(priceNum) && priceNum > 0) {
// 只显示整数部分
priceDisplay = 'US$' + Math.floor(priceNum).toLocaleString('en-US');
}
}
const tourHtml = `
<div class="flex-col border-box">
<a href="${tour.url}" rel="nofollow">
<a href="${tour.url || '#'}" rel="nofollow">
<span class="flag-box"></span>
<img alt="${tour.title}" class="img-responsive" src="${tour.pic}">
<img alt="${tour.title || 'Tour image'}" class="img-responsive" src="${tour.pic || ''}">
</a>
<div class="caption">
<h3><a href="${tour.url}">${tour.title}</a></h3>
<h3><a href="${tour.url || '#'}">${tour.title || 'Untitled Tour'}</a></h3>
<ul class="card-ul">
<li class="card-day">${tour.Days}-Day</li>
<li class="card-day">${tour.Days || 'N/A'}-Day</li>
${cities.map(city => `<li>${city}</li>`).join('')}
</ul>
<div class="caption-btn">
<p>From <span class="baseprice font24">${tour.price ? 'US$' + tour.price : 'Price on request'}</span></p>
<p><a aria-label="button" class="btn-base" href="${tour.url}" rel="nofollow">View More</a></p>
<p>From <span class="baseprice font24">${priceDisplay}</span></p>
<p><a aria-label="button" class="btn-base" href="${tour.url || '#'}" rel="nofollow">View More</a></p>
</div>
</div>
</div>

Loading…
Cancel
Save