<?php

namespace App\Jobs\ReportStatistics\Reception;

use App\Servers\DB\DbService;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Models\Manager\LiveGroupMessage as Model;
use App\Facades\Servers\Logs\Log;

/**
 * 数据上报任务
 * 
 */
class LiveGroupMessageJobs implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    protected $recordData;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct(array $recordData)
    {
        $this->recordData = $recordData;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        try {
            // 接收参数
            $recordData                           = $this->recordData;
            // 切换数据
            $result                               = (new DbService())->getConnectionNameByCompanyId($recordData['company_id']);
            // 错误提示
            if( isset($result['error']) )         {
                // 返回结果
                Log::error('live_group_message_jobs',$result['error'],$recordData);
                return 0;
            }
            // 查询
            $result                               = (new Model())::query()->upsert($recordData,'id');
            // 返回结果
            if( !$result )                        Log::error('live_group_message_jobs','写入失败',$recordData);
            // 返回结果
            return                                0;
        } catch (\Throwable $th) {
            // 返回结果
            Log::error('live_group_message_jobs',$th->getMessage(),$recordData);
            // 返回结果
            return                                0;
        }
    }
}
