From a2ee4ea12ef816027bb515df778fcf42332458e4 Mon Sep 17 00:00:00 2001 From: 1099438829 <1099438829@qq.com> Date: Sun, 9 May 2021 23:45:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E9=80=A0=E9=83=A8=E5=88=86=E5=8F=82?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/index/controller/Base.php | 71 +++++++--------------------------- app/index/controller/Index.php | 11 ------ app/index/model/PvLog.php | 50 ++++++++++++++++++++++++ app/index/model/UrlLog.php | 33 ++++++++++++++++ app/index/model/UvLog.php | 51 ++++++++++++++++++++++++ 5 files changed, 148 insertions(+), 68 deletions(-) create mode 100644 app/index/model/PvLog.php create mode 100644 app/index/model/UvLog.php diff --git a/app/index/controller/Base.php b/app/index/controller/Base.php index 3a9908e..083f24a 100644 --- a/app/index/controller/Base.php +++ b/app/index/controller/Base.php @@ -3,6 +3,9 @@ declare (strict_types = 1); namespace app\index\controller; use app\BaseController; +use app\index\model\PvLog; +use app\index\model\UrlLog; +use app\index\model\UvLog; use think\facade\Config; use think\facade\Db; use think\facade\View; @@ -37,43 +40,10 @@ class Base extends BaseController } //判断后台统计配置是否开启 1 开启 if ($systemConfig["web_statistics"] == 1) { - //pv表 zz_pv_log 栏目存在 点击进入页面后 - //判断 时间 0-1点 为time=0 H 24小时制 - $date_data = date("Y-m-d"); - $hour = date('H'); - $pvInfo = Db::name('pv_log') - ->where('date',$date_data) - ->where('time','=',$hour) - ->value('id'); - if ($pvInfo) { - Db::name('pv_log') - ->where('id', $pvInfo) - ->inc('view') - ->update(); - } else { - $pvData['view'] = 1; - $pvData['date'] = $date_data; - $pvData['time'] = $hour; - $pvData['create_time'] = time(); - Db::name('pv_log')->insert($pvData); - } - //uv表 - //获取ip - $ipData = request()->ip(); - //查询该ip今天是否存在过 - $uvInfo = Db::name('uv_log') - ->where('date',$date_data) - ->where('ip',$ipData) - ->field('id') - ->find(); - //不存在 添加数据 - if (!$uvInfo) { - $uvData['ip'] = $ipData; - $uvData['time'] = $hour; - $uvData['date'] = $date_data; - $uvData['create_time'] = time(); - Db::name('uv_log')->insert($uvData); - } + //增加pv信息 + (new PvLog())->addLog(); + //增加uv信息 + (new UvLog())->addLog(); } //判断是否开启了伪静态 if ($systemConfig['web_rewrite']) { @@ -83,27 +53,14 @@ class Base extends BaseController } } - //统计url + /** + * url 统计 + * @param $title + * @author 李玉坤 + * @date 2021-05-09 23:44 + */ protected function urlrecord($title) { - $date_data = date("Y-m-d"); - //获取url - $urlInfo = request()->url(true); - //根据url和date字段判断数据库中是否存在该页面的记录 - $url_data = Db::name('url_log') - ->where('date',$date_data) - ->where('url',$urlInfo) - ->field('id') - ->find(); - if ($url_data) { - Db::name('url_log')->where('id',$url_data['id'])->inc('pv')->update(); - } else { - $dataUrl['url'] = $urlInfo; - $dataUrl['pv'] = 1; - $dataUrl['title'] = $title; - $dataUrl['date'] = $date_data; - $dataUrl['create_time'] = time(); - Db::name('url_log')->insert($dataUrl); - } + (new UrlLog())->addLog($title); } } \ No newline at end of file diff --git a/app/index/controller/Index.php b/app/index/controller/Index.php index 9d13fe2..8eb2d80 100644 --- a/app/index/controller/Index.php +++ b/app/index/controller/Index.php @@ -9,8 +9,6 @@ namespace app\index\controller; -use think\facade\Db; - /** * 应用入口 * Class Index @@ -35,13 +33,4 @@ class Index extends Base $this->assign('cid',false); return $this->fetch(); } - - public function test($cid){ - if(!$cid){ - throw new Exception('请指定要获取的栏目分类id!'); - } - dd(get_document_category_children($cid)); - - } - } \ No newline at end of file diff --git a/app/index/model/PvLog.php b/app/index/model/PvLog.php new file mode 100644 index 0000000..7f975ef --- /dev/null +++ b/app/index/model/PvLog.php @@ -0,0 +1,50 @@ +where('date',$date_data) + ->where('time','=',$hour) + ->value('id'); + if ($pvInfo) { + $model->where('id', $pvInfo) + ->inc('view') + ->update(); + } else { + $pvData = [ + 'view' => 1, + 'time' => $hour, + 'date' => $date_data + ]; + $model->save($pvData); + } + } +} \ No newline at end of file diff --git a/app/index/model/UrlLog.php b/app/index/model/UrlLog.php index 3c94101..90cc8c0 100644 --- a/app/index/model/UrlLog.php +++ b/app/index/model/UrlLog.php @@ -14,4 +14,37 @@ use think\Model; */ class UrlLog extends Model { + // 开启自动写入时间戳字段 + protected $autoWriteTimestamp = 'datetime'; + // 定义时间戳字段名 + protected $createTime = 'create_time'; + protected $updateTime = 'update_time'; + + /** + * url访问记录 + * @author 李玉坤 + * @date 2021-05-09 23:40 + */ + public function addLog($title){ + $model = new self(); + $date_data = date("Y-m-d"); + //获取url + $urlInfo = request()->url(true); + //根据url和date字段判断数据库中是否存在该页面的记录 + $url_data = $model->where('date',$date_data) + ->where('url',$urlInfo) + ->field('id') + ->find(); + if ($url_data) { + $model->where('id',$url_data['id'])->inc('pv')->update(); + } else { + $dataUrl = [ + 'url' => $urlInfo, + 'pv' => 1, + 'title' => $title, + 'date' => $date_data + ]; + $model->save($dataUrl); + } + } } \ No newline at end of file diff --git a/app/index/model/UvLog.php b/app/index/model/UvLog.php new file mode 100644 index 0000000..52a62c7 --- /dev/null +++ b/app/index/model/UvLog.php @@ -0,0 +1,51 @@ +ip(); + //查询该ip今天是否存在过 + $uvInfo = $model->where('date',$date_data) + ->where('ip',$ipData) + ->field('id') + ->find(); + //不存在 添加数据 + if (!$uvInfo) { + $uvData = [ + 'ip' => $ipData, + 'time' => $hour, + 'date' => $date_data + ]; + $model->save($uvData); + } + } +} \ No newline at end of file