SyncSubmitTask.php 1.8 KB
<?php

namespace App\Models\SyncSubmitTask;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Redis;

/**
 * @method static where(string $string, mixed $ip)
 * @method static create(array $data)
 */
class SyncSubmitTask extends Model
{

    const TYPE_INQUIRY = 'inquiry';
    const TYPE_VISIT = 'visit';

    const TRAFFIC_DEFAULT = 0;
    const TRAFFIC_TRUE = 1;

    //设置关联表名
    /**
     * @var mixed
     */
    protected $table = 'gl_sync_submit_task';

    protected $casts = [
        'data' => 'array',
    ];

    /**
     * @param $type
     * @param $data
     * @return bool
     * @author zbj
     * @date 2023/11/28
     */
    public static function addTask($type, $data): bool
    {
        if (empty($data)) {
            return false;
        }
        try {
            $data = [
                'data' => $data['data'],
                'domain' => !empty($data['domain']) ? $data['domain'] : request()->getHost(),
                'ip' => !empty($data['ip']) ? $data['ip'] : request()->getClientIp(),
                'referer' => !empty($data['referer']) ? $data['referer'] : request()->header('Referer'),
                'user_agent' => !empty($data['user_agent']) ? $data['user_agent'] : request()->header('user_agent'),
            ];

            if(empty($data['referer']) || empty($data['user_agent']) || empty($data['data'])){
                return false;
            }

            $model = new self();
            $model->type = $type;
            $model->data = $data;
            !empty($data['submit_time']) && $model->created_at = $data['submit_time'];
            $model->save();

        } catch (\Exception $e) {
            Log::error('SyncSubmitTask addTask error', ['msg' => $e->getMessage(), 'data' => $data]);
            return false;
        }
        return true;
    }
}