// +---------------------------------------------------------------------- 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([], '添加成功'); } }