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 @@ +