diff --git a/app/common/dao/store/order/StoreOrderOtherDao.php b/app/common/dao/store/order/StoreOrderOtherDao.php index c93233db..3acbcf70 100755 --- a/app/common/dao/store/order/StoreOrderOtherDao.php +++ b/app/common/dao/store/order/StoreOrderOtherDao.php @@ -787,6 +787,9 @@ class StoreOrderOtherDao extends BaseDao $refundProducts[$item['product']['product_source_id']] = ['num' => $item['refund_num']]; } $order = StoreOrderOther::where('order_sn', $refundOrder->order['order_sn'])->find(); + if (empty($order)) { + return; + } $refundOrderArray = $refundOrder->toArray(); unset($refundOrderArray['refund_order_id'], $refundOrderArray['refundProduct'], $refundOrderArray['order']); Db::startTrans(); diff --git a/app/common/repositories/store/order/StoreRefundOrderRepository.php b/app/common/repositories/store/order/StoreRefundOrderRepository.php index fee54ebb..8b18bb6c 100755 --- a/app/common/repositories/store/order/StoreRefundOrderRepository.php +++ b/app/common/repositories/store/order/StoreRefundOrderRepository.php @@ -26,6 +26,7 @@ use app\common\model\store\order\StoreRefundOrder; use app\common\model\store\product\CloudProduct; use app\common\model\store\StoreActivityOrderProduct; use app\common\model\system\merchant\FinancialRecord; +use app\common\model\system\merchant\Merchant; use app\common\repositories\BaseRepository; use app\common\repositories\store\product\ProductRepository; use app\common\repositories\system\merchant\FinancialRecordRepository; @@ -1185,6 +1186,14 @@ class StoreRefundOrderRepository extends BaseRepository //退供应链订单 (new StoreOrderOtherDao())->refund($refundOrder); + //订单退款,减少当前商户销售金额和下单商户采购金额 + $money = bcadd($refundOrder['refund_price'], $refundOrder['refund_consumption'], 2); + Merchant::where('mer_id', $refundOrder['mer_id'])->update(['sale_amount' => Db::raw('sale_amount-' . $money)]); + $merId = Merchant::where('uid', $refundOrder['uid'])->value('mer_id'); + if (!empty($merId)) { + Merchant::where('mer_id', $merId)->update(['purchase_amount' => Db::raw('purchase_amount-' . $money)]); + } + $productIds = CloudProduct::where('activity_id', 2)->column('product_id'); StoreActivityOrderProduct::where('user_id', $refundOrder->order['uid']) ->whereIn('product_id', $productIds)