From 82a4fddcfeaad06cd43e07a74ee433ba94156bce Mon Sep 17 00:00:00 2001 From: liu <1873441552@qq.com> Date: Sat, 29 Jun 2024 18:04:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86=E5=B0=8F=E7=A8=8B=E5=BA=8F?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=AE=A2=E5=8D=95=E5=95=86=E5=93=81=E7=BC=BA?= =?UTF-8?q?=E5=A4=B1=E6=96=B0=E5=A2=9E=E5=88=B0=E7=BC=BA=E5=A4=B1=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/logic/order/OrderLogic.php | 7 ++++-- app/common/logic/PayNotifyLogic.php | 37 +++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/app/api/logic/order/OrderLogic.php b/app/api/logic/order/OrderLogic.php index 0b2475af9..c34a390fa 100644 --- a/app/api/logic/order/OrderLogic.php +++ b/app/api/logic/order/OrderLogic.php @@ -273,9 +273,12 @@ class OrderLogic extends BaseLogic * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ - public static function checkLeft($params,$uid) + public static function checkLeft($params,$uid,$type =0) { - $where = ['is_pay' => 0]; + $where = []; + if(empty($type)){ + $where = ['is_pay' => 0]; + } $cart_select = Cart::whereIn('id', $params['cart_id']) ->where($where)->field('id,product_id,cart_num,store_id')->select()->toArray(); if (empty($cart_select)) { diff --git a/app/common/logic/PayNotifyLogic.php b/app/common/logic/PayNotifyLogic.php index 67bccf421..d72900ca9 100644 --- a/app/common/logic/PayNotifyLogic.php +++ b/app/common/logic/PayNotifyLogic.php @@ -104,6 +104,9 @@ class PayNotifyLogic extends BaseLogic // self::descStock($order['id']); } self::afterPay($order); + if($order['reservation'] == 1&& in_array($order['shipping_type'],[1,2])){ + self::dealGoodsLeft($order['cart_id'],$order['uid'],$order['id']); + } if ($extra && $extra['store_id']) { $params = [ 'verify_code' => $order['verify_code'], @@ -215,6 +218,10 @@ class PayNotifyLogic extends BaseLogic OrderLogic::writeOff($params); } self::dealProductLog($order); + if($order['reservation'] == 1&& in_array($order['shipping_type'],[1,2])){ + self::dealGoodsLeft($order['cart_id'],$order['uid'],$order['id']); + } + // $count = UserSign::where([ // 'uid'=>$order['uid'], // 'type'=>1, @@ -405,6 +412,9 @@ class PayNotifyLogic extends BaseLogic $capitalFlowDao->userExpense('user_order_pay', 'order', $order['id'], $order->pay_price, '', 1, $order['store_id']); } $order->save(); + if($order['reservation'] == 1&& in_array($order['shipping_type'],[1,2])){ + self::dealGoodsLeft($order['cart_id'],$order['uid'],$order['id']); + } self::afterPay($order, $extra['transaction_id']); // self::addUserSing($order); self::dealProductLog($order); @@ -1167,6 +1177,33 @@ class PayNotifyLogic extends BaseLogic } + /** + * 处理商品缺失新增到缺失列表 + * @param $cart_id //购物车ids + * @param $uid //用户id + * @param $oid //订单id + * @return void + * @throws \think\db\exception\DataNotFoundException + * @throws \think\db\exception\DbException + * @throws \think\db\exception\ModelNotFoundException + */ + public static function dealGoodsLeft($cart_id,$uid,$oid) + { + $cart_id['cart_id'] = explode(',',$cart_id); + $data = OrderLogic::checkLeft($cart_id,$uid,1); + $format = $data['detail']; + foreach ($format as &$value){ + $value['oid'] =$oid; + $value['create_time'] =time(); + } + Db::name('store_product_miss')->insertAll($format); + + } + + + + + //礼品券相关对应文本 public static function getTitle($category, $amount) {