1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- <?php
- // +----------------------------------------------------------------------
- // | 萤火商城系统 [ 致力于通过产品和服务,帮助商家高效化开拓市场 ]
- // +----------------------------------------------------------------------
- // | Copyright (c) 2017~2021 https://www.yiovo.com All rights reserved.
- // +----------------------------------------------------------------------
- // | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
- // +----------------------------------------------------------------------
- // | Author: 萤火科技 <admin@yiovo.com>
- // +----------------------------------------------------------------------
- declare (strict_types=1);
- namespace app\api\controller;
- use app\api\model\VisitRecord as VisitRecordModel;
- use app\api\service\User as UserService;
- use app\common\model\PromotionMonitor;
- /**
- * 统计浏览管理
- * Class VisitRecord
- * @package app\api\controller
- */
- class VisitRecord extends Controller
- {
- public function countRecord()
- {
- // dd(PromotionMonitor::getPageQrcode(1,4,16));
- // 当前用户ID
- $user = UserService::getCurrentLoginUser();
- $args = $this->request->get();
- $client = $args['client'] ?? 0;
- $visit_type = $args['visit_type'] ?? 0;
- $visit_type_id = $args['visit_type_id'] ?? 0;
- $stay_time = $args['stay_time'] ?? 0;
- if ($user) {//计算当前UV
- $count = VisitRecordModel::where('user_id', $user['user_id'])
- ->where('v_type', 1)
- ->where('client', $client)
- ->where('visit_type', $visit_type)
- ->where('visit_type_id', $visit_type_id)
- ->count();
- if (!$count) {//如果当前用户没有计算UV就添加一条
- (new VisitRecordModel)->save([
- 'v_type' => 1,
- 'client' => $client,
- 'visit_type' => $visit_type,
- 'user_id' => $user['user_id'],
- 'visit_type_id' => $visit_type_id,
- 'stay_time' => $stay_time
- ]);
- }
- } else {//未登录计算IP
- $ip = request()->ip();
- $count = VisitRecordModel::where('client_ip', $ip)
- ->where('v_type', 1)
- ->where('client', $args['client'])
- ->where('visit_type', $visit_type)
- ->where('visit_type_id', $visit_type_id)
- ->count();
- if (!$count) {//如果当前用户没有计算UV就添加一条
- (new VisitRecordModel)->save([
- 'v_type' => 1,
- 'client' => $client,
- 'visit_type' => $visit_type,
- 'user_id' => 0,
- 'client_ip' => $ip,
- 'visit_type_id' => $visit_type_id,
- 'stay_time' => $stay_time
- ]);
- }
- }
- //添加PV
- (new VisitRecordModel)->save([
- 'v_type' => 0,
- 'client' => 0,
- 'visit_type' => $visit_type,
- 'user_id' => 0,
- 'visit_type_id' => $visit_type_id,
- // 'stay_time' => $stay_time
- ]);
- return $this->renderSuccess([], '添加成功');
- }
- }
|