SelfSiteController.php 1.9 KB
<?php

namespace App\Http\Controllers\Api;

use App\Models\Visit\SyncSubmitTask;
use App\Services\CosService;
use Illuminate\Http\Request;

class SelfSiteController extends BaseController
{
    /**
     * 自建站接口埋点
     * @param Request $request
     * @return false|string
     * @author Akun
     * @date 2024/05/16 11:21
     */
    public function selfSiteApi(Request $request)
    {
        $data = $request->input('data');//访问数据
        $domain = $request->input('domain');//访问域名
        $ip = $request->input('ip');//访问ip
        $referer = $request->input('referer');//访问来源
        $user_agent = $request->input('user_agent');//访问头信息
        $type = $request->input('type');//类型:visit,inquiry
        $traffic = $request->input('traffic', SyncSubmitTask::TRAFFIC_DEFAULT);//是否引流
        $files = $request->input('files', []);//文件

        if (!empty($files)) {
            try {
                foreach ($files as $key => $file) {
                    $cos = new CosService();
                    $fileinfo = $cos->checkInquiryFile($file);
                    $fileName = uniqid() . rand(10000, 99999) . '.' . $file->getClientOriginalExtension();
                    $path = $cos->uploadFile($file, '/inquiry/' . date('Ymd'), $fileName);
                    $data[$key] = [
                        'path' => $path,
                        'original_name' => $fileinfo['name'],
                    ];
                }
            } catch (\Exception $e) {
                return $this->error('File upload fail');
            }
        }

        $array = [
            'data' => $data,
            'ip' => $ip,
            'domain' => $domain,
            'referer' => $referer,
            'user_agent' => $user_agent
        ];
        SyncSubmitTask::createTask($array, $type, $traffic);
        return $this->success([]);
    }
}