UserTimesUpdateJob.php 2.3 KB
<?php
/**
 * +--------------------------------------------------------------------------------------------------------------------
 * Job:UserPointsRecord 创建成功 处理业务逻辑
 * +--------------------------------------------------------------------------------------------------------------------
 *
 * PHP version 7
 *
 * @category  App\Jobs\User
 * @package   App\Jobs\User
 * @author    Richer <yangzi1028@163.com>
 * @date      2022年6月14日09:42:48
 * @copyright 2020-2022 Richer (http://www.Richer.com/)
 * @license   http://www.Richer.com/ License
 * @link      http://www.Richer.com/
 */
namespace App\Jobs\User;

use App\Models\User\UserRemote;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;

/**
 * Class UserTimesUpdateJob
 *
 * @category  App\Jobs\User
 * @package   App\Jobs\User
 * @author    Richer <yangzi1028@163.com>
 * @date      2022年6月14日09:42:48
 * @copyright 2020-2022 Richer (http://www.Richer.com/)
 * @license   http://www.Richer.com/ License
 * @link      http://www.Richer.com/
 */
class UserTimesUpdateJob implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;


    protected $model;

    protected $times;
    protected $channel =  'queue';
    /**
     * Create a new job instance.
     *
     * @param $model
     * @param $times
     */
    public function __construct($model, $times)
    {
        $this->model  = $model;
        $this->times  = $times;
    }

    /**
     * Execute the job.
     *
     * @return void
     * @throws \GuzzleHttp\Exception\GuzzleException
     */
    public function handle()
    {
        record_log($this->channel, '同步用户次数', 'begin');
        // 记录日志
        if ($this->attempts() > 1) {
//            $this->log('尝试次数过多');
            record_log($this->channel, '尝试次数过多');

        } else {
            record_log($this->channel, $this->model->id);
            record_log($this->channel, $this->times);

            UserRemote::where('id', $this->model->id)->decrement('times', $this->times);
        }
        record_log($this->channel, '同步用户次数', 'begin');

    }
}