Merge branch 'master' of git.mycht.cn:developers/information-system

hotfix/远程访问多媒体中心
尹诚诚 9 years ago
commit ed87fafc75

@ -70,6 +70,7 @@ class Keyworlds extends CI_Controller {
$data['wordcount'] = 2; $data['wordcount'] = 2;
} }
} }
$data['rank_info'] = $this->Keywordsrank_model->get_rank_list($is_id_string, 30, $startdate, $enddate); $data['rank_info'] = $this->Keywordsrank_model->get_rank_list($is_id_string, 30, $startdate, $enddate);
empty($data['rank_info']) && $data['rank_info'] = $this->Keywordsrank_model->get_rank_list($is_id_string, 30); empty($data['rank_info']) && $data['rank_info'] = $this->Keywordsrank_model->get_rank_list($is_id_string, 30);
if (!empty($data['rank_info'])) { if (!empty($data['rank_info'])) {
@ -94,10 +95,15 @@ class Keyworlds extends CI_Controller {
} }
} }
} }
// print_r($data['wordcount']);
// print_r($rank_json);
// 拼接highcharts数据格式
$data['rank_json'] = '['; $data['rank_json'] = '[';
foreach ($rank_json as &$ra) { foreach ($rank_json as &$ra) {
ksort($ra); ksort($ra);
// 每条线
$data['rank_json'] .='{"name":"' . $ra[$data_time[0]]->kw_keyworlds . '","data":['; $data['rank_json'] .='{"name":"' . $ra[$data_time[0]]->kw_keyworlds . '","data":[';
// 每个点
foreach ($ra as $v) { foreach ($ra as $v) {
$kwr_rank = $v->kwr_rank; $kwr_rank = $v->kwr_rank;
if ($v->kwr_rank == '>150') if ($v->kwr_rank == '>150')
@ -110,8 +116,25 @@ class Keyworlds extends CI_Controller {
} }
$data['rank_json'] = substr($data['rank_json'], 0, -1); $data['rank_json'] = substr($data['rank_json'], 0, -1);
$data['rank_json'] .=']},'; $data['rank_json'] .=']},';
// 叶子节点 显示mobile记录
if ($data['wordcount'] == 1) {
$data['rank_json'] .='{"name":"' . $ra[$data_time[0]]->kw_keyworlds . '(mobile)","data":[';
foreach ($ra as $v) {
$kwr_mobile_rank = $v->kwr_mobile_rank ? $v->kwr_mobile_rank : 'null' ;
if ($v->kwr_mobile_rank == '>150')
$kwr_mobile_rank = 100;
if (strtolower($this->config->item('site_code')) == 'gm') {
$data['rank_json'] .=-$kwr_mobile_rank . ',';
} else {
$data['rank_json'] .=$kwr_mobile_rank . ',';
}
}
$data['rank_json'] = substr($data['rank_json'], 0, -1);
$data['rank_json'] .=']},';
}
} }
$data['rank_json'] = substr($data['rank_json'], 0, -1) . ']'; $data['rank_json'] = substr($data['rank_json'], 0, -1) . ']';
// print_r($data['rank_json']);
$data['data_time'] = json_encode($data_time); $data['data_time'] = json_encode($data_time);
$data['rank_info'] = ''; $data['rank_info'] = '';
isset($rank_json[$data['current_keyworld']->kw_id]) && $data['rank_info'] = $rank_json[$data['current_keyworld']->kw_id]; isset($rank_json[$data['current_keyworld']->kw_id]) && $data['rank_info'] = $rank_json[$data['current_keyworld']->kw_id];
@ -120,9 +143,10 @@ class Keyworlds extends CI_Controller {
redirect(site_url("Keyworlds/index")); redirect(site_url("Keyworlds/index"));
} }
$data['analytics'] = $this->analytics_model->get_keyword_analytics($data['current_keyworld']->kw_keyworlds, 30); // $data['analytics'] = $this->analytics_model->get_keyword_analytics($data['current_keyworld']->kw_keyworlds, 30);
$data['site_code'] = strtolower($this->config->item('site_code')); $data['site_code'] = strtolower($this->config->item('site_code'));
// print_r($data['rank_info']);
// print_r($data["rank_json"]);
$this->load->view('bootstrap/header', $data); $this->load->view('bootstrap/header', $data);
$this->load->view('keyworlds/index'); $this->load->view('keyworlds/index');
$this->load->view('bootstrap/footer'); $this->load->view('bootstrap/footer');
@ -228,72 +252,108 @@ class Keyworlds extends CI_Controller {
public function get_google_rank() { public function get_google_rank() {
$keyworlds = $this->input->post('keyworlds'); //搜索关键字 $keyworlds = $this->input->post('keyworlds'); //搜索关键字
$kw_id = $this->input->post('kw_id'); $kw_id = $this->input->post('kw_id');
$site_url = $this->config->item('site_url'); $site_url = $this->config->item('site_url');
//$engines = array('cht'=>'get_search_content_by_aol','gm' =>'get_search_content_by_google','vc' =>'get_search_content_by_google','jp' =>'get_search_content_by_yahoo','vac'=>'get_search_content_by_google','it' =>'get_search_content_by_google','ru' =>'get_search_content_by_google','wt' =>'get_search_content_by_baidu','tbt'=>'get_search_content_by_aol','sht'=>'get_search_content_by_aol','yz' =>'get_search_content_by_aol','gl' =>'get_search_content_by_aol','mbj'=>'get_search_content_by_aol','ct' =>'get_search_content_by_aol','mct'=>'get_search_content_by_aol','dct'=>'get_search_content_by_aol','cits' =>'get_search_content_by_baidu',); $engines = array(
//$engines = array('cht'=>'get_search_content_by_google','gm' =>'get_search_content_by_google','vc' =>'get_search_content_by_google','jp' =>'get_search_content_by_yahoo','vac'=>'get_search_content_by_google','it' =>'get_search_content_by_google','ru' =>'get_search_content_by_google','wt' =>'get_search_content_by_baidu','tbt'=>'get_search_content_by_google','sht'=>'get_search_content_by_google','yz' =>'get_search_content_by_google','gl' =>'get_search_content_by_google','mbj'=>'get_search_content_by_google','ct' =>'get_search_content_by_google','mct'=>'get_search_content_by_google','dct'=>'get_search_content_by_google','cits' =>'get_search_content_by_baidu'); 'cht' => 'get_search_content_by_google',
$engines = array('cht' => 'get_search_content_by_google', 'gm' => 'get_search_content_by_google', 'vc' => 'get_search_content_by_google', 'jp' => 'get_search_content_by_google', 'vac' => 'get_search_content_by_google', 'it' => 'get_search_content_by_google', 'ru' => 'get_search_content_by_google', 'wt' => 'get_search_content_by_baidu', 'tbt' => 'get_search_content_by_google', 'sht' => 'get_search_content_by_google', 'yz' => 'get_search_content_by_google', 'gl' => 'get_search_content_by_google', 'mbj' => 'get_search_content_by_google', 'ct' => 'get_search_content_by_google', 'mct' => 'get_search_content_by_google', 'dct' => 'get_search_content_by_google', 'cits' => 'get_search_content_by_baidu', 'ah' => 'get_search_content_by_google'); 'gm' => 'get_search_content_by_google',
'vc' => 'get_search_content_by_google',
'jp' => 'get_search_content_by_google',
'vac' => 'get_search_content_by_google',
'it' => 'get_search_content_by_google',
'ru' => 'get_search_content_by_google',
'tbt' => 'get_search_content_by_google',
'sht' => 'get_search_content_by_google',
'yz' => 'get_search_content_by_google',
'gl' => 'get_search_content_by_google',
'mbj' => 'get_search_content_by_google',
'ct' => 'get_search_content_by_google',
'mct' => 'get_search_content_by_google',
'dct' => 'get_search_content_by_google',
'ah' => 'get_search_content_by_google'
);
$site_code = $this->config->item('site_code'); $site_code = $this->config->item('site_code');
$method = $engines[$site_code]; $method = $engines[$site_code];
if ($site_code == 'wt') $today = strtotime(date('Y-m-d'));
$site_url = 'www.iiiyooo.com'; $client_flag = 'PC';
if ($site_code == 'cits') $rank_flag = 'rank';
$site_url = 'www.guilincits.c'; $source_flag = 'source';
$last_rank = $this->Keywordsrank_model->get_rank_list($kw_id, $top = 1);
$last_rank = $this->Keywordsrank_model->get_rank_list($kw_id, $top = 1); if (isset($last_rank[0]->kwr_datetime) and ( time() - $last_rank[0]->kwr_datetime) < 180) {
if (isset($last_rank[0]->kwr_datetime) and ( time() - $last_rank[0]->kwr_datetime) < 300) {
$data[] = array('name' => 'rank', 'value' => '查询过于频繁,请等待三分钟!'); $data[] = array('name' => 'rank', 'value' => '查询过于频繁,请等待三分钟!');
echo json_encode($data); echo json_encode($data);
return TRUE; return TRUE;
} else if (empty($last_rank[0]->kwr_mobile_rank) &&
intval($last_rank[0]->kwr_datetime) > intval($today)) {
$client_flag = 'm';
$rank_flag = 'rank_m';
$source_flag = 'source_m';
} }
//获取排名详细情况,排名超过150的停止搜索 //获取排名详细情况,排名超过150的停止搜索
for ($i = 1; $i <= 15; $i++) { for ($i = 1; $i <= 15; $i++) {
$j = $i; $j = $i;
$rank = $this->$method($keyworlds, $site_url, $j, $site_code); $rank = $this->$method($client_flag, $keyworlds, $site_url, $j, $site_code);
if ($rank['rank'] != 0) { // 仅更新一个字段
if ($rank['rank'] > 150) if (intval($rank['rank']) == 0) {
$rank['rank'] = '151'; $rank['rank'] = $last_rank[0]->kwr_rank;
$rank['source'] = $last_rank[0]->kwr_source;
} else {
$rank['rank_m'] = null;
$rank['source_m'] = null;
}
if ($rank[$rank_flag] != 0) {
if ($rank[$rank_flag] > 150)
$rank[$rank_flag] = '151';
break; break;
}elseif ($i == 15) { }elseif ($i == 15) {
$rank['rank'] = '151'; $rank[$rank_flag] = '151';
break; break;
} elseif ($rank['rank'] == -2) { } elseif ($rank[$rank_flag] == -2) {
break; break;
} }
} }
//保存排名数据 //保存排名数据
if ($rank['rank'] == '151') { //超过151的排名则不记录 if ($rank[$rank_flag] == '151') { //超过151的排名则不记录
$this->Keywords_model->update_time($kw_id); $this->Keywords_model->update_time($kw_id);
} elseif (isset($last_rank[0]->kwr_datetime) and $last_rank[0]->kwr_datetime > strtotime(date('Y-m-d'))) { } elseif (isset($last_rank[0]->kwr_datetime) and $last_rank[0]->kwr_datetime > strtotime(date('Y-m-d'))) {
if ($rank['rank'] != -1 and $rank['rank'] != -2 and $this->Keywordsrank_model->update_rank($last_rank[0]->kwr_id, $rank['rank'], $rank['source'])) { if ($rank[$rank_flag] != -1 and $rank[$rank_flag] != -2 and $this->Keywordsrank_model->update_rank($last_rank[0]->kwr_id, $rank['rank'], $rank['rank_m'], $rank['source'], $rank['source_m'])) {
$this->Keywords_model->update_time($kw_id); $this->Keywords_model->update_time($kw_id);
} }
} else { } else {
if ($rank['rank'] != -1 and $rank['rank'] != -2 and $this->Keywordsrank_model->add_rank($kw_id, $rank['rank'], $rank['source'], $rank['engines'])) { if ($rank[$rank_flag] != -1 and $rank[$rank_flag] != -2 and $this->Keywordsrank_model->add_rank($kw_id, $rank['rank'], $rank['rank_m'], $rank['source'], $rank['source_m'], $rank['engines'])) {
$this->Keywords_model->update_time($kw_id); $this->Keywords_model->update_time($kw_id);
} }
} }
$data[] = array('name' => 'rank', 'value' => $rank['rank']); $data[] = array('name' => 'rank', 'value' => ($rank['rank'] . " -- " . $rank["rank_m"]));
echo json_encode($data); echo json_encode($data);
return TRUE; return TRUE;
} }
//自动爬取排名 //自动爬取排名
public function get_auto_rank($engines = '', $fix_site_code = '') { public function get_auto_rank($engines = '', $fix_site_code = '') {
set_time_limit(60);
$rank = array(); $rank = array();
$site_config = $this->config->item('site'); $site_config = $this->config->item('site');
$engines = trim($engines); $engines = trim($engines);
//取出需要更新排名的关键词 //取出需要更新排名的关键词
$worldsList = $this->Keywords_model->get_keyworld_list(1, $engines, $fix_site_code); $worldsList = $this->Keywords_model->get_keyworld_list(1, $engines, $fix_site_code);
//print_r($worldsList);die();
//如果没有需要更新的则返回 //如果没有需要更新的则返回
if (empty($worldsList)) { if (empty($worldsList)) {
echo 'all done'; echo 'all done';
return; return;
} }
$today = strtotime(date('Y-m-d'));
$client_flag = "PC";
$rank_flag = 'rank';
$source_flag = 'source';
if (intval($worldsList[0]->kwr_datetime) >= intval($today) ) {
$client_flag = "m";
$rank_flag = 'rank_m';
$source_flag = 'source_m';
}
$last_rank = $this->Keywordsrank_model->get_rank_list($worldsList[0]->kw_id); $last_rank = $this->Keywordsrank_model->get_rank_list($worldsList[0]->kw_id);
//获取排名并保存 //获取排名并保存
@ -304,26 +364,30 @@ class Keyworlds extends CI_Controller {
for ($i = 1; $i <= 15; $i++) { for ($i = 1; $i <= 15; $i++) {
if ($engines == '' || $engines == 'en' || $engines == 'eu') {//没有输入搜索引擎的时候根据站点自动分配获取排名的搜索引擎 if ($engines == '' || $engines == 'en' || $engines == 'eu') {//没有输入搜索引擎的时候根据站点自动分配获取排名的搜索引擎
$rank = $this->get_search_content_by_google($v->kw_keyworlds, $site_url, $i, $site_code); $rank = $this->get_search_content_by_google($client_flag,$v->kw_keyworlds, $site_url, $i, $site_code);
} else if ($engines == 'yandex') {//俄语站的yangdex } else if ($engines == 'yandex') {//俄语站的yangdex
$rank = $this->get_search_content_by_yandex($v->kw_keyworlds, $site_url, $i - 1); $rank = $this->get_search_content_by_yandex($client_flag,$v->kw_keyworlds, $site_url, $i - 1);
} elseif ($engines == 'yahoo') {
$rank = $this->get_search_content_by_yahoo($v->kw_keyworlds, $site_url, $i, $site_code);
} }
if (intval($rank['rank']) == 0) {
if ($rank['rank'] != 0) { $rank['rank'] = $last_rank[0]->kwr_rank;
if ($rank['rank'] > 150) $rank['source'] = $last_rank[0]->kwr_source;
$rank['rank'] = '151'; } else {
$rank['rank_m'] = null;
$rank['source_m'] = null;
}
if ($rank[$rank_flag] != 0) {
if ($rank[$rank_flag] > 150)
$rank[$rank_flag] = '151';
break; break;
}elseif ($i == 15) { }elseif ($i == 15) {
$rank['rank'] = '151'; $rank[$rank_flag] = '151';
} elseif ($rank['rank'] == -2) { } elseif ($rank[$rank_flag] == -2) {
break; break;
} }
} }
if ($rank['rank'] == '151') { //超过151的排名则不记录 if ($rank[$rank_flag] == '151') { //超过151的排名则不记录
$this->Keywords_model->update_time($v->kw_id); $this->Keywords_model->update_time($v->kw_id);
}else if ($rank['rank'] != -1 and $rank['rank'] != -2 and $this->Keywordsrank_model->add_rank($v->kw_id, $rank['rank'], $rank['source'], $rank['engines'])) { }else if ($rank[$rank_flag] != -1 and $rank[$rank_flag] != -2 and $this->Keywordsrank_model->add_rank($v->kw_id, $rank['rank'], $rank['rank_m'], $rank['source'], $rank['source_m'], $rank['engines'])) {
$this->load->model('InfoSMS_model'); $this->load->model('InfoSMS_model');
$last_rank = isset($last_rank[0]) ? $last_rank[0]->kwr_rank : $rank['rank']; $last_rank = isset($last_rank[0]) ? $last_rank[0]->kwr_rank : $rank['rank'];
$this->InfoSMS_model->readed_for_info($v->kw_id, 'keywords_rank'); $this->InfoSMS_model->readed_for_info($v->kw_id, 'keywords_rank');
@ -336,34 +400,31 @@ class Keyworlds extends CI_Controller {
} }
//计算关键词在google搜索引擎的排名 //计算关键词在google搜索引擎的排名
public function get_search_content_by_google($keyworlds, $site_url, $page, $site_code) { public function get_search_content_by_google($client_flag,$keyworlds, $site_url, $page, $site_code) {
$site_url .= "/";
$rank['rank'] = 0; $rank['rank'] = 0;
$rank['source'] = $site_url; $rank['source'] = $site_url;
$rank['rank_m'] = 0;
$rank['source_m'] = $site_url;
$rank['engines'] = 'google'; $rank['engines'] = 'google';
if ($page > 3) { if ($page > 3) {
$rank['rank'] = 151; $rank['rank'] = 151;
$rank['rank_m'] = 151;
return $rank; return $rank;
} }
//拼接关键词
/* $key_array = explode(' ',$keyworlds);
$search_worlds='';
foreach ($key_array as $v) {
$search_worlds.='+'.$v;
}
$search_worlds = substr($search_worlds,1); */
$search_worlds = urlencode($keyworlds); $search_worlds = urlencode($keyworlds);
//拼接搜索url链接 //拼接搜索url链接
$start = ($page - 1) * 50; $start = ($page - 1) * 50;
$google_url = 'google.com'; $google_url = 'google.com';
$google_domain = array( $google_domain = array(
'gm' => 'google.de', 'gm' => 'google.de',
'vc' => 'google.fr', 'vc' => 'google.fr',
'vac' => 'google.es', 'vac' => 'google.es',
'ru' => 'google.ru', 'ru' => 'google.ru',
'it' => 'google.it', 'it' => 'google.it',
'jp' => 'google.co.jp' 'jp' => 'google.co.jp'
); );
if (!empty($google_domain[$site_code])) if (!empty($google_domain[$site_code]))
$google_url = $google_domain[$site_code]; $google_url = $google_domain[$site_code];
@ -374,292 +435,103 @@ class Keyworlds extends CI_Controller {
$language = $language_array[$site_code]; $language = $language_array[$site_code];
//抓取google搜索结果 //抓取google搜索结果
$this->load->library('Snoopy'); $url = "https://www.$google_url/search?q=$search_worlds&start=$start&num=50&hl=$language";
$snoopy = $this->snoopy; $match_fun = '/<h3 class="r">(.*)<\/h3>/smUi';
$snoopy->maxredirs = 0; $rank_flag = 'rank';
$snoopy->agent = '(compatible; MSIE 11; MSN 8; AOL 4.0; Windows 98)'; //模拟浏览器 $source_flag = 'source';
if ($snoopy->fetch("http://www.$google_url/search?q=$search_worlds&start=$start&num=50&hl=$language")) { if ($client_flag == 'm') {
$response = $snoopy->results; $match_fun = '/<a class="_Olt _bCp"(.*)<div/smUi';
$rank_flag = 'rank_m';
$source_flag = 'source_m';
}
$response = $this->curl($url,$client_flag);
if ($response) {
//分析google搜索结果计算排名 //分析google搜索结果计算排名
if (false !== stripos($response, '<h1>302 Moved</h1>')) { if (false !== stripos($response, '<h1>302 Moved</h1>')) {
$rank['rank'] = -2; $rank['rank'] = -2;
} elseif (false !== stripos($response, $site_url)) { } elseif (false !== stripos($response, $site_url)) {
preg_match_all('/<h3 class="r">(.*)<\/h3>/smUi', $response, $store); preg_match_all($match_fun, $response, $store);
foreach ($store[1] as $k => $v) { foreach ($store[1] as $k => $v) {
$ismatch = stripos($v, $site_url); $ismatch = stripos($v, $site_url);
if (false !== $ismatch) { if (false !== $ismatch) {
//计算排名 //计算排名
$rank['rank'] = $start + $k + 1; $rank[$rank_flag] = $start + $k + 1;
//抓取关键词来源 //抓取关键词来源
$end = stripos($v, '&', $ismatch); $end = strpos($v, '"', $ismatch);
$source = substr($v, $ismatch, $end); $source = substr($v, $ismatch, $end);
$source = explode('&', $source); $source = explode('"', $source);
$rank['source'] = $source[0]; $rank[$source_flag] = $source[0];
break; break;
} }
} }
} else {
// log_message('error','google search response not found CH');
} }
} else { } else {
$rank['rank'] = -1; $rank[$rank_flag] = -1;
} }
return $rank; return $rank;
} }
public function test() { public function test() {
$ranks = $this->get_search_content_by_yandex('Путеводитель по городу гуйлинь', 'www.chinahighlights.ru'); // $ranks = $this->get_search_content_by_yandex('Путеводитель по городу гуйлинь', 'www.chinahighlights.ru');
// $ranks = $this->get_search_content_by_google('PC','travel china', 'https://www.chinahighlights.com',1,"en");
var_dump($ranks); var_dump($ranks);
} }
//计算关键词在yandex搜索引擎的排名 //计算关键词在yandex搜索引擎的排名
public function get_search_content_by_yandex($keyworlds, $site_url, $page = 0, $sitecode = false) { public function get_search_content_by_yandex($client_flag,$keyworlds, $site_url, $page = 0, $sitecode = false) {
$site_url .= "/";
$rank['rank'] = 0; $rank['rank'] = 0;
$rank['rank_m'] = 0;
$rank['source'] = $site_url; $rank['source'] = $site_url;
$rank['source_m'] = $site_url;
$rank['engines'] = 'yandex'; $rank['engines'] = 'yandex';
if ($page > 3) {
$rank['rank'] = 151;
$rank['rank_m'] = 151;
return $rank;
}
$startrank = $page * 10; $startrank = $page * 10;
$search_worlds = urlencode($keyworlds); $search_worlds = urlencode($keyworlds);
//抓取搜索结果数据 //抓取搜索结果数据
$this->load->library('Snoopy'); $url = "https://www.yandex.ru/yandsearch?p=$page&text=$search_worlds&lr=21436";
$snoopy = $this->snoopy; $refer = "https://www.yandex.ru/";
$snoopy->host = 'yandex.ru'; $match_fun = '/<a class=\"link link_theme_normal organic__url link_cropped_no i-bem\"(.*)class=/smUi';
$snoopy->referer = "http://www.yandex.ru/"; $rank_flag = 'rank';
//$snoopy->maxredirs=0; $source_flag = 'source';
$snoopy->agent = 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:20.0) Gecko/20100101 Firefox/20.0'; if ($client_flag == 'm') {
//$snoopy->agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36';//模拟浏览器 $match_fun = '/<a class="link link_theme_normal organic__url i-bem"(.*)class=/smUi';
if ($snoopy->fetch("http://www.yandex.ru/yandsearch?p=$page&text=$search_worlds&lr=21436")) { $rank_flag = 'rank_m';
$response = $snoopy->results; $source_flag = 'source_m';
//分析YANDEX搜索结果计算排名 }
if (false !== stripos($response, '<h1>302 Found</h1>')) { $response = $this->curl($url,$client_flag,$refer);
if ($response) {
// 分析YANDEX搜索结果计算排名
if (false !== stripos($response, '<h1>302 Found</h1>') ||
false !== stripos($response, 'капчей') || false !== stripos($response, 'captcha')) {
$rank['rank'] = -2; $rank['rank'] = -2;
} elseif (false !== stripos($response, $site_url)) { } elseif (false !== stripos($response, $site_url)) {
preg_match_all("/<b class=\"b-serp-item__number\">(.*)<\/a>/smUi", $response, $store); preg_match_all($match_fun, $response, $store);
foreach ($store[1] as $k => $v) { foreach ($store[1] as $k => $v) {
$start_s = stripos($v, $site_url); $start_s = stripos($v, $site_url);
if (false !== $start_s) { if (false !== $start_s) {
$rank['rank'] = $startrank + $k + 1; $rank[$rank_flag] = $startrank + $k + 1;
$end_s = stripos($v, '" ', $start_s); $end_s = stripos($v, '" ', $start_s);
$source = substr($v, $start_s, $end_s); $source = substr($v, $start_s, $end_s);
$sources = explode('" ', $source); $sources = explode('" ', $source);
$rank['source'] = $sources[0]; $rank[$source_flag] = $sources[0];
break; break;
} }
} }
}
} else {
$rank['rank'] = -1;
}
return $rank;
}
//计算关键词在google搜索引擎的排名
public function get_search_content_by_yahoo($keyworlds, $site_url, $page = 1, $sitecode = false) {
$rank['rank'] = 0;
$rank['source'] = $site_url;
$site_url_array = explode('//', $site_url);
$site_url = $site_url_array[1];
$rank['engines'] = 'yahoo';
if ($page > 3) {
$rank['rank'] = 151;
return $rank;
}
//拼接关键词
/* $key_array = explode(' ',$keyworlds);
$search_worlds='';
foreach ($key_array as $v) {
$search_worlds.='+'.$v;
}
$search_worlds = substr($search_worlds,1); */
$search_worlds = urlencode($keyworlds);
$yahoourl = 'http://search.yahoo.com';
if ($sitecode == 'jp')
$yahoourl = 'http://search.yahoo.co.jp';
$start = ($page - 1) * 50 + 1;
$pstart = $page + 4;
//抓取yahoo搜索结果
$this->load->library('Snoopy');
$snoopy = $this->snoopy;
$snoopy->maxredirs = 0;
$snoopy->agent = '(compatible; MSIE 9; MSN 8; AOL 4.0; Windows 98)'; //模拟浏览器
if ($snoopy->fetch("$yahoourl/search;_ylt=A0SO8yDYHxBT6xQAWAFXNyoA?p=$search_worlds&n=100&ei=UTF-8&va_vt=any&vo_vt=any&ve_vt=any&vp_vt=any&vst=0&vf=all&vm=i&fl=0&fr=sfp&b=$start&pstart=$pstart")) {
$response = $snoopy->results;
//分析yahoo搜索结果计算排名
//出现被屏蔽情况
if (false !== stripos($response, 'document has moved')) {
$rank['rank'] = -2;
} else { } else {
preg_match_all('/<div id=\"web\">(.*)<\/ol>/smUi', $response, $search_c); // log_message('error','yandex not found CH');
if (false !== stripos($search_c[0][0], $site_url)) {
preg_match_all('/<li><a(.*)<\/a>/smUi', $search_c[0][0], $store);
foreach ($store[1] as $k => $v) {
$ismatch = stripos($v, $site_url);
if (false !== $ismatch) {
//计算排名
$rank['rank'] = $start + $k + 1;
//抓取关键词来源
$end = stripos($v, '"><b>', $ismatch);
$source = substr($v, $ismatch, $end);
$source = explode('"><b>', $source);
$rank['source'] = 'http://' . $source[0];
break;
}
}
}
} }
} else { } else {
$rank['rank'] = -1; $rank[$rank_flag] = -1;
}
return($rank);
}
//返回指定页面路径pagepath在指定时间内的成效信息
public function get_analytics_by_date($loadtotal = 0) {
$data = array();
//获取请求的日期范围以及请求的页面路径
$startdate = $this->input->post('startdate');
$enddate = $this->input->post('enddate');
$pagepath = $this->input->post('pagepath');
//如果开始时间为空则把开始时间设为往前七天
if ($startdate == '') {
$startdate = time() - 7 * 24 * 60 * 60;
} else {
$startdate = strtotime($startdate);
}
//如果结束时间为空,则把结束时间设为当天
if ($enddate == '') {
$enddate = time();
} else {
$enddate = strtotime($enddate);
}
if ($startdate > $enddate) {
echo "请选择正确的日期";
die();
} }
//查取google分析数据 return $rank;
$data['analytics_list'] = $this->analytics_model->get_analytics_list($pagepath, 50, $startdate, $enddate);
$total_visit['pv'] = $total_visit['uv'] = $total_visit['agv_time'] = $total_visit['entrances'] = 0;
$analytics_count = 0;
//访问量汇总
foreach ($data['analytics_list'] as $v) {
$total_visit['pv']+=$v->kwa_pageviews;
$total_visit['uv']+=$v->kwa_uniquepageviews;
$total_visit['agv_time']+=$v->kwa_avgtimeonpage;
$total_visit['entrances']+=$v->kwa_entrances;
$analytics_count++;
}
$analytics_count == 0 ? $analytics_count = 1 : null;
$total_visit['agv_time'] = ceil($total_visit['agv_time'] / $analytics_count);
$data['total_visit'] = $total_visit;
//如果loadtotal==1,则只返回google分析的汇总数据;如果loadtotal==0则返回明细数据表
$data['loadtotal'] = $loadtotal;
$this->load->view('keyworlds/analytics', $data);
}
//从google分析接口获取数据并入库,$start_index:从接口提取数据时的起始条数
public function get_google_analytics_data($sitecode = 'cht', $start_index = 1) {
session_start();
//判断该站点是否已经更新.
$update_count = $this->analytics_model->get_update_count($sitecode);
$update_count;
$flag = false;
switch ($sitecode) {
case 'cht':
case 'jp':
case 'ct':
//对于以上三个站点如果数据库中存在的数量大于当前起始数,则表示该站点已经更新
if ($update_count > $start_index)
$flag = true;
break;
default:
//对于其他站点如果数据库中存在的数量大于0则表示该站点已经更新
if ($update_count > 0) {
$flag = true;
}
}
//如果站点已经更新则放弃从google分析抓取数据
if ($flag) {
echo 'finished';
exit();
}
//初始化Google_Client
require_once APPPATH . 'libraries/Google_Client/Google_Client.php';
require_once APPPATH . 'libraries/Google_Client/contrib/Google_AnalyticsService.php';
$baseurl = site_url("Keyworlds/get_google_analytics_data/");
$revokeUrl = $baseurl . '?action=revoke';
//google分析接口过滤条件
$site_config = array('cht' => 5120, 'gm' => 6028186, 'vc' => 68571571, 'vac' => 68484932, 'ru' => 68577400, 'it' => 68564185, 'jp' => 574459, 'tbt' => 715050, 'sht' => 4705635, 'yz' => 68484504, 'gl' => 68460695, 'mbj' => 68479244, 'ct' => 8567691);
$profileId = $site_config[$sitecode]; //网站标志ID
$analytics_start_time = date('Y-m-d', time() - 7 * 24 * 60 * 60); //获取数据的开始时间
$analytics_end_time = date('Y-m-d', time()); //获取数据的结束时间
//授权设置
$client = new Google_Client();
$client->setClientId('50804699713-l5sfpffqpo4kbrbhk9tf53049labr214.apps.googleusercontent.com');
$client->setClientSecret('_IpQ8Qi1QFlogmxiMhIRHgEa');
$client->setRedirectUri('http://localhost:9999/info.php/Keyworlds/get_google_analytics_data');
$client->setApplicationName('Google Analytics Application');
$client->setScopes(array('https://www.googleapis.com/auth/analytics.readonly'));
$client->setUseObjects(true);
$client->setAccessType('offline');
//解除授权
if (isset($_GET['action']) && $_GET['action'] == 'revoke') {
$accessToken = $_SESSION['access_token'];
if ($accessToken) {
$tokenObj = json_decode($accessToken);
$client->revokeToken($tokenObj->refresh_token);
unset($_SESSION['access_token']);
}
header("Location: $baseurl");
}
//获取授权
if (isset($_SESSION['access_token'])) {
$accessToken = $_SESSION['access_token'];
$client->setAccessToken($accessToken);
} else {
//授权过期重新生成access_token
$client->refreshToken('1/ZX7Qo-m_rxIL1_LqE8vM2sYKATkAJxm0Fc5g7BRXeo0');
$_SESSION['access_token'] = $client->getAccessToken();
//$accessToken = $client->authenticate();
//$_SESSION['access_token'] = $accessToken;
}
//获取数据
if ($client->getAccessToken()) {
$analytics = new Google_AnalyticsService($client);
//获取详细信息
$results = $analytics->data_ga->get(
'ga:' . $profileId, $analytics_start_time, $analytics_end_time, 'ga:visits', array(
'dimensions' => 'ga:pagePath,ga:source,ga:keyword',
'metrics' => 'ga:pageviews,ga:uniquePageviews,ga:avgTimeOnPage,ga:entrances,ga:exitRate,ga:pageValue',
'sort' => '-ga:pageviews',
'max-results' => '10000',
'start-index' => $start_index
)
);
}
$_SESSION['access_token'] = $client->getAccessToken();
$columnheader = array('pagepath', 'source', 'keyword', 'pv', 'uv', 'avgtimeonpage', 'entrances', 'exitrate', 'pageValue');
$output = array();
$txt = '';
foreach ($results->getRows() as $row) {
foreach ($row as $i => $cell) {
$table[$columnheader[$i]] = htmlspecialchars($cell, ENT_NOQUOTES);
}
$txt.=$table['source'] . '|@|' . $table['pv'] . '|@|' . $table['uv'] . '|@|' . $table['avgtimeonpage'] . '|@|' . $table['entrances'] . '|@|' . $table['exitrate'] . '|@|' . $table['pageValue'] . '|@|' . time() . '|@|' . $sitecode . '|@|' . $table['pagepath'] . '|@|' . substr($table['keyword'], 0, 255) . "\r\n";
$output[] = $table;
unset($table);
}
$fp = fopen(APPPATH . 'helpers/analytics_data.txt', 'wb');
fwrite($fp, $txt);
fclose($fp);
$this->analytics_model->add_analytics_by_txt();
echo $sitecode;
} }
//从cvs文件导入关键词 //从cvs文件导入关键词
@ -669,8 +541,8 @@ class Keyworlds extends CI_Controller {
if (($handle = fopen($filename, "r")) !== false) { if (($handle = fopen($filename, "r")) !== false) {
while (($dataSrc = fgetcsv($handle)) !== false) { while (($dataSrc = fgetcsv($handle)) !== false) {
$num = count($dataSrc); $num = count($dataSrc);
for ($c = 0; $c < $num; $c++) {//列 column for ($c = 0; $c < $num; $c++) {//列 column
if ($row === 1) {//第一行作为字段 if ($row === 1) {//第一行作为字段
$dataName[] = $dataSrc[$c]; //字段名称 $dataName[] = $dataSrc[$c]; //字段名称
} else { } else {
foreach ($dataName as $k => $v) { foreach ($dataName as $k => $v) {
@ -699,70 +571,6 @@ class Keyworlds extends CI_Controller {
} }
} }
//收录查询结果
public function check_embody() {
$this->load->model('InfoMetas_model');
$this->load->model('InfoSMS_model');
//获取未收录的数据
$today_date = date('Y-m-d', time() - 3 * 24 * 60 * 60);
$embody = $this->InfoMetas_model->get_unembody_content($today_date);
if (empty($embody)) {
return false;
}
//页面url
$embody = $embody[0];
if ($embody->ic_url == '')
return false;
$site = $this->config->item('site');
$site_url = $site[$embody->ic_sitecode]['site_url'];
$site_url = $site_url . $embody->ic_url;
//收录查询搜索url
$search_worlds = 'site:' . $site_url;
$search_worlds;
$google_url = 'google.com';
$language = 'en';
$language_array = array('gm' => 'de', 'vc' => 'fr', 'vac' => 'es', 'ru' => 'ru', 'it' => 'it', 'jp' => 'jp');
if (!empty($language_array[$embody->ic_sitecode]))
$language = $language_array[$embody->ic_sitecode];
//抓取google搜索结果
$this->load->library('Snoopy');
$snoopy = $this->snoopy;
$snoopy->maxredirs = 0;
$snoopy->agent = '(compatible; MSIE 9; MSN 8; AOL 4.0; Windows 98)'; //模拟浏览器
if ($snoopy->fetch("http://www.$google_url/search?q=$search_worlds&start=0&num=10&hl=$language")) {
$response = $snoopy->results;
if (false !== stripos($response, '<h1>302 Moved</h1>')) {
echo 302;
return false;
}
preg_match_all('/<h3 class="r">(.*)<\/h3>/smUi', $response, $store);
if (isset($store[1][0]) && false !== stripos($store[1][0], $site_url)) {
$ismatch = stripos($store[1][0], $site_url);
$end = stripos($store[1][0], '&', $ismatch);
$source = substr($store[1][0], $ismatch, $end);
$source = explode('&', $source);
$source = $source[0];
if ($source == $site_url) {
$this->InfoMetas_model->update($embody->im_ic_id, 'meta_embody', '1');
$this->InfoSMS_model->add('info', $embody->im_ic_id, $embody->ic_author, 'lyy', '已收录');
echo 'ok';
} else {
$this->InfoMetas_model->update($embody->im_ic_id, 'meta_embody', date('Y-m-d H:i:s'));
$this->InfoSMS_model->add('info', $embody->im_ic_id, $embody->ic_author, 'lyy', '未被收录');
echo 'no';
}
} else {
$this->InfoMetas_model->update($embody->im_ic_id, 'meta_embody', date('Y-m-d H:i:s'));
$this->InfoSMS_model->add('info', $embody->im_ic_id, $embody->ic_author, 'lyy', '未被收录');
echo 'no';
}
}
echo '<br>end';
}
//定时批量更新CDN //定时批量更新CDN
public function update_cdn() { public function update_cdn() {
$this->load->model('Logs_model'); $this->load->model('Logs_model');
@ -824,44 +632,43 @@ class Keyworlds extends CI_Controller {
var_dump($notice); var_dump($notice);
} }
public function mobile_friendly_test() { protected function curl($url, $useragent = 'PC', $referer = false) {
set_time_limit(60); if ($useragent == 'PC') {
$url = $this->input->post('pageurl'); $useragent = "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22";
$googleapis = 'https://www.googleapis.com/pagespeedonline/v3beta1/mobileReady?url=' . $url; } else {
$useragent = "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Mobile Safari/537.36";
}
$ch = curl_init(); $ch = curl_init();
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_FAILONERROR, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_URL, $googleapis); curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
$response2 = curl_exec($ch); // curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME);
$response = json_decode($response2); // curl_setopt($ch, CURLOPT_PROXY, "202.103.68.28:11111"); // 本地代理
if ($referer) {
$data['pageurl'] = $url; curl_setopt($ch, CURLOPT_REFERER, $referer);
$data['score'] = 60; }
$data['pass'] = false;
isset($response->ruleGroups->USABILITY->score) && $data['score'] = $response->ruleGroups->USABILITY->score; $headers = array('content-type: application/x-www-form-urlencoded;charset=UTF-8');
isset($response->ruleGroups->USABILITY->pass) && $data['pass'] = $response->ruleGroups->USABILITY->pass; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
if (empty($response2)) {
$pass_text = '请求超时'; $reponse = curl_exec($ch);
$title = '请求超时,请稍后再试!';
$link_color = 'text-error'; if (curl_errno($ch)) {
$data['score'] = '-'; log_message('error', "curl error code: ".curl_error($ch).";");
} elseif ($data['pass']) {
$pass_text = 'OK';
$link_color = 'text-info';
$title = 'Awesome! This page is mobile-friendly (友好度' . $data['score'] . ', 总分100分)';
} else { } else {
$pass_text = 'No'; $httpStatusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$title = 'Not mobile-friendly (友好度' . $data['score'] . ', 总分100分)'; if (200 !== $httpStatusCode) {
$link_color = 'text-error'; log_message('error', "curl Request html Status Code: ".$httpStatusCode.";");
}
} }
$html = '<a title="' . $title . '" class="' . $link_color . '" target="__blank" href="https://developers.google.com/speed/pagespeed/insights/?utm_source=analytics&tab=mobile&url=' . $data['pageurl'] . '"><span>' . $pass_text . ',友好度:' . $data['score'] . '</span></a>'; curl_close($ch);
echo $html; return $reponse;
} }
} }

@ -15,11 +15,11 @@ class infoKeywords_model extends CI_Model
kw_keyworlds+'('+isnull((select top 1 kwr_rank from infoKeywordsrank where kwr_kw_id=kw_id order by kwr_id desc),'#')+')' as name, kw_keyworlds+'('+isnull((select top 1 kwr_rank from infoKeywordsrank where kwr_kw_id=kw_id order by kwr_id desc),'#')+')' as name,
kw_status AS status, kw_status AS status,
kw_id kw_id
FROM infoKeywords FROM infoKeywords
INNER JOIN infoStructures is1 ON kw_is_id = is1.is_id INNER JOIN infoStructures is1 ON kw_is_id = is1.is_id
WHERE kw_sitecode = ? WHERE kw_sitecode = ?
ORDER BY is1.is_level ASC, ORDER BY is1.is_level ASC,
is1.is_sort ASC, is1.is_sort ASC,
is1.is_path ASC"; is1.is_path ASC";
$query = $this->HT->query($sql, array($this->config->item('site_code'))); $query = $this->HT->query($sql, array($this->config->item('site_code')));
return $query->result(); return $query->result();
@ -67,10 +67,8 @@ class infoKeywords_model extends CI_Model
public function get_keyworld_list($top=1,$engines='',$site_code=false) public function get_keyworld_list($top=1,$engines='',$site_code=false)
{ {
$today = strtotime(date('Y-m-d')); $today = strtotime(date('Y-m-d'));
$mapsql=""; $map = " ";
$map=" AND kw_datetime<'$today'";
if ($engines=='yandex') { if ($engines=='yandex') {
$mapsql="LEFT JOIN infoKeywordsrank ON kwr_kw_id=kw_id and kwr_datetime<'$today'";
$map=" AND kw_sitecode='ru' "; $map=" AND kw_sitecode='ru' ";
}elseif ($engines=='baidu') { }elseif ($engines=='baidu') {
$map.=" AND kw_sitecode='wt' "; $map.=" AND kw_sitecode='wt' ";
@ -88,11 +86,17 @@ class infoKeywords_model extends CI_Model
kw_is_id, kw_is_id,
kw_sitecode, kw_sitecode,
kw_datetime, kw_datetime,
kw_status kw_status,
FROM infoKeywords $mapsql kwr_datetime,
kwr_rank,
kwr_mobile_rank,
kwr_id
FROM infoKeywords INNER JOIN infoKeywordsrank ON kwr_kw_id=kw_id
AND kwr_id = ( SELECT MAX(kwr_id) FROM infoKeywordsrank WHERE kwr_kw_id=kw_id )
AND (kwr_datetime<'$today'
OR kwr_mobile_rank IS NULL)
WHERE kw_status=1 $map WHERE kw_status=1 $map
ORDER BY newid()"; ORDER BY newid()";
$query = $this->HT->query($sql); $query = $this->HT->query($sql);
//print_r($this->HT->queries); //print_r($this->HT->queries);
$result = $query->result(); $result = $query->result();
@ -107,7 +111,7 @@ class infoKeywords_model extends CI_Model
kw_is_id, kw_is_id,
kw_sitecode, kw_sitecode,
kw_datetime, kw_datetime,
kw_status kw_status
FROM infoKeywords FROM infoKeywords
WHERE kw_id=?"; WHERE kw_id=?";
@ -121,14 +125,14 @@ class infoKeywords_model extends CI_Model
//根据结构ID获取关键词内容 //根据结构ID获取关键词内容
public function get_keyworld_bytreeid($treeid){ public function get_keyworld_bytreeid($treeid){
$sql = "SELECT TOP 1 $sql = "SELECT TOP 1
kw_keyworlds, kw_keyworlds,
kw_is_id, kw_is_id,
kw_id, kw_id,
kw_sitecode, kw_sitecode,
kw_datetime, kw_datetime,
kw_status kw_status
FROM infoKeywords FROM infoKeywords
WHERE kw_sitecode = ? AND kw_is_id=?"; WHERE kw_sitecode = ? AND kw_is_id=?";
$query = $this->HT->query($sql, array($this->config->item('site_code'),$treeid)); $query = $this->HT->query($sql, array($this->config->item('site_code'),$treeid));
$result = $query->result(); $result = $query->result();
@ -147,7 +151,7 @@ class infoKeywords_model extends CI_Model
kw_is_id, kw_is_id,
kw_sitecode, kw_sitecode,
kw_datetime, kw_datetime,
kw_status kw_status
FROM infoKeywords FROM infoKeywords
WHERE kw_keyworlds like '%$keyworld%' AND kw_sitecode = ?"; WHERE kw_keyworlds like '%$keyworld%' AND kw_sitecode = ?";
@ -158,11 +162,11 @@ class infoKeywords_model extends CI_Model
public function get_compare_rank($order='asc') public function get_compare_rank($order='asc')
{ {
$m_datetime=date('Y-m-d 00:00:00'); $m_datetime=date('Y-m-d 00:00:00');
$sql="SELECT top 50 * $sql="SELECT top 50 *
FROM infoKeywords FROM infoKeywords
INNER JOIN infosms on m_object_type='keywords_rank' and kw_id=m_object_id INNER JOIN infosms on m_object_type='keywords_rank' and kw_id=m_object_id
WHERE kw_sitecode = ? and m_readed = 0 order by cast(cast(m_content AS CHAR(50)) as int) $order"; WHERE kw_sitecode = ? and m_readed = 0 order by cast(cast(m_content AS CHAR(50)) as int) $order";
$query = $this->HT->query($sql, array($this->config->item('site_code'),$m_datetime)); $query = $this->HT->query($sql, array($this->config->item('site_code'),$m_datetime));
return $query->result(); return $query->result();
} }
} }

@ -9,27 +9,31 @@ class infoKeywordsrank_model extends CI_Model
} }
//添加关键词排名 //添加关键词排名
public function add_rank($kwr_kw_id,$kwr_rank,$kwr_source,$kwr_engines) public function add_rank($kwr_kw_id,$kwr_rank,$kwr_mobile_rank,$kwr_source,$kwr_mobile_source,$kwr_engines)
{ {
$sql = "INSERT INTO infoKeywordsrank ( $sql = "INSERT INTO infoKeywordsrank (
kwr_kw_id, kwr_kw_id,
kwr_rank, kwr_rank,
kwr_mobile_rank,
kwr_source, kwr_source,
kwr_mobile_source,
kwr_datetime, kwr_datetime,
kwr_engines kwr_engines
) VALUES (?,?,?,?,?)"; ) VALUES (?,?,?,?,?,?,?)";
$query = $this->HT->query($sql, array($kwr_kw_id,$kwr_rank,$kwr_source,time(),$kwr_engines)); $query = $this->HT->query($sql, array($kwr_kw_id,$kwr_rank,$kwr_mobile_rank,$kwr_source,$kwr_mobile_source,time(),$kwr_engines));
return $this->HT->last_id('infoKeywordsrank'); return $this->HT->last_id('infoKeywordsrank');
} }
//更新关键词排名 //更新关键词排名
public function update_rank($kwr_id,$rank,$source){ public function update_rank($kwr_id,$rank,$mobile_rank,$source,$mobile_source){
$set_sql = "UPDATE infoKeywordsrank $set_sql = "UPDATE infoKeywordsrank
SET kwr_datetime = ?, SET kwr_datetime = ?,
kwr_rank=?, kwr_rank=?,
kwr_source=? kwr_mobile_rank=?,
kwr_source=?,
kwr_mobile_source=?
WHERE kwr_id = ?"; WHERE kwr_id = ?";
$result=$this->HT->query($set_sql, array(time(),$rank,$source,$kwr_id)); $result=$this->HT->query($set_sql, array(time(),$rank,$mobile_rank,$source,$mobile_source,$kwr_id));
return $result; return $result;
} }
@ -43,10 +47,12 @@ class infoKeywordsrank_model extends CI_Model
}else{ }else{
$topmap= "TOP $top"; $topmap= "TOP $top";
} }
$sql = "SELECT $topmap kwr_id, $sql = "SELECT $topmap kwr_id,
kwr_kw_id, kwr_kw_id,
kwr_rank, kwr_rank,
kwr_mobile_rank,
kwr_source, kwr_source,
kwr_mobile_source,
kwr_engines, kwr_engines,
kwr_datetime, kwr_datetime,
kw_keyworlds kw_keyworlds
@ -71,4 +77,4 @@ class infoKeywordsrank_model extends CI_Model
$query = $this->HT->query($sql, array($kwr_id)); $query = $this->HT->query($sql, array($kwr_id));
return $query; return $query;
} }
} }

@ -31,7 +31,7 @@
<?php echo isset($rank_change_html)?$rank_change_html:''; ?> <?php echo isset($rank_change_html)?$rank_change_html:''; ?>
</div> </div>
<div id="rankinfo"> <div id="rankinfo">
<form class="span3" style="position: absolute;top: 165px;z-index: 100;right: 50px;" method="post" action="<?php echo site_url("Keyworlds/index/$current_keyworld->kw_is_id"); ?>"> <form class="span3" style="position: absolute;top: 165px;z-index: 100;right: 50px;" method="post" action="<?php echo site_url("Keyworlds/index/$current_keyworld->kw_is_id"); ?>">
<div class="input-append"> <div class="input-append">
<button class="btn pull-right" type="submit">查询</button> <button class="btn pull-right" type="submit">查询</button>
@ -48,53 +48,28 @@
<tr> <tr>
<th>#</th> <th>#</th>
<th>时间</th> <th>时间</th>
<th>来源</th> <th>来源(PC/Mobile)</th>
<th>排名</th> <th>排名(PC/Mobile)</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<?php foreach ($rank_info as $k=>$rank) { ?> <?php $ki=0; foreach ($rank_info as $k=>$rank) { ?>
<tr> <tr>
<td><?php echo $k+1; ?></td> <td><?php echo ++$ki; ?></td>
<td><?php echo date('Y-m-d H:i:s',$rank->kwr_datetime); ?></td> <td><?php echo date('Y-m-d H:i:s',$rank->kwr_datetime); ?></td>
<td><a target="_blank" href="<?php echo $rank->kwr_source; ?>"><?php echo $rank->kwr_source; ?></a></td> <td>
<td><?php echo $rank->kwr_rank; ?></td> <a target="_blank" href="<?php echo $rank->kwr_source; ?>"><?php echo $rank->kwr_source; ?></a>
<br>
<a target="_blank" href="<?php echo $rank->kwr_mobile_source; ?>"><?php echo $rank->kwr_mobile_source; ?></a>
</td>
<td><?php echo $rank->kwr_rank; ?>&nbsp;--&nbsp;
<?php $kwr_mobile_rank = $rank->kwr_mobile_rank ? $rank->kwr_mobile_rank : '未抓取'; echo $kwr_mobile_rank; ?></td>
</tr> </tr>
<?php if($k+1==7) break; ?> <?php if($k+1==7) break; ?>
<?php } ?> <?php } ?>
</tbody> </tbody>
</table><br><br> </table><br><br>
<?php } ?> <?php } ?>
<?php if (!empty($analytics)) { ?>
<legend>访问量明细</legend>
<table class="table table-striped">
<thead>
<tr>
<th>#</th>
<th>时间</th>
<th>路径</th>
<th>PV</th>
<th>UV</th>
<th>平均停留时间</th>
<th>跳出率</th>
</tr>
</thead>
<tbody>
<?php foreach ($analytics as $key_a=>$a) { ?>
<tr>
<td><?php echo $key_a+1; ?></td>
<td><?php echo date('Y-m-d',$a->kwa_datetime-7*24*60*60); ?></td>
<td><?php echo $a->kwa_pagepath; ?></td>
<td><?php echo $a->kwa_pageviews; ?></td>
<td><?php echo $a->kwa_uniquepageviews; ?></td>
<td><?php echo number_format($a->kwa_avgtimeonpage,1); ?></td>
<td><?php echo number_format($a->kwa_exitrate,1); ?>%</td>
</tr>
<?php } ?>
</tbody>
</table>
<?php } ?>
</div> </div>
</div> </div>
</div> </div>
@ -252,12 +227,12 @@
} }
//选择节点 //选择节点
var node = zTree.getNodeByParam("id",<?php echo $current_keyworld->kw_is_id; ?>); var node = zTree.getNodeByParam("id",<?php echo $current_keyworld->kw_is_id; ?>);
zTree.selectNode(node); zTree.selectNode(node);
$("#startdate,#enddate").datepicker({ $("#startdate,#enddate").datepicker({
showButtonPanel: true, showButtonPanel: true,
dateFormat:'yy-mm-dd' dateFormat:'yy-mm-dd'
}); });
}); });
//删除结构和信息 //删除结构和信息
@ -353,7 +328,7 @@
categories: <?php echo $data_time; ?>, categories: <?php echo $data_time; ?>,
labels: {rotation: -45,align: 'right'} labels: {rotation: -45,align: 'right'}
}, },
yAxis: {title: {text: '关键词排名'}}, yAxis: {title: {text: '关键词排名'}, reversed: true, allowDecimals: false, min: 0},
tooltip: { tooltip: {
enabled: true, enabled: true,
formatter: function() { formatter: function() {
@ -389,4 +364,4 @@
<?php } ?> <?php } ?>
}); });
</script> </script>

@ -1,13 +1,11 @@
<?php <?php
$config['version'] = "1.1"; $config['version'] = "1.1";
$config['partnerId'] = "10000007562"; $config['partnerId'] = "10000004000";
$config['siteId'] = "www.chinahighlights.com"; $config['siteId'] = "www.chinahighlights.com";
$config['tradeType'] = "1001"; $config['tradeType'] = "1001";
$config['borrowingMarked'] = "0"; $config['borrowingMarked'] = "0";
$config['returnUrl'] = "https://www.chinahighlights.com/secureipay/load_return"; $config['returnUrl'] = "https://www.chinahighlights.com/secureipay/load_return";
$config['noticeUrl'] = "http://www.mycht.cn/webht.php/apps/pay/ipaylinks_notice"; $config['noticeUrl'] = "http://www.mycht.cn/webht.php/apps/pay/iPayLinksService/ipaylinks_notice";
// $config['returnUrl'] = "http://202.103.68.79:88/guide-use.php/apps/pay/iPayLinksService/load_return";
// $config['noticeUrl'] = "http://202.103.68.79:88/guide-use.php/apps/pay/iPayLinksService/ipaylinks_notice";
$config['mcc'] = "5000"; $config['mcc'] = "5000";
$config['payType'] = "EDC"; $config['payType'] = "EDC";
$config['payMode'] = "10"; $config['payMode'] = "10";
@ -15,16 +13,10 @@ $config['charset'] = "1";
$config['signType'] = "2"; $config['signType'] = "2";
$config['signMsg'] = ""; $config['signMsg'] = "";
$config['gatewayUrl'] = "https://api.ipaylinks.com/webgate/crosspay.htm"; $config['gatewayUrl'] = "https://api.ipaylinks.com/webgate/crosspay.htm";
// test
// $config['gatewayUrl'] = "http://api.test.ipaylinks.com/webgate/crosspay.htm";
$config['dev_gatewayUrl'] = "http://api.test.ipaylinks.com/webgate/crosspay.htm";
$config['currencyCode'] = "USD"; $config['currencyCode'] = "USD";
$config['travDetailsSize'] = "0"; $config['travDetailsSize'] = "0";
$config['pkey'] = "30819f300d06092a864886f70d010101050003818d0030818902818100c2446c6be39938f29e2150a8b929a5e44ee39b774775270a0c223e3cad717eaa15ab17fed5d0a04fc75e10d6c97644b10269a9cf842f47ca8d22e0d0c906c7314ae11dd73a64ab721b9a11aaa5588b4f039e1d1e9809fccdfb698ea72e14d86ba6731ebff1635f8901b0e04ffdd588be9b7d5fb549deaf391f6a71fced37dbd50203010001"; // 商户证书的公钥 $config['pkey'] = "30819f300d06092a864886f70d010101050003818d00308189028181008c903972be5509375edec0d6793d8d3eb533334d146069b5dfcdafd24e5c7d0a05d1774488ea257d504a18c9098d798c0f523f3ad722e3e9c32ae7fecd7e734b340b9c8ff805aa32d0a49cb6df9eca3bb6954d966f6148533a8d667aabb55b2762dcd06308c94d24d257dfdb2ad86b46702774c51e7627e5b707d52224ef794b0203010001"; // 商户证书的公钥
$config['queryUrl'] = "https://query.ipaylinks.com/webgate/orderQuery.htm"; $config['queryUrl'] = "https://query.ipaylinks.com/webgate/orderQuery.htm";
// test
// $config['queryUrl'] = "http://api.test.ipaylinks.com/webgate/orderQuery.htm";
$config['dev_queryUrl'] = "http://api.test.ipaylinks.com/webgate/orderQuery.htm";
$config['query_mode'] = "1"; $config['query_mode'] = "1";
$config['query_type'] = "1"; $config['query_type'] = "1";

@ -6,7 +6,6 @@ if (!defined('BASEPATH'))
class IPayLinksService extends CI_Controller class IPayLinksService extends CI_Controller
{ {
public $gatewayUrl; public $gatewayUrl;
public $dev_gatewayUrl;
public $pay_info_arr = array(); public $pay_info_arr = array();
public $query_info_arr = array(); public $query_info_arr = array();
public $order_info_arr = array(); public $order_info_arr = array();
@ -30,7 +29,8 @@ class IPayLinksService extends CI_Controller
$this->notify_url = $this->config->item('noticeUrl'); $this->notify_url = $this->config->item('noticeUrl');
$this->pay_info_arr['version'] = $this->query_info_arr['version'] = $this->config->item('version'); $this->pay_info_arr['version'] = $this->query_info_arr['version'] = $this->config->item('version');
$this->pay_info_arr['partnerId'] = $this->query_info_arr['partnerId'] = $this->config->item('partnerId'); $this->pay_info_arr['partnerId'] = $this->query_info_arr['partnerId'] = "10000004000";
// $this->pay_info_arr['partnerId'] = $this->query_info_arr['partnerId'] = $this->config->item('partnerId');
$this->pay_info_arr['charset'] = $this->query_info_arr['charset'] = $this->config->item('charset'); $this->pay_info_arr['charset'] = $this->query_info_arr['charset'] = $this->config->item('charset');
$this->pay_info_arr['signType'] = $this->query_info_arr['signType'] = $this->config->item('signType'); $this->pay_info_arr['signType'] = $this->query_info_arr['signType'] = $this->config->item('signType');
@ -114,19 +114,11 @@ class IPayLinksService extends CI_Controller
$data['month_html'] .= "<option value='".($i)."'>".($i)."</option>"; $data['month_html'] .= "<option value='".($i)."'>".($i)."</option>";
} }
$this->get_order_info(); $this->get_order_info();
$param_arr = $this->order_info_arr['goodsDesc']; $data['description'] = $param_arr = str_replace("\n", "<br>", $this->order_info_arr['goodsDesc']) ;
bcscale(2); bcscale(2);
$data['amount'] = strval(bcdiv($this->order_info_arr['orderAmount'], 100)); $data['amount'] = strval(bcdiv($this->order_info_arr['orderAmount'], 100));
$data['currencyCode'] = $this->pay_info_arr['currencyCode']; $data['currencyCode'] = $this->pay_info_arr['currencyCode'];
$data['orderId'] = $this->order_info_arr['orderId']; $data['orderId'] = $this->order_info_arr['orderId'];
if (strpos($param_arr, 'Tracking Code:') !== false) {
$tmp = explode("Tracking Code:", $this->order_info_arr['goodsDesc']);
$data["track_code"] = trim(explode("Travel Advisor:", $tmp[1])[0]);
$tmp = explode("Travel Advisor:", $tmp[1]);
$tmp = explode("Content:", $tmp[1]);
$data["advisor"] = trim($tmp[0]);
$data["content"] = trim($tmp[1]);
}
$this->load->view("iPayLinks_index",$data); $this->load->view("iPayLinks_index",$data);
} }
@ -299,6 +291,7 @@ class IPayLinksService extends CI_Controller
public function batch_send_note($pn_txn_id = false) public function batch_send_note($pn_txn_id = false)
{ {
$data = array(); $data = array();
$int = 0;
//优先处理指定的交易号,用于修正交易号直接发送通知 //优先处理指定的交易号,用于修正交易号直接发送通知
if ( ! empty($pn_txn_id)) { if ( ! empty($pn_txn_id)) {
@ -386,7 +379,7 @@ class IPayLinksService extends CI_Controller
$this->IPayLinks_model->add_account_info( $this->IPayLinks_model->add_account_info(
$GAI_COLI_SN, $GAI_COLI_SN,
$advisor_info->COLI_ID, $advisor_info->COLI_ID,
$item->IPL_payAmount, $item->IPL_orderAmount,
$item->IPL_completeTime, $item->IPL_completeTime,
mb_strtoupper($item->IPL_currencyCode), mb_strtoupper($item->IPL_currencyCode),
$item->IPL_completeTime, $item->IPL_completeTime,
@ -404,7 +397,7 @@ class IPayLinksService extends CI_Controller
$GAI_COLI_SN = isset($advisor_info->COLI_SN) ? $advisor_info->COLI_SN : 0; $GAI_COLI_SN = isset($advisor_info->COLI_SN) ? $advisor_info->COLI_SN : 0;
$this->IPayLinks_model->add_tour_account_info( $this->IPayLinks_model->add_tour_account_info(
$GAI_COLI_SN, $GAI_COLI_SN,
$item->IPL_payAmount, $item->IPL_orderAmount,
$item->IPL_acquiringTime, $item->IPL_acquiringTime,
mb_strtoupper($item->IPL_currencyCode), mb_strtoupper($item->IPL_currencyCode),
$item->IPL_completeTime, $item->IPL_completeTime,
@ -415,7 +408,7 @@ class IPayLinksService extends CI_Controller
$ht_memo $ht_memo
); );
//添加汉特的订单提醒 //添加汉特的订单提醒
$this->IPayLinks_model->update_coli_introduction($GAI_COLI_SN, '已支付 ' . mb_strtoupper($item->IPL_currencyCode) . $item->IPL_payAmount); $this->IPayLinks_model->update_coli_introduction($GAI_COLI_SN, '已支付 ' . mb_strtoupper($item->IPL_currencyCode) . $item->IPL_orderAmount);
} }
} }
@ -432,11 +425,9 @@ class IPayLinksService extends CI_Controller
//给外联发送通知邮件 //给外联发送通知邮件
$fromName = 'iPayLinks'; $fromName = 'iPayLinks';
$fromEmail = ''; $fromEmail = '';
// test
$toName = !empty($opi_firstname) ? $opi_firstname : ''; $toName = !empty($opi_firstname) ? $opi_firstname : '';
$toEmail = !empty($opi_email) ? $opi_email : ''; $toEmail = !empty($opi_email) ? $opi_email : '';
$subject = $orderid_info->orderid . '_' . $orderid_info->ordertype . ' / ' . $item->IPL_payAmount . $item->IPL_currencyCode . ' / ' . $fromName; $subject = $orderid_info->orderid . '_' . $orderid_info->ordertype . ' / ' . $item->IPL_orderAmount . $item->IPL_currencyCode . ' / ' . $fromName;
// todo
$body = $this->load->view('receipt_mail', $item, true); $body = $this->load->view('receipt_mail', $item, true);
$M_RelatedInfo = $item->IPL_sn; $M_RelatedInfo = $item->IPL_sn;
$M_AddTime = $item->IPL_completeTime; $M_AddTime = $item->IPL_completeTime;
@ -445,7 +436,9 @@ class IPayLinksService extends CI_Controller
//添加邮件发送记录 end //添加邮件发送记录 end
$this->Note_model->update_send($item->IPL_dealId, 'send'); $this->Note_model->update_send($item->IPL_dealId, 'send');
$int++;
} }
echo "done. recorde count:".$int;
return; return;
} }
@ -556,10 +549,14 @@ class IPayLinksService extends CI_Controller
echo "200"; echo "200";
return; return;
} }
$dealId = trim($asyns_resp->data->dealId); $dealId = trim($asyns_resp->data->dealId) ;
$tmp_deal = $dealId ? $dealId : $this->create_guid();
bcscale(2); bcscale(2);
$this->Note_model->save_ipl( // 支付成功
strval($dealId) // 查询支付结果;入库处理
if ( ! empty($dealId)) {
$this->Note_model->save_ipl(
strval($tmp_deal)
,strval($asyns_resp->data->orderId) ,strval($asyns_resp->data->orderId)
,strval($asyns_resp->data->currencyCode) ,strval($asyns_resp->data->currencyCode)
,strval(bcdiv(floatval($asyns_resp->data->orderAmount), 100)) ,strval(bcdiv(floatval($asyns_resp->data->orderAmount), 100))
@ -572,8 +569,6 @@ class IPayLinksService extends CI_Controller
,strval($asyns_resp->data->resultCode) ,strval($asyns_resp->data->resultCode)
,strval($asyns_resp->data->resultMsg) ,strval($asyns_resp->data->resultMsg)
); );
// 查询支付结果;入库处理
if ( ! empty($asyns_resp->data->dealId)) {
$query = $this->query_pay_result($asyns_resp->data); $query = $this->query_pay_result($asyns_resp->data);
} }
// 返回状态码200 // 返回状态码200
@ -592,7 +587,8 @@ class IPayLinksService extends CI_Controller
{ {
ksort($request); ksort($request);
unset($request['signMsg']); unset($request['signMsg']);
$request['pkey'] = $this->config->item('pkey'); $request['pkey'] = "30819f300d06092a864886f70d010101050003818d00308189028181008c903972be5509375edec0d6793d8d3eb533334d146069b5dfcdafd24e5c7d0a05d1774488ea257d504a18c9098d798c0f523f3ad722e3e9c32ae7fecd7e734b340b9c8ff805aa32d0a49cb6df9eca3bb6954d966f6148533a8d667aabb55b2762dcd06308c94d24d257dfdb2ad86b46702774c51e7627e5b707d52224ef794b0203010001";
// $request['pkey'] = $this->config->item('pkey');
$param_str = ""; $param_str = "";
foreach ($request as $sysParamKey => $sysParamValue) { foreach ($request as $sysParamKey => $sysParamValue) {
if ($sysParamKey == "details") { if ($sysParamKey == "details") {
@ -647,29 +643,32 @@ class IPayLinksService extends CI_Controller
if (is_array($resp)) { if (is_array($resp)) {
// 异步通知接收到的是post数组 // 异步通知接收到的是post数组
$ret->data = $respObject = (Object) $resp; $ret->data = $respObject = (Object) $resp;
$ref = "";
} else { } else {
$ref = $_SERVER['HTTP_REFERER'];
$r = iconv("UTF-8", "UTF-8//IGNORE", $resp); $r = iconv("UTF-8", "UTF-8//IGNORE", $resp);
$ret->data = $respObject = @ simplexml_load_string($resp); $ret->data = $respObject = @ simplexml_load_string($resp);
// test // test
// log_message("error", "xml result: \n $resp"); // log_message("error", "xml result: \n $resp");
if (false === $respObject) { if (false === $respObject) {
log_message('error','iPayLinks return ERROR ! Unknow ERROR ! Original return:'.$resp."; From: ".$_SERVER['HTTP_REFERER']); log_message('error','iPayLinks return ERROR ! Unknow ERROR ! Original return:'.$resp."; From: ".$ref);
return $ret; return $ret;
} }
} }
$rep_sign = $this->generate_sign((array)$respObject); $rep_sign = $this->generate_sign((array)$respObject);
if (strcmp($rep_sign,$respObject->signMsg)) { if (strcmp($rep_sign,$respObject->signMsg)) {
log_message('error','iPayLinks sign ERROR ! orderId:'.$respObject->orderId.'; dealId:'.$respObject->dealId . "; Original return:".$resp."; From: ".$_SERVER['HTTP_REFERER']); log_message('error','iPayLinks sign ERROR ! orderId:'.$respObject->orderId.'; dealId:'.$respObject->dealId . "; Original return:".$resp."; From: ".$ref);
return $ret; return $ret;
} }
// partnerId // partnerId
if (strcmp($respObject->partnerId, $this->pay_info_arr['partnerId'])) { if (strcmp($respObject->partnerId, $this->pay_info_arr['partnerId'])) {
log_message("error", " iPayLinks ERROR partnerId verify failed ".$respObject->partnerId." !== ".$this->pay_info_arr['partnerId'].'; orderId:'.$respObject->orderId.'; dealId:'.$respObject->dealId."; From: ".$_SERVER['HTTP_REFERER']); log_message("error", " iPayLinks ERROR partnerId verify failed ".$respObject->partnerId." !== ".$this->pay_info_arr['partnerId'].'; orderId:'.$respObject->orderId.'; dealId:'.$respObject->dealId."; From: ".$ref);
return $ret; return $ret;
} }
// resultCode payment failed // resultCode payment failed
if (strcmp(strval($respObject->resultCode), "0000")) { if (strcmp(strval($respObject->resultCode), "0000")) {
log_message('error',"iPayLinks payment failed! error code:".$respObject->resultCode."; result Msg: ".$respObject->resultMsg.'; orderId:'.$respObject->orderId.'; dealId:'.$respObject->dealId."; From: ".$_SERVER['HTTP_REFERER']); log_message('error',"iPayLinks payment failed! error code:".$respObject->resultCode."; result Msg: ".$respObject->resultMsg.'; orderId:'.$respObject->orderId.'; dealId:'.$respObject->dealId."; From: ".$ref);
} }
$ret->check = true; $ret->check = true;
return $ret; return $ret;
@ -789,7 +788,7 @@ class IPayLinksService extends CI_Controller
} }
//获取note详情以便后续修改各项数据 //获取note详情以便后续修改各项数据
public function note_modal($pn_txn_id, $pn_invoice = false) { public function note_modal($pn_txn_id = false, $pn_invoice = false ,$notice_time = false) {
$data = array(); $data = array();
$data['IPL_orderId'] = $pn_invoice; $data['IPL_orderId'] = $pn_invoice;
if (!empty($pn_txn_id)) { if (!empty($pn_txn_id)) {
@ -812,6 +811,29 @@ class IPayLinksService extends CI_Controller
echo json_encode('没找到数据!'); echo json_encode('没找到数据!');
return; return;
} }
public function note_order_modal($old_order,$pn_invoice = false ,$notice_time = false) {
$data = array();
$data['IPL_orderId'] = $pn_invoice;
if (!empty($pn_invoice)) {
$data['note'] = $this->Note_model->note_order($old_order,$notice_time);
if (!empty($data['note'])) {
if (!empty($pn_invoice)) {
$orderid_info = $this->analysis_orderid($pn_invoice);
} else {
$orderid_info = $this->analysis_orderid($data['note']->IPL_orderId);
}
if (!empty($orderid_info)) {
$orderid_info = json_decode($orderid_info);
$data['order_info'] = $this->IPayLinks_model->get_order($orderid_info->orderid, true, $orderid_info->ordertype);
}
$data["paytext"] = $this->payment_status();
echo json_encode($this->load->view('note_setting', $data, true));
return true;
}
}
echo json_encode('没找到数据!');
return;
}
//关闭note通知用于手动处理通知后 //关闭note通知用于手动处理通知后
public function close_note($pn_txn_id) { public function close_note($pn_txn_id) {
@ -852,6 +874,9 @@ class IPayLinksService extends CI_Controller
//用于HT--交易详情 //用于HT--交易详情
public function receipt($pm_transaction_id) { public function receipt($pm_transaction_id) {
if ( ! $pm_transaction_id) {
return false;
}
$data = array(); $data = array();
$data = $this->Note_model->note($pm_transaction_id); $data = $this->Note_model->note($pm_transaction_id);
$this->load->view('receipt_mail', $data); $this->load->view('receipt_mail', $data);

@ -42,7 +42,7 @@ class Note_model extends CI_Model {
public function search_date($date) { public function search_date($date) {
$this->init(); $this->init();
$search_sql = " AND pn.IPL_completeTime BETWEEN '$date 00:00:00' AND '$date 23:59:59' "; $search_sql = " AND pn.IPL_noticeTime BETWEEN '$date 00:00:00' AND '$date 23:59:59' ";
$this->search = $search_sql; $this->search = $search_sql;
$this->orderby=" ORDER BY CASE pn.IPL_sent WHEN 'sendfail' THEN 1 ELSE 2 END ,pn.IPL_sn DESC "; $this->orderby=" ORDER BY CASE pn.IPL_sent WHEN 'sendfail' THEN 1 ELSE 2 END ,pn.IPL_sn DESC ";
return $this->get_list(); return $this->get_list();
@ -55,6 +55,14 @@ class Note_model extends CI_Model {
return $this->get_list(); return $this->get_list();
} }
public function note_order($orderid,$notice_time)
{
$this->init();
$this->topnum=1;
$this->dealId=" AND pn.IPL_orderId=".$this->INFO->escape($orderid)." AND pn.IPL_noticeTime=".$this->INFO->escape($notice_time);
return $this->get_list();
}
public function search_key($search_key) { public function search_key($search_key) {
$this->init(); $this->init();
$this->topnum = 300; //限制最大数量,防止查询单词过短 $this->topnum = 300; //限制最大数量,防止查询单词过短
@ -81,7 +89,7 @@ class Note_model extends CI_Model {
* @author LYT <lyt@hainatravel.com> * @author LYT <lyt@hainatravel.com>
* @date 2017-08-29 * @date 2017-08-29
*/ */
public function save_ipl($IPL_dealId,$IPL_orderId,$IPL_currencyCode,$IPL_orderAmount,$IPL_payAmount,$IPL_stateCode,$IPL_acquiringTime,$IPL_completeTime,$IPL_memo,$IPL_payType,$IPL_resultCode=null,$IPL_resultMsg=null) { public function save_ipl($IPL_dealId,$IPL_orderId,$IPL_currencyCode,$IPL_orderAmount,$IPL_payAmount,$IPL_stateCode,$IPL_acquiringTime,$IPL_completeTime,$IPL_memo,$IPL_payType,$IPL_resultCode,$IPL_resultMsg) {
$sql = " $sql = "
INSERT INTO IPayLinksLog INSERT INTO IPayLinksLog
( (
@ -89,7 +97,7 @@ class Note_model extends CI_Model {
) )
VALUES VALUES
( (
?,?,?,?,?,?,?,?,?,'unsend', GETDATE(),?,?,? ?,?,?,?,?,?,?,?,?,'unsend', GETDATE(),?,?,N?
) )
"; ";
$query = $this->INFO->query($sql, $query = $this->INFO->query($sql,
@ -103,8 +111,6 @@ class Note_model extends CI_Model {
,$IPL_completeTime ,$IPL_completeTime
,$IPL_memo ,$IPL_memo
,$IPL_payType ,$IPL_payType
,$IPL_payer
,$IPL_payerEmail
,$IPL_resultCode ,$IPL_resultCode
,$IPL_resultMsg ,$IPL_resultMsg
)); ));

@ -79,23 +79,24 @@
<div class="tourSelected pay_form"> <div class="tourSelected pay_form">
<ul class="row"> <ul class="row">
<li><label class="col-md-12 col-xs-12 orderinfo_label">Tracking Code:</label><label class="col-md-12 col-xs-12"> <li><label class="col-md-12 col-xs-12 orderinfo_label">Tracking Code:</label><label class="col-md-12 col-xs-12">
<?php if($track_code) {echo $track_code;}else{echo $orderId;} ?> <?php echo $orderId; ?>
</label></li>
<li><label class="col-md-12 col-xs-12 orderinfo_label">Travel Advisor:</label> <label class="col-md-12 col-xs-12">
<?php if($advisor) echo $advisor; ?>
</label></li> </label></li>
<li>
<label class="col-md-12 col-xs-12 orderinfo_label">Total:</label>
<label class="col-md-12 col-xs-12"><span class="text-danger">
<?php if($amount) echo $amount; ?>
</span>
<?php if($currencyCode) echo $currencyCode; ?>
</label>
</li>
<li><label class="col-md-12 col-xs-12 orderinfo_label">Content:</label><label class="col-md-12 col-xs-12"> <li><label class="col-md-12 col-xs-12 orderinfo_label">Description:</label>
<?php if($content) echo $content; ?> </li>
</label></li> <li>
<li><label class="col-md-12 col-xs-12 orderinfo_label">Total:</label> <label class="col-md-24 col-xs-24">
<label class="col-md-12 col-xs-12"><span class="text-danger"> <?php if($description) echo $description; ?>
<?php if($amount) echo $amount; ?> </label>
</span> </li>
<?php if($currencyCode) echo $currencyCode; ?>
</label></li>
<li><label class="col-md-12 col-xs-12 orderinfo_label">Beneficiary:</label>
<label class="col-md-12 col-xs-12">China Highlights International Travel Service Co., Ltd</label> </li>
</ul> </ul>
</div> </div>
</div> </div>

@ -58,7 +58,7 @@
<!-- left --> <!-- left -->
<div class="col-md-4 col-xs-24"> <div class="col-md-4 col-xs-24">
<div class="row"> <div class="row">
<form method="post" id="search_list" action="http://www.mycht.cn/webht.php/apps/pay/note_list/"> <form method="post" id="search_list" action="http://www.mycht.cn/webht.php/apps/pay/ipaylinksservice/note_list/">
<div class="input-group"> <div class="input-group">
<input type="text" name="keywords" value="<?php echo isset($search_key) ? $search_key : ''; ?>" class="form-control" placeholder="订单号" style="height: 33px;-webkit-box-shadow: inset 0 0px 0px rgba(0,0,0,0.075);box-shadow: inset 0 0px 0px rgba(0,0,0,0.075);border-bottom:1px solid #ddd;"> <input type="text" name="keywords" value="<?php echo isset($search_key) ? $search_key : ''; ?>" class="form-control" placeholder="订单号" style="height: 33px;-webkit-box-shadow: inset 0 0px 0px rgba(0,0,0,0.075);box-shadow: inset 0 0px 0px rgba(0,0,0,0.075);border-bottom:1px solid #ddd;">
<span class="input-group-addon search-btn" onclick="$('#search_list').submit();"></span> <span class="input-group-addon search-btn" onclick="$('#search_list').submit();"></span>
@ -68,11 +68,11 @@
</div> </div>
<p class="btn-lg"></p> <p class="btn-lg"></p>
<ul class="list-unstyled hidden-xs links"> <ul class="list-unstyled hidden-xs links">
<li><a class="text-primary" href="http://www.mycht.cn/webht.php/apps/pay/note_list">&gt;全部收款邮件</a></li> <li><a class="text-primary" href="http://www.mycht.cn/webht.php/apps/pay/ipaylinksservice/note_list">&gt;全部收款邮件</a></li>
<li class="btn-sm"></li> <li class="btn-sm"></li>
<li><a class="text-primary" href="http://www.mycht.cn/webht.php/apps/pay/note_faillist" >&gt;错误通知列表</a></li> <li><a class="text-primary" href="http://www.mycht.cn/webht.php/apps/pay/ipaylinksservice/note_faillist" >&gt;错误通知列表</a></li>
<li class="btn-sm"></li> <li class="btn-sm"></li>
<li><a class="text-primary" href="http://www.mycht.cn/webht.php/apps/pay/batch_send_note" target="_blank">&gt;手动处理通知</a></li> <li><a class="text-primary" href="http://www.mycht.cn/webht.php/apps/pay/ipaylinksservice/batch_send_note" target="_blank">&gt;手动处理通知</a></li>
<li class="btn-sm"></li> <li class="btn-sm"></li>
<li><a class="text-primary" href="http://share.chtcdn.com/info.php/sendmail/send_mail" target="_blank">&gt;发送邮件</a></li> <li><a class="text-primary" href="http://share.chtcdn.com/info.php/sendmail/send_mail" target="_blank">&gt;发送邮件</a></li>
<li class="btn-lg"></li> <li class="btn-lg"></li>
@ -93,7 +93,7 @@
<li class="col-sm-2 "><strong>#</strong></li> <li class="col-sm-2 "><strong>#</strong></li>
<li class="col-sm-7 "><strong>主题</strong></li> <li class="col-sm-7 "><strong>主题</strong></li>
<li class="col-sm-4 "><strong>交易号</strong></li> <li class="col-sm-4 "><strong>交易号</strong></li>
<li class="col-sm-3 "><strong>款(北京)时间</strong></li> <li class="col-sm-3 "><strong>时间</strong></li>
<li class="col-sm-3 "><strong>通知时间</strong></li> <li class="col-sm-3 "><strong>通知时间</strong></li>
<li class="col-sm-3 "><strong>通知状态</strong></li> <li class="col-sm-3 "><strong>通知状态</strong></li>
</a> </a>
@ -105,7 +105,11 @@
<li class="col-sm-2 nopadding-L" style="overflow:hidden;word-break: break-all;height: 25px;"><?php echo ($key + 1); ?></li> <li class="col-sm-2 nopadding-L" style="overflow:hidden;word-break: break-all;height: 25px;"><?php echo ($key + 1); ?></li>
<li class="col-sm-7 nopadding-L" style="overflow:hidden;word-break: break-all;height: 25px;"> <li class="col-sm-7 nopadding-L" style="overflow:hidden;word-break: break-all;height: 25px;">
<a class="seen" target="_blank" href="http://www.mycht.cn/webht.php/apps/pay/receipt/<?php echo $item->IPL_dealId; ?>"> <?php if ($item->IPL_dealId) { ?>
<a class="seen" target="_blank" href="http://www.mycht.cn/webht.php/apps/pay/ipaylinksservice/receipt/<?php echo $item->IPL_dealId; ?>">
<?php } else {?>
<a class="seen" target="_blank" href="#">
<?php } ?>
<?php echo $item->IPL_orderId . ' / ' . $item->IPL_payAmount . $item->IPL_currencyCode; ?> <?php echo $item->IPL_orderId . ' / ' . $item->IPL_payAmount . $item->IPL_currencyCode; ?>
</a></li> </a></li>
@ -126,7 +130,7 @@
$class_css = 'btn-danger'; $class_css = 'btn-danger';
$show_send = $item->IPL_sent; $show_send = $item->IPL_sent;
} }
?><a href="javascript:void(0);" title="<?php echo $item->IPL_resultMsg; ?>" onclick="show_order_modal('<?php echo $item->IPL_dealId; ?>', '<?php echo $item->IPL_orderId; ?>')" class="btn btn-sm <?php echo $class_css; ?>"><?php echo $show_send; ?></a> ?><a href="javascript:void(0);" title="<?php echo $item->IPL_resultMsg; ?>" onclick="show_order_modal('<?php echo $item->IPL_dealId; ?>', '<?php echo $item->IPL_orderId; ?>','<?php echo $item->IPL_noticeTime; ?>','<?php echo $item->IPL_orderId; ?>')" class="btn btn-sm <?php echo $class_css; ?>"><?php echo $show_send; ?></a>
</li> </li>
</ul> </ul>
@ -176,17 +180,18 @@
defaultDate: '<?php echo $date; ?>', defaultDate: '<?php echo $date; ?>',
dateFormat: 'yy-mm-dd', dateFormat: 'yy-mm-dd',
onSelect: function(dateText) { onSelect: function(dateText) {
window.location.href = 'http://www.mycht.cn/webht.php/apps/pay/note_list/?date=' + dateText; window.location.href = 'http://www.mycht.cn/webht.php/apps/pay/ipaylinksservice/note_list?date=' + dateText;
} }
}); });
$(".ui-datepicker").css('width', '15.7em'); $(".ui-datepicker").css('width', '15.7em');
}); });
function show_order_modal(pn_txn_id, pn_invoice) { function show_order_modal(pn_txn_id, pn_invoice,noticeTime,old_order) {
if (pn_txn_id) {
$.ajax({ $.ajax({
type: "get", type: "get",
dataType: "json", dataType: "json",
url: 'http://www.mycht.cn/webht.php/apps/pay/note_modal/' + pn_txn_id + '/' + pn_invoice, url: 'http://www.mycht.cn/webht.php/apps/pay/ipaylinksservice/note_modal/' + pn_txn_id + '/' + pn_invoice + '/' + noticeTime,
success: function(data, textStatus) { success: function(data, textStatus) {
$('#modal_set_orderid_body').html(data); $('#modal_set_orderid_body').html(data);
$('#modal_set_orderid').modal('show'); $('#modal_set_orderid').modal('show');
@ -195,6 +200,20 @@
alert('\u53d1\u751f\u9519\u8bef\uff0c\u8bf7\u8054\u7cfbYCC...'); alert('\u53d1\u751f\u9519\u8bef\uff0c\u8bf7\u8054\u7cfbYCC...');
} }
}); });
} else {
$.ajax({
type: "get",
dataType: "json",
url: '/webht.php/apps/pay/ipaylinksservice/note_order_modal/' + old_order + '/' + pn_invoice + '/' + noticeTime,
success: function(data, textStatus) {
$('#modal_set_orderid_body').html(data);
$('#modal_set_orderid').modal('show');
},
error: function(msg) {
alert('\u53d1\u751f\u9519\u8bef\uff0c\u8bf7\u8054\u7cfbYCC...');
}
});
}
} }
function close_note() { function close_note() {
@ -203,7 +222,7 @@
$.ajax({ $.ajax({
type: "get", type: "get",
dataType: "json", dataType: "json",
url: 'http://www.mycht.cn/webht.php/apps/pay/close_note/' + pn_txn_id, url: 'http://www.mycht.cn/webht.php/apps/pay/ipaylinksservice/close_note/' + pn_txn_id,
success: function(data, textStatus) { success: function(data, textStatus) {
alert(data); alert(data);
}, },

@ -1,16 +1,16 @@
<form action="http://www.mycht.cn/webht.php/apps/pay/note_modal_save" method="post" id="form_modal_orderid" name="form_modal_orderid"> <form action="http://www.mycht.cn/webht.php/apps/pay/iPayLinksService/note_modal_save" method="post" id="form_modal_orderid" name="form_modal_orderid">
<dl class="dl-horizontal"> <dl class="dl-horizontal">
<dt>交易号</dt> <dt>交易号</dt>
<dd><?php echo $note->IPL_dealId ?> ( <?php echo $paytext[intval(trim($note->IPL_stateCode))]; ?> )</dd> <dd><?php echo $note->IPL_dealId ?> ( <?php echo $paytext[intval(trim($note->IPL_stateCode))].".".$note->IPL_resultMsg; ?> )</dd>
</dl> </dl>
<dl class="dl-horizontal"> <dl class="dl-horizontal">
<dt>付款金额</dt> <dt>付款金额</dt>
<dd><?php echo $note->IPL_currencyCode . ' ' . $note->IPL_payAmount ?></dd> <dd><?php echo $note->IPL_currencyCode . ' ' . $note->IPL_orderAmount ?></dd>
</dl> </dl>
<dl class="dl-horizontal"> <dl class="dl-horizontal">
<dt>付款时间</dt> <dt>付款时间</dt>
<dd><?php echo $note->IPL_completeTime; ?></dd> <dd><?php echo $note->IPL_acquiringTime; ?></dd>
</dl> </dl>
@ -19,7 +19,7 @@
<dd> <dd>
<div class="input-group"> <div class="input-group">
<input type="text" class="form-control" id="pn_invoice" name="pn_invoice" value="<?php echo!empty($IPL_orderId) ? $IPL_orderId : $note->IPL_orderId; ?>"> <input type="text" class="form-control" id="pn_invoice" name="pn_invoice" value="<?php echo!empty($IPL_orderId) ? $IPL_orderId : $note->IPL_orderId; ?>">
<span class="input-group-addon search-btn" onclick="show_order_modal('<?php echo $note->IPL_dealId; ?>', $('#pn_invoice').val())"></span> <span class="input-group-addon search-btn" onclick="show_order_modal('<?php echo $note->IPL_dealId; ?>', $('#pn_invoice').val(),'<?php echo $note->IPL_noticeTime; ?>','<?php echo $note->IPL_orderId; ?>')"></span>
</div> </div>
<label class="text-danger">订单号形如: 160414408_B , B商务订单JJ160321052_T,T传统订单请务必加上后缀</label> <label class="text-danger">订单号形如: 160414408_B , B商务订单JJ160321052_T,T传统订单请务必加上后缀</label>
</dd> </dd>

Loading…
Cancel
Save