From a94ac58e34dea86373579650e4e1778edcfdfa67 Mon Sep 17 00:00:00 2001 From: wuhui_zzw <1760308791@qq.com> Date: Thu, 4 Jan 2024 09:58:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=EF=BC=9A=E5=95=86=E5=93=81?= =?UTF-8?q?=E7=8B=AC=E7=AB=8B=E8=AE=BE=E7=BD=AE=E6=8A=BD=E6=88=90=E6=AF=94?= =?UTF-8?q?=E4=BE=8B=E6=88=96=E5=9B=BA=E5=AE=9A=E9=87=91=E9=A2=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/admin/store/StoreProduct.php | 15 +++++++++- .../OrderPaySuccessEvent.php | 28 +++++++++++++++---- 2 files changed, 36 insertions(+), 7 deletions(-) diff --git a/app/controller/admin/store/StoreProduct.php b/app/controller/admin/store/StoreProduct.php index ddd8e55..0234b4b 100644 --- a/app/controller/admin/store/StoreProduct.php +++ b/app/controller/admin/store/StoreProduct.php @@ -151,7 +151,20 @@ class StoreProduct extends BaseController */ public function checkParams(validate $validate) { - $data = $this->request->params(['is_hot','is_best','is_benefit','is_new','store_name','content','rank','star']); + $data = $this->request->params([ + 'is_hot', + 'is_best', + 'is_benefit', + 'is_new', + 'store_name', + 'content', + 'rank', + 'star', + 'platform_commission_switch', + 'platform_commission_type', + 'platform_commission_rate', + 'platform_commission_money', + ]); $validate->check($data); return $data; } diff --git a/app/listener/platformCommission/OrderPaySuccessEvent.php b/app/listener/platformCommission/OrderPaySuccessEvent.php index 31f07b4..cf492d3 100644 --- a/app/listener/platformCommission/OrderPaySuccessEvent.php +++ b/app/listener/platformCommission/OrderPaySuccessEvent.php @@ -61,17 +61,33 @@ class OrderPaySuccessEvent{ foreach($groupOrder->orderList as $orderInfo){ $orderIds[] = $orderInfo->order_id; foreach($orderInfo->orderProduct as $orderProductInfo){ - // 获取商户设置抽成比例 获取抽成总金额 - $platformCommissionRate = (float)Merchant::getDB()->where('mer_id', $orderInfo->mer_id)->value('platform_commission'); + // 获取商品订单金额 = 当前商品实际支付金额 + 豆豆积分抵扣金额 + $orderTotalPrice = sprintf("%.2f",$orderProductInfo->product_price + $orderProductInfo->use_legumes_integral); + // 获取抽成金额 + $platformCommissionRate = -1;// 抽成比例 -1=固定金额 + $productInfo = $orderProductInfo->product;// 商品信息 + if($productInfo->platform_commission_switch == 1){ + // 独立设置 + if($productInfo->platform_commission_type == 1) { + // 固定金额 + $platformCommissionMoney = $productInfo->platform_commission_money; + }else{ + // 独立比例 + $platformCommissionRate = $productInfo->platform_commission_rate; + $platformCommissionMoney = (float)sprintf("%.2f",$orderTotalPrice * $platformCommissionRate / 100); + } + }else{ + // 统一设置 获取商户设置抽成比例 获取抽成总金额 + $platformCommissionRate = (float)Merchant::getDB()->where('mer_id', $orderInfo->mer_id)->value('platform_commission'); + $platformCommissionMoney = (float)sprintf("%.2f",$orderTotalPrice * $platformCommissionRate / 100); + } // 使用商品售价进行处理 - if($orderProductInfo->total_price > 0 && $platformCommissionRate > 0){ - // 获取平台抽成中总金额 - $platformCommissionMoney = (float)sprintf("%.2f",$orderProductInfo->total_price * $platformCommissionRate / 100); + if($platformCommissionMoney > 0){ // 生成信息数组 $insertData[] = [ 'uid' => $orderProductInfo->uid, 'order_id' => $orderProductInfo->order_id, - 'order_total_price' => $orderInfo->total_price, + 'order_total_price' => $orderTotalPrice, 'order_product_id' => $orderProductInfo->order_product_id, 'order_product_total_price' => $orderProductInfo->total_price, 'mer_id' => $orderInfo->mer_id,