|
|
@ -25,6 +25,8 @@ class Information extends CI_Controller
|
|
|
|
$this->load->model('recommends_and_tips_model');
|
|
|
|
$this->load->model('recommends_and_tips_model');
|
|
|
|
$this->load->model('trippest_model'); //trippest产品
|
|
|
|
$this->load->model('trippest_model'); //trippest产品
|
|
|
|
$this->load->model('Feedback_model');
|
|
|
|
$this->load->model('Feedback_model');
|
|
|
|
|
|
|
|
$this->load->model('Price_model');
|
|
|
|
|
|
|
|
$this->load->model('PrimeLinePrice_model');
|
|
|
|
$this->load->library('Amplib'); //加载AMP处理类
|
|
|
|
$this->load->library('Amplib'); //加载AMP处理类
|
|
|
|
$this->load->library('html_optimize_lib'); //加载HTML优化类
|
|
|
|
$this->load->library('html_optimize_lib'); //加载HTML优化类
|
|
|
|
|
|
|
|
|
|
|
@ -992,6 +994,162 @@ class Information extends CI_Controller
|
|
|
|
var_dump($feedback_newest_content);
|
|
|
|
var_dump($feedback_newest_content);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function test_price()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
$price_rule = '#ah-8,st,2#';//'#'.$meta_product_code.',st,2#';
|
|
|
|
|
|
|
|
$tag_price = $this->replace_price_tag($price_rule);
|
|
|
|
|
|
|
|
var_dump($tag_price);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
|
|
|
* 页面中有价格标签,查出价格并替换内容
|
|
|
|
|
|
|
|
* @author LYT <lyt@hainatravel.com>
|
|
|
|
|
|
|
|
* @date 2017-07-14
|
|
|
|
|
|
|
|
* @param string $price_content 包含价格标签的内容
|
|
|
|
|
|
|
|
* @return string 可读的价格字符串
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public function replace_price_tag($price_content)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
$price_item_array = $this->price_pregmatch($price_content);
|
|
|
|
|
|
|
|
if ( ! empty($price_item_array)) {
|
|
|
|
|
|
|
|
foreach ($price_item_array as $price_item) {
|
|
|
|
|
|
|
|
$price_date = !empty($price_item->price_date) ? $price_item->price_date : date('Y-m-d', time() + 86400 * 7); //当前时间7天后的价格
|
|
|
|
|
|
|
|
$price_number = '';
|
|
|
|
|
|
|
|
//优先读取新的价格体系
|
|
|
|
|
|
|
|
$price = $this->PrimeLinePrice_model->search($price_item->cli_no, 1, $price_item->cli_grade, $price_item->person_size, $price_date);
|
|
|
|
|
|
|
|
if (!empty($price)) {
|
|
|
|
|
|
|
|
switch (strtoupper($price_item->price_people)) {
|
|
|
|
|
|
|
|
case 'A':
|
|
|
|
|
|
|
|
$price_number = $price->PLP_AdultUnitPrice;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'C':
|
|
|
|
|
|
|
|
$price_number = $price->PLP_ChildUnitPrice;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'B':
|
|
|
|
|
|
|
|
$price_number = $price->PLP_BabyUnitPrice;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'R':
|
|
|
|
|
|
|
|
$price_number = $price->PLP_RoomDiffPrice;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'AR':
|
|
|
|
|
|
|
|
$price_number = $price->PLP_AdultUnitPrice + $price->PLP_RoomDiffPrice; //成人加单间房差
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
default :
|
|
|
|
|
|
|
|
$price_number = $price->PLP_AdultUnitPrice;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
$price = $this->Price_model->search($price_item->cli_no, 1, $price_item->cli_grade, false, $price_date);
|
|
|
|
|
|
|
|
if (!empty($price)) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
switch (strtoupper($price_item->price_people)) {
|
|
|
|
|
|
|
|
case 'A':
|
|
|
|
|
|
|
|
switch ($price_item->person_size) {
|
|
|
|
|
|
|
|
case '1':
|
|
|
|
|
|
|
|
$price_number = $price->CLP_OneAdultPriceRMB;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case '2'://25
|
|
|
|
|
|
|
|
$price_number = $price->CLP_TwoToFiveAdultPriceRMB;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case '6'://69
|
|
|
|
|
|
|
|
$price_number = $price->CLP_SixToNineAdultPriceRMB;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case '10':
|
|
|
|
|
|
|
|
$price_number = $price->CLP_OverTenAdultPriceRMB;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
|
|
|
$price_number = $price->CLP_TwoToFiveAdultPriceRMB;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'C':
|
|
|
|
|
|
|
|
$price_number = 0;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'B':
|
|
|
|
|
|
|
|
$price_number = 0;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'R':
|
|
|
|
|
|
|
|
switch ($price_item->person_size) {
|
|
|
|
|
|
|
|
case '1':
|
|
|
|
|
|
|
|
$price_number = $price->CLP_OneRoomDiffPriceRMB;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case '2'://25
|
|
|
|
|
|
|
|
$price_number = $price->CLP_TwoToFiveRoomDiffPriceRMB;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case '6'://69
|
|
|
|
|
|
|
|
$price_number = $price->CLP_SixToNineRoomDiffPriceRMB;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case '10':
|
|
|
|
|
|
|
|
$price_number = $price->CLP_OverTenRoomDiffPriceRMB;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
|
|
|
$price_number = $price->CLP_TwoToFiveRoomDiffPriceRMB;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'AR'://成人加单间房差
|
|
|
|
|
|
|
|
$price_number = 0;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
default :
|
|
|
|
|
|
|
|
$price_number = 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
$site_money = $this->CI->currency->GetSiteMoney($price_number);
|
|
|
|
|
|
|
|
$site_money = $this->CI->currency->calc_show_price($site_money);
|
|
|
|
|
|
|
|
//把金额格式化为带有逗号(,)方便阅读,如 12,345
|
|
|
|
|
|
|
|
$price_number = is_numeric($price_number) ? number_format($site_money) : $price_number;
|
|
|
|
|
|
|
|
if (!empty($price_number)) {
|
|
|
|
|
|
|
|
$price_content = str_replace($price_item->placeholder, $price_number, $price_content);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return $price_content;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//使用正则匹配出价格标签,返回一个价格数组
|
|
|
|
|
|
|
|
private function price_pregmatch($content) {
|
|
|
|
|
|
|
|
$price_array = array();
|
|
|
|
|
|
|
|
$temp_array = array();
|
|
|
|
|
|
|
|
$result = false;
|
|
|
|
|
|
|
|
//#ah-1,lx,2,2016-01-23,A#
|
|
|
|
|
|
|
|
//线路代号,等级(st标准、lx豪华、ec经济),人等,时间,人型(A成人、C小孩、B婴儿、R单间房差、AR成人+房差)
|
|
|
|
|
|
|
|
preg_match_all('^#[a-zA-Z0-9,-]+#^', $content, $temp_array);
|
|
|
|
|
|
|
|
foreach ($temp_array[0] as $item) {
|
|
|
|
|
|
|
|
$placeholder = $item;
|
|
|
|
|
|
|
|
$item = str_replace('#', '', $item);
|
|
|
|
|
|
|
|
$price_array = explode(',', $item);
|
|
|
|
|
|
|
|
$cli_no = !empty($price_array[0]) ? $price_array[0] : false; //线路代号
|
|
|
|
|
|
|
|
if (empty($cli_no)) {
|
|
|
|
|
|
|
|
continue; //没有设置线路代号则进入下一条
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
$cli_grade = !empty($price_array[1]) ? $price_array[1] : false; //标准7001、豪华7002、经济7003
|
|
|
|
|
|
|
|
switch (strtoupper($cli_grade)) {
|
|
|
|
|
|
|
|
case 'ST':
|
|
|
|
|
|
|
|
$cli_grade = '7001';
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'LX':
|
|
|
|
|
|
|
|
$cli_grade = '7002';
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'EC':
|
|
|
|
|
|
|
|
$cli_grade = '7003';
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
default :$cli_grade = '7001';
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
$person_size = (!empty($price_array[2]) && is_numeric($price_array[2])) ? $price_array[2] : 2; //人等1,2-5,6-9,10,默认2人等
|
|
|
|
|
|
|
|
//为了兼容以前的人等方式,把算数人等转换为单数 25=>2
|
|
|
|
|
|
|
|
switch ($person_size) {
|
|
|
|
|
|
|
|
case '25':
|
|
|
|
|
|
|
|
$person_size = '2';
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case '69':
|
|
|
|
|
|
|
|
$person_size = '6';
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
$price_date = !empty($price_array[3]) ? $price_array[3] : false; //价格时间
|
|
|
|
|
|
|
|
$price_people = !empty($price_array[4]) ? $price_array[4] : 'A'; //A成人、C小孩、B婴儿、R单间房差
|
|
|
|
|
|
|
|
$result[] = (object) array('placeholder' => $placeholder, 'cli_no' => $cli_no, 'cli_grade' => $cli_grade, 'person_size' => $person_size, 'price_date' => $price_date, 'price_people' => $price_people);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return $result;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public function make_www_cache_gh($device, $information, $recommand_information)
|
|
|
|
public function make_www_cache_gh($device, $information, $recommand_information)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
$data = array();
|
|
|
|
$data = array();
|
|
|
|