CollectTask.php 2.3 KB
<?php

namespace App\Models\Collect;

use App\Models\Base;

class CollectTask extends Base
{
    //设置关联表名
    protected $table = 'gl_collect_task';

    //连接数据库
    protected $connection = 'custom_mysql';

    const STATUS_UN = 0;
    const STATUS_ING = 1;
    const STATUS_COM = 2;

    public static function _insert($url, $project_id, $source, $source_id, $link_type = 0, $language_list = [])
    {
        if (!$url) {
            return;
        }

        $url_arr = parse_url($url);

        $where = [
            'project_id' => $project_id,
            'source' => $source,
            'source_id' => $source_id,
            'domain' => $url_arr['host'],
            'route' => $url_arr['path'],
            'language' => ''
        ];

        $task = self::where($where)->first();
        if (!$task) {
            $now = date('Y-m-d H:i:s');
            $data = [
                [
                    'project_id' => $project_id,
                    'source' => $source,
                    'source_id' => $source_id,
                    'domain' => $url_arr['host'],
                    'route' => $url_arr['path'],
                    'language' => '',
                    'created_at' => $now,
                    'updated_at' => $now,
                ]
            ];

            if ($link_type > 0 && $language_list) {
                $domain_arr = explode('.', $url_arr['host']);
                foreach ($language_list as $v_lan) {
                    if ($link_type == 1) {
                        //二级域名
                        $domain_arr[0] = $v_lan;
                        $new_domain = implode('.', $domain_arr);
                    } else {
                        //二级目录
                        $new_domain = $url_arr['host'] . '/' . $v_lan;
                    }

                    $data[] = [
                        'project_id' => $project_id,
                        'source' => $source,
                        'source_id' => $source_id,
                        'domain' => $new_domain,
                        'route' => $url_arr['path'],
                        'language' => $v_lan,
                        'created_at' => $now,
                        'updated_at' => $now,
                    ];
                }
            }

            self::insert($data);
        }
    }
}