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'], '/'); } } }