123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- <?php
- namespace App\Basic\Services;
- use App\Base\Services\BaseService;
- use App\Basic\Models\UrlsLogModel;
- use App\Basic\Models\UrlsModel;
- class UrlsService extends BaseService
- {
- private $urlsLogModel;
- public function __construct(UrlsModel $model, UrlsLogModel $urlsLogModel)
- {
- $this->model = $model;
- $this->urlsLogModel = $urlsLogModel;
- }
- /**
- * 添加短地址访问日志
- */
- public function addLog($urlsId, $ip)
- {
- $data = [
- "urls_id" => $urlsId,
- "ip" => $ip
- ];
- return $this->urlsLogModel->insertData($data);
- }
- /**
- * 日志详情
- */
- public function findOneLogInfo($params, $fields = '')
- {
- $map = [];
- if (empty($params['urls_id'])) {
- $map['urls_id'] = $params['urls_id'];
- }
- if (empty($params['ip'])) {
- $map['ip'] = $params['ip'];
- }
- return $this->urlsLogModel->findOneBy($map, $fields);
- }
- /**
- * 获取短地址详情
- */
- public function getShortUrlHits($urls)
- {
- $map = [];
- $keys = $this->getKeyByUrls($urls);
- if (is_array($urls)) {
- $map['key'] = ['in', $keys];
- } else {
- $map['key'] = $keys;
- }
- $list = $this->findBy($map, '`key`,hits,uv');
- if (is_array($urls)) {
- return $list;
- } else {
- return $list[0] ?? [];
- }
- }
- /**
- * 获取url对应的key
- */
- public function getKeyByUrls($urls)
- {
- $keys = [];
- if (is_array($urls)) {
- foreach ($urls as $url) {
- $pathInfo = parse_url($url);
- $keys[] = trim($pathInfo['path'], '/');
- }
- return $keys;
- } else {
- $pathInfo = parse_url($urls);
- return trim($pathInfo['path'], '/');
- }
- }
- }
|