From 451a8001b2d4d47c364d43369a9a1a8bb4203748 Mon Sep 17 00:00:00 2001 From: luofei <604446095@qq.com> Date: Sat, 8 Jul 2023 14:26:07 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BF=A1=E7=94=A8=E8=B4=AD?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/common/dao/store/order/StoreGroupOrderDao.php | 3 +++ .../repositories/store/order/StoreOrderRepository.php | 4 +--- crmeb/listens/pay/OrderSettlePaySuccessListen.php | 6 ++---- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/app/common/dao/store/order/StoreGroupOrderDao.php b/app/common/dao/store/order/StoreGroupOrderDao.php index 8567626c..f34da989 100644 --- a/app/common/dao/store/order/StoreGroupOrderDao.php +++ b/app/common/dao/store/order/StoreGroupOrderDao.php @@ -60,6 +60,9 @@ class StoreGroupOrderDao extends BaseDao public function search(array $where) { $storeOrderWhere = StoreOrder::where('activity_type', $where['product_type']); + if (isset($where['paid']) && $where['paid'] == 0) { + $storeOrderWhere->whereRaw("StoreGroupOrder.paid=0 or (StoreGroupOrder.paid=1 and StoreGroupOrder.pay_type=8)"); + } return StoreGroupOrder::hasWhere('orderList', $storeOrderWhere) ->when(isset($where['paid']) && $where['paid'] !== '', function ($query) use ($where) { $query->where('StoreGroupOrder.paid', $where['paid']); diff --git a/app/common/repositories/store/order/StoreOrderRepository.php b/app/common/repositories/store/order/StoreOrderRepository.php index 68a2a70f..782adf1c 100644 --- a/app/common/repositories/store/order/StoreOrderRepository.php +++ b/app/common/repositories/store/order/StoreOrderRepository.php @@ -195,7 +195,7 @@ class StoreOrderRepository extends BaseRepository //修改订单状态 Db::transaction(function () use ($subOrders, $is_combine, $groupOrder) { $time = date('Y-m-d H:i:s'); - $groupOrder->paid = $groupOrder->pay_type == StoreGroupOrder::PAY_TYPE_CREDIT_BUY ? 0 : 1; + $groupOrder->paid = 1; $groupOrder->pay_time = $time; $groupOrder->is_combine = $is_combine; $orderStatus = []; @@ -2497,8 +2497,6 @@ class StoreOrderRepository extends BaseRepository $merchantRepo = app()->make(MerchantRepository::class); $merchantRepo->unfreeze($groupOrder->interest->mer_id); } - $groupOrder->paid = 1; - $groupOrder->save(); } $groupOrder->interest->save(); Db::commit(); diff --git a/crmeb/listens/pay/OrderSettlePaySuccessListen.php b/crmeb/listens/pay/OrderSettlePaySuccessListen.php index 4d3d9811..d0027232 100644 --- a/crmeb/listens/pay/OrderSettlePaySuccessListen.php +++ b/crmeb/listens/pay/OrderSettlePaySuccessListen.php @@ -31,8 +31,8 @@ class OrderSettlePaySuccessListen implements ListenerInterface try { $orderSn = $data['order_sn']; $groupOrder = app()->make(StoreGroupOrderRepository::class)->getWhere(['group_order_sn' => $orderSn]); - if (!$groupOrder || $groupOrder->paid == 1) { - throw new \Exception('订单不存在或已支付'); + if (!$groupOrder || !$groupOrder->interest || $groupOrder->interest->status == StoreOrderInterest::STATUS_SETTLED) { + throw new \Exception('订单无需结算'); } app()->make(MerchantRepository::class)->computedLockMoney($groupOrder->order); $groupOrder->interest->status = StoreOrderInterest::STATUS_SETTLED; @@ -46,8 +46,6 @@ class OrderSettlePaySuccessListen implements ListenerInterface $merchantRepo = app()->make(MerchantRepository::class); $merchantRepo->unfreeze($groupOrder->interest->mer_id); } - $groupOrder->paid = 1; - $groupOrder->save(); Db::commit(); } catch (\Exception $e) { Db::rollback();