<?php namespace app\queue\redis; use app\admin\logic\store_product\StoreProductLogic; use app\admin\logic\warehouse_product\WarehouseProductLogic; use app\common\model\store_branch_product\StoreBranchProduct; use app\common\model\store_branch_product_attr_value\StoreBranchProductAttrValue; use app\common\model\store_branch_product_exchange\StoreBranchProductExchange; use app\common\model\store_product\StoreProduct; use app\common\model\store_product_attr_value\StoreProductAttrValue; use app\common\model\system_store_storage\SystemStoreStorage; use Webman\RedisQueue\Consumer; use support\Log; use think\facade\Db; /** * 门店库存记录商品 */ class StoreStorageSend implements Consumer { // 要消费的队列名 public $queue = 'store-storage'; // 连接名,对应 plugin/webman/redis-queue/redis.php 里的连接` public $connection = 'default'; // 消费 public function consume($data) { $product_arr = $data['product_arr']; $store_id = $data['store_id']; $stock_type = $data['stock_type']; $admin_id = $data['admin_id']; $warehouse_id = $data['warehouse_id']??0; $find = StoreProduct::where('id', $product_arr['id'])->findOrEmpty()->toArray(); if($stock_type == 1){ StoreProductLogic::ordinary($product_arr,$store_id,$admin_id,$find,$warehouse_id); }elseif($stock_type == 2){ StoreProductLogic::exchange($product_arr,$store_id,$admin_id,$find,$warehouse_id); } } public function onConsumeFailure(\Throwable $e, $package) { $package['max_attempts'] = 0; Log::error('store-storage队列消费失败: ' . $e->getMessage() . ',line:' . $e->getLine() . ',file:' . $e->getFile()); return $package; } }