WithdrawalAuditPassedJob.php 2.3 KB
<?php
/**
 * +--------------------------------------------------------------------------------------------------------------------
 * Job:提现审核通过 处理业务逻辑
 * +--------------------------------------------------------------------------------------------------------------------
 *
 * PHP version 7
 *
 * @category  App\Jobs\User
 * @package   App\Jobs\User
 * @author    Richer <yangzi1028@163.com>
 * @date      2022年6月20日11:40:43
 * @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\Factories\OrderFactory;
use App\Jobs\BaseJob;
use Illuminate\Support\Facades\Log;
use SimpleSoftwareIO\QrCode\Facades\QrCode;

/**
 * Class WithdrawalAuditPassedJob
 *
 * @category  App\Jobs\User
 * @package   App\Jobs\User
 * @author    Richer <yangzi1028@163.com>
 * @date      2022年6月20日11:40:43
 * @copyright 2020-2022 Richer (http://www.Richer.com/)
 * @license   http://www.Richer.com/ License
 * @link      http://www.Richer.com/
 */
class WithdrawalAuditPassedJob extends BaseJob
{
    /**
     * Create a new job instance.
     *
     * @param $model
     */
    public function __construct($model)
    {
        $this->desc  = '提现审核通过';
        // 执行
        parent::__construct($model);
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        // 记录日志
        $this->log($this->desc, 'begin');

        if ($this->attempts() > 1) {
            $this->log('尝试次数过多');
        } else {
            // 获取模型
            $model  = $this->model;

            // 获取用户
            $user = $model->user;

            $openid = $user->openid;
            $this->log('用户 $openid: ' . $openid);
            if (!$openid) {
                return;
            }

            // 转账
            $traded_at = now()->toDateTimeString();
            $trade_no = substr($model->number, 0, 16) . time();
            $model->trade_no    = $trade_no;
            $model->traded_at   = $traded_at;
            $model->save();
//            NO_CHECK
            $factory = app(OrderFactory::class);
            $factory->transfer($trade_no, $openid, $model->amount * 100, '帐户提现', 'miniapp');
        }
        $this->log($this->desc, 'end');
    }
}