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 算力,解读结果公开显示在下面。
还没有人解读过这个文件。