<?php
declare (strict_types=1);

namespace app\job\controller\goods;

use app\job\service\goods\Collector as GoodsCollectorService;
use cores\BaseJob;
use cores\traits\QueueTrait;
use cores\exception\BaseException;
use think\db\exception\DataNotFoundException;
use think\db\exception\DbException;
use think\db\exception\ModelNotFoundException;

/**
 * 队列任务:商品采集
 * Class Collector
 * @package app\job\controller
 */
class Collector extends BaseJob
{
    use QueueTrait;

    /**
     * 消费队列任务:商品采集
     * @param array $data 参数 [index队列顺序;totalCount商品总数量;list商品列表;storeId商城ID]
     * @return bool 返回结果
     * @throws BaseException
     * @throws DataNotFoundException
     * @throws DbException
     * @throws ModelNotFoundException
     */
    public function handle(array $data): bool
    {
        $time = date('H:i:s');
        echo "\n  ---- Collector ----  {$time} ----   \n";

        $service = new GoodsCollectorService;
        return $service->batch($data['urls'], $data['form'], $data['recordId'], $data['storeId']);
    }
}