mirror of
https://gitee.com/ulthon/ulthon_information.git
synced 2026-03-04 00:24:29 +08:00
增加访问分析缓存
This commit is contained in:
@@ -6,6 +6,7 @@ namespace app\index\controller;
|
||||
|
||||
use app\model\Post as ModelPost;
|
||||
use app\model\PostVisit;
|
||||
use DeviceDetector\DeviceDetector;
|
||||
use think\facade\Cache;
|
||||
use think\facade\Db;
|
||||
use think\facade\View;
|
||||
@@ -45,8 +46,7 @@ class Post extends Common
|
||||
|
||||
$model_post->save();
|
||||
|
||||
$this->recordVisit($model_post->id);
|
||||
|
||||
|
||||
$list_last_visit = PostVisit::where('post_id', $model_post->id)
|
||||
->order('id desc')
|
||||
->group('ip,uid')
|
||||
@@ -55,6 +55,9 @@ class Post extends Common
|
||||
->select();
|
||||
View::assign('post', $model_post);
|
||||
View::assign('list_last_visit', $list_last_visit);
|
||||
|
||||
$model_visit = $this->recordVisit($model_post->id);
|
||||
View::assign('model_visit', $model_visit);
|
||||
|
||||
return View::fetch();
|
||||
}
|
||||
@@ -67,6 +70,37 @@ class Post extends Common
|
||||
$model_visit->avatar = $this->userinfo['avatar'] ?? '';
|
||||
$model_visit->nickname = $this->userinfo['nickname'] ?? '';
|
||||
$model_visit->ip = $this->request->ip();
|
||||
|
||||
$model_visit->save();
|
||||
|
||||
return $model_visit;
|
||||
}
|
||||
|
||||
public function parseVisit($visit_id)
|
||||
{
|
||||
$model_visit = PostVisit::find($visit_id);
|
||||
|
||||
$user_agent = $this->request->header('user-agent');
|
||||
|
||||
$dd = new DeviceDetector($user_agent);
|
||||
|
||||
$cache = Cache::instance();
|
||||
|
||||
$dd->setCache(
|
||||
new \DeviceDetector\Cache\PSR16Bridge($cache)
|
||||
);
|
||||
|
||||
$dd->parse();
|
||||
|
||||
$model_visit->client_bot = $dd->getBot() ?: '';
|
||||
$model_visit->client = $dd->getClient();
|
||||
$model_visit->client_os = $dd->getOs();
|
||||
$model_visit->client_device_name = $dd->getDeviceName();
|
||||
$model_visit->client_brand_name = $dd->getBrandName();
|
||||
$model_visit->client_model = $dd->getModel();
|
||||
|
||||
$model_visit->save();
|
||||
|
||||
return json_message();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user