7529d16b创建于 2023年12月21日历史提交
<?php


namespace Module\Vendor\Job;


use ModStart\Core\Exception\BizException;
use ModStart\Core\Job\BaseJob;
use ModStart\Core\Util\SerializeUtil;
use Module\Vendor\Log\Logger;
use Module\Vendor\Provider\SmsSender\SmsSenderProvider;

class SmsSendJob extends BaseJob
{
    public $phone;
    public $template;
    public $templateData;

    public static function create($phone, $template, $templateData)
    {
        $job = new static();
        $job->phone = $phone;
        $job->template = $template;
        $job->templateData = $templateData;
        app('Illuminate\Contracts\Bus\Dispatcher')->dispatch($job);
    }

    public function handle()
    {
        $logData = $this->phone . ' - ' . $this->template . ' - ' . SerializeUtil::jsonEncode($this->templateData, JSON_UNESCAPED_UNICODE);
        Logger::info('Sms', 'Start', $logData);
        $provider = app()->config->get('SmsSenderProvider');
        try {
            BizException::throwsIfEmpty('短信发送未设置', $provider);
            $ret = SmsSenderProvider::get($provider)->send($this->phone, $this->template, $this->templateData);
            BizException::throwsIfResponseError($ret);
            Logger::info('Sms', 'End', $this->phone . ' - ' . SerializeUtil::jsonEncode($ret, JSON_UNESCAPED_UNICODE));
        } catch (BizException $e) {
            Logger::error('Sms', 'Error', $this->phone . ' - ' . $e->getMessage());
        }
    }
}