From 87609f2fcae60591121267f345d204a7ede214e6 Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Sat, 7 Dec 2024 11:54:47 +0800 Subject: [PATCH] =?UTF-8?q?feat(admin):=20=E6=B7=BB=E5=8A=A0=E9=A2=84?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E4=BF=AE=E6=94=B9=E6=95=B0=E9=87=8F=E5=92=8C?= =?UTF-8?q?=E4=BB=93=E5=BA=93=E9=87=8D=E7=BD=AE=E6=95=B0=E9=87=8F=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 BeforehandOrderCartInfoController 中添加 edit_nums 方法,用于修改预订单商品数量 - 在 WarehouseProductController 中添加 set_nums 方法,用于重置仓库商品数量 - 在 BeforehandOrderCartInfoLogic 中实现 editNums 方法,处理预订单数量修改逻辑 - 在 WarehouseProductLogic 中实现 settNums 方法,处理仓库数量重置逻辑 - 优化 WarehouseLogic 中的商品仓储信息查询,支持查询已删除商品 --- .../BeforehandOrderCartInfoController.php | 10 +++- .../WarehouseProductController.php | 10 ++++ .../BeforehandOrderCartInfoLogic.php | 26 +++++++- app/admin/logic/statistic/WarehouseLogic.php | 2 +- .../WarehouseProductLogic.php | 60 +++++++++++++++++++ 5 files changed, 105 insertions(+), 3 deletions(-) diff --git a/app/admin/controller/beforehand_order_cart_info/BeforehandOrderCartInfoController.php b/app/admin/controller/beforehand_order_cart_info/BeforehandOrderCartInfoController.php index 3f43f7acc..4e016f167 100644 --- a/app/admin/controller/beforehand_order_cart_info/BeforehandOrderCartInfoController.php +++ b/app/admin/controller/beforehand_order_cart_info/BeforehandOrderCartInfoController.php @@ -132,6 +132,14 @@ class BeforehandOrderCartInfoController extends BaseAdminController $result = BeforehandOrderCartInfoLogic::detail($params); return $this->data($result); } - + /** + * 修改数量 + */ + public function edit_nums() + { + $params = $this->request->post(); + $result = BeforehandOrderCartInfoLogic::editNums($params); + return $this->data($result); + } } \ No newline at end of file diff --git a/app/admin/controller/warehouse_product/WarehouseProductController.php b/app/admin/controller/warehouse_product/WarehouseProductController.php index 1578d14a1..3a3368c34 100644 --- a/app/admin/controller/warehouse_product/WarehouseProductController.php +++ b/app/admin/controller/warehouse_product/WarehouseProductController.php @@ -133,4 +133,14 @@ class WarehouseProductController extends BaseAdminController // return $this->fail(WarehouseProductLogic::getError()); return $this->success(''); } + + /** + * 仓库重置出入库数量 + */ + public function set_nums() + { + $params=$this->request->post(); + $result = WarehouseProductLogic::settNums($params); + return $this->success(''); + } } diff --git a/app/admin/logic/beforehand_order_cart_info/BeforehandOrderCartInfoLogic.php b/app/admin/logic/beforehand_order_cart_info/BeforehandOrderCartInfoLogic.php index 4e0df24c0..204b35b16 100644 --- a/app/admin/logic/beforehand_order_cart_info/BeforehandOrderCartInfoLogic.php +++ b/app/admin/logic/beforehand_order_cart_info/BeforehandOrderCartInfoLogic.php @@ -136,11 +136,35 @@ class BeforehandOrderCartInfoLogic extends BaseLogic return true; } catch (\Throwable $e) { Db::rollback(); - d($e); throw new BusinessException($e->getMessage()); } } + /** + * @notes 编辑预订单购物详情表 + * @param array $params + * @return bool + * @author admin + * @date 2024/09/30 11:32 + */ + public static function editNums(array $params): bool + { + Db::startTrans(); + try { + $find=BeforehandOrderCartInfo::where('id', $params['id'])->find(); + if($find){ + $data=['accept_num'=>$params['nums'],'pay_price'=>bcmul($find['price'],$params['nums'],2)]; + $find->save($data); + $info = BeforehandOrderCartInfo::where('bhoid', $find['bhoid'])->field('sum(accept_num) as accept_num,sum(pay_price) as pay_price')->find(); + BeforehandOrder::where('id', $find['bhoid'])->save(['pay_price'=>$info['pay_price'], 'total_num' => $info['accept_num']]); + } + Db::commit(); + return true; + } catch (\Throwable $e) { + Db::rollback(); + throw new BusinessException($e->getMessage()); + } + } /** * 一键入库 */ diff --git a/app/admin/logic/statistic/WarehouseLogic.php b/app/admin/logic/statistic/WarehouseLogic.php index a3692cc8b..d0fab7414 100644 --- a/app/admin/logic/statistic/WarehouseLogic.php +++ b/app/admin/logic/statistic/WarehouseLogic.php @@ -254,7 +254,7 @@ class WarehouseLogic extends BaseLogic } $list = WarehouseProductStorege::where($where)->page($parmas['page_no'], 15)->select() ->each(function ($item) { - $find = StoreProduct::where('id', $item['product_id'])->find(); + $find = StoreProduct::where('id', $item['product_id'])->withTrashed()->find(); $item->store_name = $find['store_name']; $item->image = $find['image']; $item->stock = $item['nums']; diff --git a/app/admin/logic/warehouse_product/WarehouseProductLogic.php b/app/admin/logic/warehouse_product/WarehouseProductLogic.php index 159125f0e..cad46c9d6 100644 --- a/app/admin/logic/warehouse_product/WarehouseProductLogic.php +++ b/app/admin/logic/warehouse_product/WarehouseProductLogic.php @@ -310,6 +310,66 @@ class WarehouseProductLogic extends BaseLogic throw new BusinessException($th->getMessage()); } } + /** + * * @notes 仓库重置出入库数量 + * @param $id + * @return void + */ + public static function settNums($params) + { + Db::startTrans(); + try { + $res = WarehouseProduct::where('id',$params['id'])->find(); + if ($res) { + if ($res['financial_pm'] == 1) { + WarehouseProductStorege::where('warehouse_id', $res['warehouse_id'])->where('product_id', $res['product_id'])->dec('nums', $res['nums'])->update(); + StoreBranchProduct::where('store_id', $res['store_id'])->where('product_id', $res['product_id'])->dec('stock', $res['nums'])->update(); + + $warehouseProductStorege = WarehouseProductStorege::where('warehouse_id', $res['warehouse_id'])->where('product_id', $res['product_id'])->find(); + WarehouseProductStorege::where('warehouse_id', $res['warehouse_id'])->where('product_id', $res['product_id'])->inc('nums', $params['nums'])->update(); + StoreBranchProduct::where('store_id', $res['store_id'])->where('product_id', $res['product_id'])->inc('stock', $params['nums'])->update(); + $before_nums = $warehouseProductStorege['nums']; + $after_nums = $warehouseProductStorege['nums'] + $params['nums']; + } else { + WarehouseProductStorege::where('warehouse_id', $res['warehouse_id'])->where('product_id', $res['product_id'])->inc('nums', $res['nums'])->update(); + StoreBranchProduct::where('store_id', $res['store_id'])->where('product_id', $res['product_id'])->dec('stock', $res['nums'])->update(); + + $warehouseProductStorege = WarehouseProductStorege::where('warehouse_id', $res['warehouse_id'])->where('product_id', $res['product_id'])->find(); + WarehouseProductStorege::where('warehouse_id', $res['warehouse_id'])->where('product_id', $res['product_id'])->dec('nums', $params['nums'])->update(); + StoreBranchProduct::where('store_id', $res['store_id'])->where('product_id', $res['product_id'])->inc('stock', $params['nums'])->update(); + $before_nums = $warehouseProductStorege['nums']; + $after_nums = bcsub($warehouseProductStorege['nums'], $params['nums'], 2); + } + if($res['financial_pm']==1){ + $datas=[ + 'nums' => $params['nums'], + 'before_nums' => $before_nums, + 'after_nums' => $after_nums, + 'total_price' => bcmul($params['nums'], $res['purchase'], 2), + + ]; + }else{ + $datas=[ + 'nums' => $params['nums'], + 'before_nums' => $before_nums, + 'after_nums' => $after_nums, + 'total_price' => bcmul($params['nums'], $res['price'], 2), + ]; + } + WarehouseProduct::where('id', $params['id'])->update($datas); + $finds = WarehouseProduct::where('oid', $res['oid'])->field('sum(nums) as nums')->find(); + if ($finds) { + WarehouseOrder::where('id', $res['oid'])->update([ + 'nums' => $finds['nums'], + ]); + } + } + Db::commit(); + } catch (\Throwable $th) { + Db::rollback(); + throw new BusinessException($th->getMessage()); + } + } /** * @notes 获取商品仓储信息详情 * @param $params