From 81c766a2f11591d912c452e58af955cebfb52d9e Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Mon, 3 Feb 2025 13:18:55 +0800 Subject: [PATCH] =?UTF-8?q?fix(admin):=20=E4=BF=AE=E5=A4=8D=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E4=BF=AE=E6=94=B9=E6=97=B6=E7=9A=84=E6=9D=83=E9=99=90?= =?UTF-8?q?=E5=92=8C=E7=8A=B6=E6=80=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 增加了对订单已出库状态的检查,防止修改已出库订单 - 调整了权限检查逻辑,只允许特定管理员编辑价格 - 优化了订单总价和数量的计算逻辑 - 移除了重复的订单查询代码 --- .../BeforehandOrderCartInfoLogic.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/admin/logic/beforehand_order_cart_info/BeforehandOrderCartInfoLogic.php b/app/admin/logic/beforehand_order_cart_info/BeforehandOrderCartInfoLogic.php index cf364e969..bfc4112e2 100644 --- a/app/admin/logic/beforehand_order_cart_info/BeforehandOrderCartInfoLogic.php +++ b/app/admin/logic/beforehand_order_cart_info/BeforehandOrderCartInfoLogic.php @@ -111,6 +111,11 @@ class BeforehandOrderCartInfoLogic extends BaseLogic if($params['admin_id']==23&&$params['purchases']!=$find['price'] ){ throw new BusinessException('当前账号没有权限编辑价格, 请联系管理员修改'); } + $bhoid = $params['bhoid']; + $order=BeforehandOrder::where('id', $bhoid)->find(); + if($order['outbound_id']>0){ + throw new BusinessException('该订单已出库,不能修改'); + } if($params['total_price']<=0){ $total_price=bcmul($params['purchases'],$params['nums'],2); }else{ @@ -124,12 +129,10 @@ class BeforehandOrderCartInfoLogic extends BaseLogic 'accept_num' => $params['nums'], 'mark' => $params['mark']??'', ]); - $bhoid = $params['bhoid']; $info = BeforehandOrderCartInfo::where('bhoid', $bhoid)->field('sum(cart_num) as cart_num,sum(total_price) as total_price,sum(pay_price) as pay_price')->find(); if($find['is_buyer']==1){ PurchaseProductOffer::where('order_id',$bhoid)->where('product_id',$find['product_id'])->update(['need_num'=>$params['nums']]); } - $order=BeforehandOrder::where('id', $bhoid)->find(); $order->save(['total_price' => $info['total_price'],'pay_price' => $info['pay_price'], 'total_num' => $info['cart_num']]); if($order['outbound_id']>0){