diff --git a/app/event.php b/app/event.php index 42fd85e..15d4be9 100644 --- a/app/event.php +++ b/app/event.php @@ -69,7 +69,7 @@ return [ ], // 订单核销成功事件触发 'order.verify' => [ - // 酒卡额度解冻 + // 订单核销成功 - 平台抽成相关冻结内容解冻 'app\listener\platformCommission\OrderTakeEvent' ], ], diff --git a/app/listener/platformCommission/OrderPaySuccessEvent.php b/app/listener/platformCommission/OrderPaySuccessEvent.php index c3f06d0..b8c2a98 100644 --- a/app/listener/platformCommission/OrderPaySuccessEvent.php +++ b/app/listener/platformCommission/OrderPaySuccessEvent.php @@ -21,6 +21,7 @@ class OrderPaySuccessEvent{ $groupOrder = $groupOrder['groupOrder']; try{ Log::info('支付成功 - 平台抽成处理 - 开始: '.var_export(['uid'=>$groupOrder->uid,'group_order_id'=>$groupOrder->group_order_id],1)); + // 订单支付成功 - 平台抽成处理 $this->orderPaySuccessHandle($groupOrder); // 订单支付成功 触发购买商品升级 Queue::push(UserBrokerageLevelJob::class,[ @@ -71,17 +72,17 @@ class OrderPaySuccessEvent{ if($productInfo->platform_commission_switch == 1){ // 独立设置 if($productInfo->platform_commission_type == 1) { - // 固定金额 - $platformCommissionMoney = $productInfo->platform_commission_money; + // 固定金额 最终抽成金额需要乘以购买数量 + $platformCommissionMoney = (float)sprintf("%.3f",$productInfo->platform_commission_money * $orderProductInfo->product_num); }else{ // 独立比例 $platformCommissionRate = $productInfo->platform_commission_rate; - $platformCommissionMoney = (float)sprintf("%.2f",$orderTotalPrice * $platformCommissionRate / 100); + $platformCommissionMoney = (float)sprintf("%.3f",$orderTotalPrice * $platformCommissionRate / 100); } }else{ // 统一设置 获取商户设置抽成比例 获取抽成总金额 $platformCommissionRate = (float)Merchant::getDB()->where('mer_id', $orderInfo->mer_id)->value('platform_commission'); - $platformCommissionMoney = (float)sprintf("%.2f",$orderTotalPrice * $platformCommissionRate / 100); + $platformCommissionMoney = (float)sprintf("%.3f",$orderTotalPrice * $platformCommissionRate / 100); } // 使用商品售价进行处理 if($platformCommissionMoney > 0){ @@ -113,9 +114,10 @@ class OrderPaySuccessEvent{ ->where('type', 'order') ->where('category', 'mer_lock_money') ->where('pm', 1) - ->dec('number',$platformCommissionMoney) ->update(); + ->dec('number',$platformCommissionMoney) + ->update(); } else { - Merchant::where('mer_id', $orderInfo->mer_id)->dec('mer_money',$platformCommissionMoney) ->update(); + Merchant::where('mer_id', $orderInfo->mer_id)->dec('mer_money',$platformCommissionMoney)->update(); } } }