diff --git a/app/common/repositories/store/order/StoreRefundOrderRepository.php b/app/common/repositories/store/order/StoreRefundOrderRepository.php index 5d014f67..b47ba88b 100644 --- a/app/common/repositories/store/order/StoreRefundOrderRepository.php +++ b/app/common/repositories/store/order/StoreRefundOrderRepository.php @@ -17,6 +17,7 @@ namespace app\common\repositories\store\order; use app\common\dao\store\order\StoreRefundOrderDao; use app\common\model\store\order\StoreOrder; use app\common\model\store\order\StoreRefundOrder; +use app\common\model\system\merchant\FinancialRecord; use app\common\repositories\BaseRepository; use app\common\repositories\store\product\ProductRepository; use app\common\repositories\system\merchant\FinancialRecordRepository; @@ -1136,6 +1137,11 @@ class StoreRefundOrderRepository extends BaseRepository if ($refundOrder->order->commission_rate > 0) { $_refundRate = bcmul($commission_rate, bcsub($refundPrice, $extension, 2), 2); } + $autoMargin = FinancialRecord::getInstance() + ->where(['order_id' => $refundOrder->order->order_id, 'mer_id' => $refundOrder['mer_id'], 'financial_type' => 'auto_margin']) + ->sum('number'); + $refundPrice = bcsub($refundPrice, $autoMargin, 2); + return bcsub(bcsub($refundPrice, $extension, 2), $_refundRate, 2); } diff --git a/app/listener/AfterRefund.php b/app/listener/AfterRefund.php index 2e1dcf7e..f8da1957 100644 --- a/app/listener/AfterRefund.php +++ b/app/listener/AfterRefund.php @@ -46,7 +46,6 @@ class AfterRefund $merchant->is_margin = MerchantRepository::NeedMargin; } $merchant->save(); - $this->addMoney($financialRecord); $this->saveFinanceRecord($financialRecord); } } @@ -61,14 +60,6 @@ class AfterRefund $merchantRepository->subLockMoney($financialRecord['mer_id'], 'order', $this->refundOrder['order_id'], (float)$financialRecord['number']); } - public function addMoney($financialRecord) - { - Log::info("refundCommission, mer_id: {$financialRecord['mer_id']}, money: {$financialRecord['number']}"); - /** @var MerchantRepository $merchantRepository */ - $merchantRepository = app()->make(MerchantRepository::class); - $merchantRepository->addMoney($financialRecord['mer_id'], (float)$financialRecord['number']); - } - public function saveFinanceRecord($financialRecord) { /** @var FinancialRecordRepository $financialRecordRepository */