238 lines
11 KiB
PHP
238 lines
11 KiB
PHP
<?php
|
|
namespace Admin\Controller;
|
|
use Think\Controller;
|
|
class IndexController extends AdminController {
|
|
public function __construct(){
|
|
parent::__construct();
|
|
define('UID',is_login());
|
|
if( !UID ){// 还没登录 跳转到登录页面
|
|
$this->redirect('Public/login');
|
|
}
|
|
}
|
|
//首页
|
|
public function index(){
|
|
//删除过期访问数据
|
|
$year_time=mktime(0, 0, 0, date('m'),date('d'), date('Y')-1);
|
|
$where1["daytime"]=array("LT",$year_time);
|
|
M("visit")->where($where1)->delete();
|
|
$day_time=mktime(0, 0, 0, date('m'),date('d')-2, date('Y'));
|
|
$where2["visit_time"]=array("LT",$day_time);
|
|
M("visit_48")->where($where2)->delete();
|
|
//
|
|
$new_feedback=M("feedback")->where("is_read=0")->count();
|
|
$this->new_feedback=(int)$new_feedback;
|
|
//
|
|
$this->display();
|
|
}
|
|
//设置语言
|
|
public function setAdminLang($admin_lang){
|
|
if($admin_lang&&!$this->LANG_OPT[$admin_lang]){
|
|
$this->error("语言不存在");
|
|
}else{
|
|
if($admin_lang){
|
|
session("admin_lang",$admin_lang);
|
|
}else{
|
|
session("admin_lang",null);
|
|
}
|
|
redirect($_SERVER["HTTP_REFERER"]);
|
|
}
|
|
}
|
|
//修改密码
|
|
public function editorpass(){
|
|
$this->my=M("user")->find(UID);
|
|
if(IS_POST){
|
|
$rules = array(
|
|
array('old_password','require','请输入原密码!',1),
|
|
array("user_password","6,40","密码长度需要6位以上",1,"length"),
|
|
array('repassword','user_password','确认密码不正确',0,'confirm'), // 验证确认密码是否和密码一致
|
|
);
|
|
if (!M("user")->validate($rules)->create()){
|
|
$this->error(M("user")->getError());
|
|
}else{
|
|
//原始密码是否正确
|
|
if(md6(I("post.old_password"))!=$this->my[user_password]){
|
|
$this->error("原始密码不正确");
|
|
}
|
|
//
|
|
$user_password=md6(I("post.user_password"));
|
|
M("user")->save(array("user_id"=>UID,"user_password"=>$user_password));
|
|
$this->success("密码修改成功");
|
|
}
|
|
}else{
|
|
$this->display();
|
|
}
|
|
}
|
|
//访问统计
|
|
public function getTongji(){
|
|
$Model = new \Think\Model();
|
|
$type=$_GET["type"];
|
|
//昨天
|
|
if($type=="yesterday"){
|
|
$start_time=strtotime(date("Y-m-d",strtotime("-1 day"))); //昨天开始时间
|
|
$end_time=strtotime(date("Y-m-d"))-1; //昨天结束时间也是今天开始时间-1
|
|
//0-23点
|
|
for($i=0;$i<=23;$i++){
|
|
//名称
|
|
$for["bar_name"][]=$i;
|
|
$start_time2=strtotime(date("Y-m-d",strtotime("-1 day"))." ".$i.":00:00");
|
|
$end_time2=strtotime(date("Y-m-d",strtotime("-1 day"))." ".$i.":59:59");
|
|
//IP统计
|
|
$where=array();
|
|
$where["visit_time"]=array("between",array($start_time2,$end_time2));
|
|
$ip_total=M("visit_48")->where($where)->group("ip")->select();
|
|
$for["bar_ip_total"][]=count($ip_total);
|
|
//PV统计
|
|
$for["bar_pv_total"][]=M("visit_48")->where($where)->count();
|
|
}
|
|
//总计统计
|
|
$alltotal=M("visit")->where(array("daytime"=>$start_time))->find();
|
|
|
|
}
|
|
//最近7天的
|
|
else if($type=="week"){
|
|
$start_time=strtotime(date("Y-m-d",strtotime("-7 day"))); //开始时间
|
|
$end_time=time(); //结束时间
|
|
//
|
|
for($i=6;$i>=0;$i--){
|
|
//名称
|
|
$for["bar_name"][]=date("m-d",strtotime("-".$i." day"));
|
|
$daytime=strtotime(date("Y-m-d",strtotime("-".$i." day")));
|
|
//IP统计
|
|
$where=array();
|
|
$where["daytime"]=$daytime;
|
|
$total=M("visit")->where($where)->find();
|
|
$for["bar_ip_total"][]=(int)$total['ip'];
|
|
//PV统计
|
|
$for["bar_pv_total"][]=(int)$total['pv'];
|
|
}
|
|
//总计统计
|
|
$total2=$Model->query("select SUM(ip)as ip,SUM(pv)as pv,SUM(visit_search)as visit_search,SUM(visit_link)as visit_link,SUM(visit_website)as visit_website,SUM(engine_baidu)as engine_baidu,SUM(engine_google)as engine_google,SUM(engine_sogou)as engine_sogou,SUM(engine_360)as engine_360 from __VISIT__ where daytime between ".$start_time." and ".$end_time." limit 1");
|
|
$alltotal=$total2[0];
|
|
}
|
|
//最近30天的
|
|
else if($type=="month"){
|
|
$start_time=strtotime(date("Y-m-d",strtotime("-30 day"))); //开始时间
|
|
$end_time=time(); //结束时间
|
|
//
|
|
for($i=29;$i>=0;$i--){
|
|
//名称
|
|
$for["bar_name"][]=date("m-d",strtotime("-".$i." day"));
|
|
$daytime=strtotime(date("Y-m-d",strtotime("-".$i." day")));
|
|
//IP统计
|
|
$where=array();
|
|
$where["daytime"]=$daytime;
|
|
$total=M("visit")->where($where)->find();
|
|
$for["bar_ip_total"][]=(int)$total['ip'];
|
|
//PV统计
|
|
$for["bar_pv_total"][]=(int)$total['pv'];
|
|
}
|
|
//总计统计
|
|
$total2=$Model->query("select SUM(ip)as ip,SUM(pv)as pv,SUM(visit_search)as visit_search,SUM(visit_link)as visit_link,SUM(visit_website)as visit_website,SUM(engine_baidu)as engine_baidu,SUM(engine_google)as engine_google,SUM(engine_sogou)as engine_sogou,SUM(engine_360)as engine_360 from __VISIT__ where daytime between ".$start_time." and ".$end_time." limit 1");
|
|
$alltotal=$total2[0];
|
|
}
|
|
//最近半年
|
|
else if($type=="halfyear"){
|
|
$start_time=mktime(0, 0, 0,date('m')-5,1, date('Y')); //开始时间
|
|
$end_time=time(); //结束时间
|
|
//
|
|
for($i=5;$i>=0;$i--){
|
|
//名称
|
|
$for["bar_name"][]=date("Y-m",mktime(0, 0, 0, date('m')-$i,1, date('Y')));
|
|
$start_time2=mktime(0, 0, 0, date('m')-$i,1, date('Y'));
|
|
$end_time2=mktime(0, 0, 0, date('m')-($i-1),0, date('Y'));
|
|
$total=$Model->query("select SUM(ip)as ip,SUM(pv)as pv from __VISIT__ where daytime between ".$start_time2." and ".$end_time2." limit 1");
|
|
//IP统计
|
|
$for["bar_ip_total"][]=(int)$total[0]['ip'];
|
|
//PV统计
|
|
$for["bar_pv_total"][]=(int)$total[0]['pv'];
|
|
}
|
|
//总计统计
|
|
$total2=$Model->query("select SUM(ip)as ip,SUM(pv)as pv,SUM(visit_search)as visit_search,SUM(visit_link)as visit_link,SUM(visit_website)as visit_website,SUM(engine_baidu)as engine_baidu,SUM(engine_google)as engine_google,SUM(engine_sogou)as engine_sogou,SUM(engine_360)as engine_360 from __VISIT__ where daytime between ".$start_time." and ".$end_time." limit 1");
|
|
$alltotal=$total2[0];
|
|
}
|
|
//最近一年
|
|
else if($type=="year"){
|
|
$start_time=mktime(0, 0, 0,date('m')-11,1, date('Y')); //开始时间
|
|
$end_time=time(); //结束时间
|
|
//
|
|
for($i=11;$i>=0;$i--){
|
|
//名称
|
|
$for["bar_name"][]=date("Y/m",mktime(0, 0, 0, date('m')-$i,1, date('Y')));
|
|
$start_time2=mktime(0, 0, 0, date('m')-$i,1, date('Y'));
|
|
$end_time2=mktime(0, 0, 0, date('m')-($i-1),0, date('Y'));
|
|
$total=$Model->query("select SUM(ip)as ip,SUM(pv)as pv from __VISIT__ where daytime between ".$start_time2." and ".$end_time2." limit 1");
|
|
//IP统计
|
|
$for["bar_ip_total"][]=(int)$total[0]['ip'];
|
|
//PV统计
|
|
$for["bar_pv_total"][]=(int)$total[0]['pv'];
|
|
}
|
|
//总计统计
|
|
$total2=$Model->query("select SUM(ip)as ip,SUM(pv)as pv,SUM(visit_search)as visit_search,SUM(visit_link)as visit_link,SUM(visit_website)as visit_website,SUM(engine_baidu)as engine_baidu,SUM(engine_google)as engine_google,SUM(engine_sogou)as engine_sogou,SUM(engine_360)as engine_360 from __VISIT__ where daytime between ".$start_time." and ".$end_time." limit 1");
|
|
$alltotal=$total2[0];
|
|
}
|
|
//今天
|
|
else{
|
|
$start_time=strtotime(date("Y-m-d")." 00:00:00");
|
|
$end_time=date("Y-m-d")." 23:59:59";
|
|
//0-23点
|
|
for($i=0;$i<=23;$i++){
|
|
//名称
|
|
$for["bar_name"][]=$i;
|
|
$start_time2=strtotime(date("Y-m-d")." ".$i.":00:00");
|
|
$end_time2=strtotime(date("Y-m-d")." ".$i.":59:59");
|
|
//IP统计
|
|
$where=array();
|
|
$where["visit_time"]=array("between",array($start_time2,$end_time2));
|
|
$ip_total=M("visit_48")->where($where)->group("ip")->select();
|
|
$for["bar_ip_total"][]=count($ip_total);
|
|
//PV统计
|
|
$for["bar_pv_total"][]=M("visit_48")->where($where)->count();
|
|
}
|
|
//总计统计
|
|
$alltotal=M("visit")->where(array("daytime"=>$start_time))->find();
|
|
}
|
|
//开始数据统计查询
|
|
$for['pie_name']=array("直达","跳转","百度","谷歌","搜狗","360");
|
|
$for['pie_data1']=array(
|
|
array(
|
|
"name"=>"直达",
|
|
"value"=>(int)$alltotal["visit_website"],
|
|
),
|
|
array(
|
|
"name"=>"跳转",
|
|
"value"=>(int)$alltotal["visit_link"],
|
|
),
|
|
array(
|
|
"name"=>"搜索引擎",
|
|
"value"=>(int)$alltotal["visit_search"],
|
|
),
|
|
);
|
|
$for['pie_data2']=array(
|
|
array(
|
|
"name"=>"直达",
|
|
"value"=>(int)$alltotal["visit_website"],
|
|
),
|
|
array(
|
|
"name"=>"跳转",
|
|
"value"=>(int)$alltotal["visit_link"],
|
|
),
|
|
array(
|
|
"name"=>"百度",
|
|
"value"=>(int)$alltotal["engine_baidu"],
|
|
),
|
|
array(
|
|
"name"=>"谷歌",
|
|
"value"=>(int)$alltotal["engine_google"],
|
|
),
|
|
array(
|
|
"name"=>"搜狗",
|
|
"value"=>(int)$alltotal["engine_sogou"],
|
|
),
|
|
array(
|
|
"name"=>"360",
|
|
"value"=>(int)$alltotal["engine_360"],
|
|
),
|
|
);
|
|
$this->success($for);
|
|
}
|
|
} |