From 42e95677ef6308edb993579f858d2da0e0e988ec Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Thu, 6 Jun 2024 18:02:41 +0800 Subject: [PATCH] =?UTF-8?q?feat(store=5Fproduct):=20=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E6=88=90=E5=8A=9F=EF=BC=8C=E5=A2=9E=E5=8A=A0=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E6=88=90=E5=8A=9F=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StoreBranchProductController.php | 2 +- .../logic/store_product/StoreProductLogic.php | 10 +++++- app/queue/redis/CopyProductSend.php | 15 +++++++- app/queue/redis/StoreStorageSend.php | 34 +++++++++++++++++++ 4 files changed, 58 insertions(+), 3 deletions(-) create mode 100644 app/queue/redis/StoreStorageSend.php diff --git a/app/admin/controller/store_branch_product/StoreBranchProductController.php b/app/admin/controller/store_branch_product/StoreBranchProductController.php index e7706f37b..9c586c698 100644 --- a/app/admin/controller/store_branch_product/StoreBranchProductController.php +++ b/app/admin/controller/store_branch_product/StoreBranchProductController.php @@ -62,7 +62,7 @@ class StoreBranchProductController extends BaseAdminController return $this->fail(StoreProductLogic::getError()); } } - return $this->success('编辑成功', [], 1, 1); + return $this->success('操作成功,等待门店确认', [], 1, 1); } /** diff --git a/app/admin/logic/store_product/StoreProductLogic.php b/app/admin/logic/store_product/StoreProductLogic.php index ffcddac35..7d9bbb020 100644 --- a/app/admin/logic/store_product/StoreProductLogic.php +++ b/app/admin/logic/store_product/StoreProductLogic.php @@ -10,6 +10,8 @@ use app\common\model\store_branch_product_attr_value\StoreBranchProductAttrValue use app\common\model\store_category\StoreCategory; use app\common\model\store_product_attr_value\StoreProductAttrValue; use app\common\model\system_store\SystemStore; +use app\common\model\system_store_storage\SystemStoreStorage; +use app\Request; use think\facade\Db; use Webman\RedisQueue\Redis; @@ -264,7 +266,13 @@ class StoreProductLogic extends BaseLogic public static function stock($data){ Db::startTrans(); try { - StoreBranchProduct::where(['id' => $data['id']])->inc('stock',$data['stock'])->update(); + $find=StoreBranchProduct::where(['id' => $data['id']])->find(); + SystemStoreStorage::create([ + 'product_id' => $find['product_id'], + 'store_id' => $find['store_id'], + 'nums' => $data['stock'], + 'admin_id' => Request()->adminId, + ]); Db::commit(); return true; } catch (\Exception $e) { diff --git a/app/queue/redis/CopyProductSend.php b/app/queue/redis/CopyProductSend.php index 05866eadb..c0854bdf5 100644 --- a/app/queue/redis/CopyProductSend.php +++ b/app/queue/redis/CopyProductSend.php @@ -3,6 +3,8 @@ namespace app\queue\redis; use app\admin\logic\store_product\StoreProductLogic; +use app\common\model\store_product\StoreProduct; +use app\common\model\system_store_storage\SystemStoreStorage; use Webman\RedisQueue\Consumer; use support\Log; @@ -22,8 +24,19 @@ class CopyProductSend implements Consumer { $store_arr=$data['store_arr']; $stock=$data['stock']??0; + $admin_id=$data['admin_id']??0; foreach ($store_arr as $key => $id) { - StoreProductLogic::copy($data['product_id'],$id,$stock); + StoreProductLogic::copy($data['product_id'],$id,0); + if($stock>0){ + $stocks=StoreProduct::where('id',$data['product_id'])->value('stock'); + if($stocks>=$stock){ + SystemStoreStorage::create(['product_id'=>$data['product_id'],'store_id'=>$id,'nums'=>$stock,'admin_id'=>$admin_id]);//设置库存 + StoreProduct::where('id',$data['product_id'])->dec('stock',$stock)->update();//减少库存 + }else{ + SystemStoreStorage::create(['product_id'=>$data['product_id'],'store_id'=>$id,'nums'=>$stock,'admin_id'=>$admin_id,'status'=>-1,'mark'=>'库存不足']);//设置库存 + + } + } } } public function onConsumeFailure(\Throwable $e, $package) diff --git a/app/queue/redis/StoreStorageSend.php b/app/queue/redis/StoreStorageSend.php new file mode 100644 index 000000000..16ecc6598 --- /dev/null +++ b/app/queue/redis/StoreStorageSend.php @@ -0,0 +1,34 @@ +<?php + +namespace app\queue\redis; + +use app\admin\logic\store_product\StoreProductLogic; +use Webman\RedisQueue\Consumer; +use support\Log; + +/** + * 门店库存记录商品 + */ +class StoreStorageSend implements Consumer +{ + // 要消费的队列名 + public $queue = 'store_storage'; + + // 连接名,对应 plugin/webman/redis-queue/redis.php 里的连接` + public $connection = 'default'; + + // 消费 + public function consume($data) + { + // $product_id=$data['product_id']; + // $store_id=$data['store_id']; + // $store_id=$data['store_id']; + // StoreBranchProduct::w + } + public function onConsumeFailure(\Throwable $e, $package) + { + $package['max_attempts']=0; + Log::error('复制商品失败product_id:'.$package['data']['product_id']); + return $package; + } +} \ No newline at end of file