diff --git a/app/admin/logic/store_product/StoreProductLogic.php b/app/admin/logic/store_product/StoreProductLogic.php index 7d9bbb020..55d158f10 100644 --- a/app/admin/logic/store_product/StoreProductLogic.php +++ b/app/admin/logic/store_product/StoreProductLogic.php @@ -72,10 +72,16 @@ class StoreProductLogic extends BaseLogic if ($params['is_store_all'] == 1) { $store_arr = SystemStore::where('is_show', 1)->column('id'); - Redis::send('copy-product', ['product_id' => $res['id'], 'store_arr' => $store_arr]); + foreach($store_arr as $store_id){ + Redis::send('store-storage', ['product_arr' => ['id'=>$res['id'],'stock'=>0], 'store_id' => $store_id, 'admin_id' => Request()->adminId]); + } + // Redis::send('copy-product', ['product_id' => $res['id'], 'store_arr' => $store_arr]); } else { if (is_array($params['store_arr']) && count($params['store_arr']) > 0) { - Redis::send('copy-product', ['product_id' => $res['id'], 'store_arr' => $params['store_arr']]); + foreach($params['store_arr'] as $key =>$store_id){ + Redis::send('store-storage', ['product_arr' => ['id'=>$res['id'],'stock'=>0], 'store_id' => $store_id, 'admin_id' => Request()->adminId]); + } + // Redis::send('copy-product', ['product_id' => $res['id'], 'store_arr' => $params['store_arr']]); } } diff --git a/app/queue/redis/StoreStorageSend.php b/app/queue/redis/StoreStorageSend.php index da943c69a..a1b6d7a96 100644 --- a/app/queue/redis/StoreStorageSend.php +++ b/app/queue/redis/StoreStorageSend.php @@ -51,7 +51,7 @@ class StoreStorageSend implements Consumer 'sales' => 0, 'stock' => 0, ]; - $branch=StoreBranchProduct::create($product); + $branch = StoreBranchProduct::create($product); $arr = [ 'product_id' => $product_arr['id'], 'store_id' => $store_id, @@ -61,23 +61,27 @@ class StoreStorageSend implements Consumer 'bar_code' => $attr_value['bar_code'] ]; StoreBranchProductAttrValue::create($arr); - $this->storage($find, $store_id, $admin_id, $product_arr); + if ($product_arr['stock'] > 0) { + $this->storage($find, $store_id, $admin_id, $product_arr); + } Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); - Log::error('store-storage队列消费失败: ' . $e->getMessage().',line:'.$e->getLine().',file:'.$e->getFile()); + Log::error('store-storage队列消费失败: ' . $e->getMessage() . ',line:' . $e->getLine() . ',file:' . $e->getFile()); return false; } } else { Db::startTrans(); try { - $this->storage($find, $store_id, $admin_id, $product_arr); - Db::commit(); - return true; + if ($product_arr['stock'] > 0) { + $this->storage($find, $store_id, $admin_id, $product_arr); + } + Db::commit(); + return true; } catch (\Exception $e) { Db::rollback(); - Log::error('store-storage队列消费失败: ' . $e->getMessage().',line:'.$e->getLine().',file:'.$e->getFile()); + Log::error('store-storage队列消费失败: ' . $e->getMessage() . ',line:' . $e->getLine() . ',file:' . $e->getFile()); return false; } } @@ -95,9 +99,9 @@ class StoreStorageSend implements Consumer $storage['status'] = -1; $storage['mark'] = '库存不足,主库存为:' . $find['stock']; SystemStoreStorage::create($storage); - }else{ + } else { SystemStoreStorage::create($storage); - StoreProduct::where('id', $product_arr['id'])->dec('stock',$product_arr['stock'])->update(); + StoreProduct::where('id', $product_arr['id'])->dec('stock', $product_arr['stock'])->update(); } }