作者 刘锟

自建站接口转接

  1 +<?php
  2 +
  3 +namespace App\Http\Controllers\Api;
  4 +
  5 +use App\Models\Visit\SyncSubmitTask;
  6 +use App\Services\CosService;
  7 +use Illuminate\Http\Request;
  8 +
  9 +class SelfSiteController extends BaseController
  10 +{
  11 + /**
  12 + * 自建站接口埋点
  13 + * @param Request $request
  14 + * @return false|string
  15 + * @author Akun
  16 + * @date 2024/05/16 11:21
  17 + */
  18 + public function selfSiteApi(Request $request)
  19 + {
  20 + $data = $request->input('data');//访问数据
  21 + $domain = $request->input('domain');//访问域名
  22 + $ip = $request->input('ip');//访问ip
  23 + $referer = $request->input('referer');//访问来源
  24 + $user_agent = $request->input('user_agent');//访问头信息
  25 + $type = $request->input('type');//类型:visit,inquiry
  26 + $traffic = $request->input('traffic', SyncSubmitTask::TRAFFIC_DEFAULT);//是否引流
  27 + $files = $request->input('files', []);//文件
  28 +
  29 + if (!empty($files)) {
  30 + try {
  31 + foreach ($files as $key => $file) {
  32 + $cos = new CosService();
  33 + $fileinfo = $cos->checkInquiryFile($file);
  34 + $fileName = uniqid() . rand(10000, 99999) . '.' . $file->getClientOriginalExtension();
  35 + $path = $cos->uploadFile($file, '/inquiry/' . date('Ymd'), $fileName);
  36 + $data[$key] = [
  37 + 'path' => $path,
  38 + 'original_name' => $fileinfo['name'],
  39 + ];
  40 + }
  41 + } catch (\Exception $e) {
  42 + return $this->error('File upload fail');
  43 + }
  44 + }
  45 +
  46 + $array = [
  47 + 'data' => $data,
  48 + 'ip' => $ip,
  49 + 'domain' => $domain,
  50 + 'referer' => $referer,
  51 + 'user_agent' => $user_agent
  52 + ];
  53 + SyncSubmitTask::createTask($array, $type, $traffic);
  54 + return $this->success([]);
  55 + }
  56 +}
@@ -5,6 +5,7 @@ @@ -5,6 +5,7 @@
5 * Date: 2024/1/5 5 * Date: 2024/1/5
6 * Time: 14:16 6 * Time: 14:16
7 */ 7 */
  8 +
8 namespace App\Models\Visit; 9 namespace App\Models\Visit;
9 10
10 use App\Models\Base; 11 use App\Models\Base;
@@ -24,17 +25,22 @@ class SyncSubmitTask extends Base @@ -24,17 +25,22 @@ class SyncSubmitTask extends Base
24 const TYPE_INQUIRY = 'inquiry'; 25 const TYPE_INQUIRY = 'inquiry';
25 const TYPE_VISIT = 'visit'; 26 const TYPE_VISIT = 'visit';
26 27
  28 + const TRAFFIC_DEFAULT = 0;
  29 + const TRAFFIC_TRUE = 1;
  30 +
27 /** 31 /**
28 * @param $data 32 * @param $data
29 * @param string $type 33 * @param string $type
  34 + * @param int $traffic
30 * @return mixed 35 * @return mixed
31 */ 36 */
32 - public static function createTask($data, $type = self::TYPE_VISIT) 37 + public static function createTask($data, $type = self::TYPE_VISIT, $traffic = self::TRAFFIC_DEFAULT)
33 { 38 {
34 $task = new self(); 39 $task = new self();
35 $task->data = json_encode($data); 40 $task->data = json_encode($data);
36 $task->type = $type; 41 $task->type = $type;
  42 + $task->traffic = $traffic;
37 $task->save(); 43 $task->save();
38 return $task->id; 44 return $task->id;
39 } 45 }
40 -}  
  46 +}