ReInquiryCount.php 2.3 KB
<?php

namespace App\Models\Inquiry;

use App\Helper\Arr;
use App\Helper\QuanqiusouApi;
use App\Models\Base;
use App\Models\Domain\DomainInfo;
use App\Models\Project\Project;
use App\Models\Task\TaskOwner;
use Illuminate\Database\Eloquent\Model;

/**
 * Class ReInquiryCount
 * @package App\Models\Inquiry
 * @author zbj
 * @date 2024/10/25
 */
class ReInquiryCount extends Base
{
    /**
     * @var string
     */
    protected $table = 'gl_re_inquiry_count';

    /**
     * @param $task_id
     * @param $domain
     * @param int $num
     * @author zbj
     * @date 2024/10/26
     */
    public static function addInquiryNum($task_id, $domain, $num = 1)
    {
        $model = self::where('domain', $domain)->first();

        if (!$model) {
            //新增时获取公司名
            $company = '';
            $domain_info = DomainInfo::where('domain', $domain)->first();
            if ($domain_info) {
                $company = Project::where('id', $domain_info['project_id'])->value('company');
            } else {
                $res = (new QuanqiusouApi())->getV5Agent($domain);
                if (!empty($res['status']) && $res['status'] == 200) {
                    $company = $res['company_name'];
                }
            }

            $model = new self();
            $model->domain = $domain;
            $model->company = $company;
        }
        $model->task_ids = $model->task_ids + [$task_id];
        $model->num = $model->num + $num;
        $model->save();
    }

    public function setTaskIdsAttribute($value)
    {
        $this->attributes['task_ids'] = Arr::arrToSet($value);
    }

    public function getTaskIdsAttribute($value)
    {
        return Arr::setToArr($value);
    }

    public function getTasksAttribute(){
       $tasks = ReInquiryTask::whereIn('id', $this->task_ids)->select(['title', 'industry','target', 'status'])->get()->toArray();
       foreach ($tasks as &$task){
           $target  = collect($task['target'])->where('url', $this->domain)->first();
           $task['is_del'] = $target ? 0 : 1;
           $task['agent'] = $target['agent'] ?? '';
           $task['is_v6'] = $target['is_v6'] ?? '';
           $task['agent_group'] = $target['agent_group'] ?? '';
           unset($task['target']);
       }
       return $tasks;
    }
}