src/Biz/RefererLog/Service/Impl/RefererLogServiceImpl.php

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

<?php

namespace Biz\RefererLog\Service\Impl;

use Biz\BaseService;
use Biz\Common\CommonException;
use Biz\RefererLog\Dao\OrderRefererDao;
use Biz\RefererLog\Dao\RefererLogDao;
use AppBundle\Common\ArrayToolkit;
use Biz\RefererLog\Service\RefererLogService;
use Topxia\Service\Common\ServiceKernel;

class RefererLogServiceImpl extends BaseService implements RefererLogService
{
    public function addRefererLog($refererlog)
    {
        if ($this->ignoreLog($refererlog)) {
            return false;
        }
        if (!ArrayToolkit::requireds($refererlog, array('targetId', 'targetType', 'refererUrl'))) {
            $this->createNewException(CommonException::ERROR_PARAMETER_MISSING());
        }

        if (!in_array($refererlog['targetType'], array('course', 'openCourse', 'classroom', 'vip'))) {
            throw $this->createServiceException("模块 {$refererlog['targetType']} 不允许添加RefererLog");
        }
        $user = $this->getCurrentUser();
        $refererlog = $this->prepareRefererUrl($refererlog);
        $refererlog['createdUserId'] = $user['id'];

        return $this->getRefererLogDao()->create($refererlog);
    }

    private function ignoreLog($refererlog)
    {
        //公开课管理页面不记录访问日志
        if ((bool) preg_match('/open\/course\/\d\/manage/', $refererlog['refererUrl'])) {
            return true;
        }
        //后台管理页面
        if ((bool) preg_match('/admin/', $refererlog['refererUrl'])) {
            return true;
        }

        return false;
    }

    public function getRefererLogById($id)
    {
        return $this->getRefererLogDao()->get($id);
    }

    public function waveRefererLog($id, $field, $diff)
    {
        return $this->getRefererLogDao()->wave(array($id), array($field => $diff));
    }

    public function findRefererLogsGroupByTargetId($targetType, $orderBy, $startTime, $endTime, $start, $limit)
    {
        return $this->getRefererLogDao()->findRefererLogsGroupByTargetId($targetType, $orderBy, $startTime, $endTime, $start, $limit);

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。