qa-ifish7/web/Application/Admin/Controller/IndexController.class.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);
}
}