From 2126e51e8990692f6fed6195874d903e84b116fe Mon Sep 17 00:00:00 2001 From: luofei <604446095@qq.com> Date: Fri, 23 Feb 2024 10:51:07 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=BA=97=E9=93=BA=E6=8A=B5?= =?UTF-8?q?=E6=89=A3=E5=88=B8=E4=BD=BF=E7=94=A8=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/store/coupon/StoreCouponUserDao.php | 8 ++++---- app/common/dao/store/order/StoreCartDao.php | 2 +- .../order/StoreOrderCreateRepository.php | 20 ++++++++++++++++--- crmeb/listens/OrderDeliveryListen.php | 2 +- 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/app/common/dao/store/coupon/StoreCouponUserDao.php b/app/common/dao/store/coupon/StoreCouponUserDao.php index deaa0ea2..29e5cd47 100644 --- a/app/common/dao/store/coupon/StoreCouponUserDao.php +++ b/app/common/dao/store/coupon/StoreCouponUserDao.php @@ -251,10 +251,10 @@ class StoreCouponUserDao extends BaseDao public function getRate($profitRate) { $rateArray = [ - '0.25' => 0.4, - '0.2' => 0.3, - '0.15' => 0.2, - '0.1' => 0.1, + 25 => 0.4, + 20 => 0.3, + 15 => 0.2, + 10 => 0.1, ]; $rate = 0; foreach ($rateArray as $k => $item) { diff --git a/app/common/dao/store/order/StoreCartDao.php b/app/common/dao/store/order/StoreCartDao.php index cf854637..7de0d7c0 100644 --- a/app/common/dao/store/order/StoreCartDao.php +++ b/app/common/dao/store/order/StoreCartDao.php @@ -101,7 +101,7 @@ class StoreCartDao extends BaseDao } }, 'productAttr' => function (Relation $query) { - $query->field('value_id,image,extension_one,extension_two,product_id,stock,price,unique,sku,volume,weight,ot_price,cost,svip_price') + $query->field('value_id,image,extension_one,extension_two,product_id,stock,price,unique,sku,volume,weight,ot_price,cost,svip_price,profit_rate') ->append(['bc_extension_one', 'bc_extension_two']); }, 'merchant' => function (Relation $query) use ($uid) { diff --git a/app/common/repositories/store/order/StoreOrderCreateRepository.php b/app/common/repositories/store/order/StoreOrderCreateRepository.php index c1633129..26952ca7 100644 --- a/app/common/repositories/store/order/StoreOrderCreateRepository.php +++ b/app/common/repositories/store/order/StoreOrderCreateRepository.php @@ -145,7 +145,7 @@ class StoreOrderCreateRepository extends StoreOrderRepository $down_price = bcadd($down_price, bcmul($cart['cart_num'], $cart['productPresellAttr']['down_price'], 2), 2); } $merchantCate = $cart['product']->merCateId; - if ($cart['product']['type'] == 1 && !empty($merchantCate) && $merchantCate[0]['mer_cate_id'] == env('PLATFORM_CARD_TYPE_ID') && $enabledPlatformCoupon) { + if ($cart['product']['type'] == 1 && !empty($merchantCate) && $merchantCate[0]['mer_cate_id'] == env('PLATFORM_CARD_CATE_ID') && $enabledPlatformCoupon) { $enabledPlatformCoupon = false; $enabledCoupon = false; } @@ -395,6 +395,7 @@ class StoreOrderCreateRepository extends StoreOrderRepository if (!in_array($coupon['coupon']['type'], [0, 2])) continue; $coupon['checked'] = false; $coupon['disabled'] = $pay_price <= 0; + $couponUsed = 0; if ($use_store_coupon || $pay_price <= 0) continue; if ($svip_coupon_merge != '1' && $use_svip) { $coupon['disabled'] = true; @@ -408,8 +409,21 @@ class StoreOrderCreateRepository extends StoreOrderRepository } } $use_store_coupon = $coupon; - $coupon_price = bcadd($coupon_price, $coupon['coupon_price'], 2); - $_pay_price = bcsub($_pay_price, $coupon['coupon_price'], 2); + if ($coupon['coupon_type'] == StoreCouponRepository::TYPE_STORE_COUPON) { + foreach ($merchantCart['list'] as $cart) { + $storeCouponUserDao = new StoreCouponUserDao(); + $storeCouponUserDao->orderProductPrice = $cart['total_price']; + $storeCouponUserDao->profitRate = $cart['productAttr']['profit_rate']; + $storeCouponUserDao->couponTotalAmount = $coupon['coupon_price']; + $storeCouponUserDao->couponUsed = $couponUsed; + [$payPrice, $useAmount, $couponUsed] = $storeCouponUserDao->couponByProduct($coupon['coupon_type']); + $coupon_price = bcadd($coupon_price, $useAmount, 2); + $_pay_price = bcsub($_pay_price, $useAmount, 2); + } + } else { + $coupon_price = bcadd($coupon_price, $coupon['coupon_price'], 2); + $_pay_price = bcsub($_pay_price, $coupon['coupon_price'], 2); + } $coupon['checked'] = true; } else { $coupon['disabled'] = true; diff --git a/crmeb/listens/OrderDeliveryListen.php b/crmeb/listens/OrderDeliveryListen.php index 2362dfb9..11383105 100644 --- a/crmeb/listens/OrderDeliveryListen.php +++ b/crmeb/listens/OrderDeliveryListen.php @@ -16,7 +16,7 @@ class OrderDeliveryListen implements ListenerInterface $order = $event['order']; foreach ($order->orderProduct as $orderProduct) { $merchantCate = $orderProduct->product->merCateId; - if (empty($merchantCate) || $merchantCate[0]['mer_cate_id'] != env('PLATFORM_CARD_TYPE_ID')) { + if (empty($merchantCate) || $merchantCate[0]['mer_cate_id'] != env('PLATFORM_CARD_CATE_ID')) { continue; } /** @var StoreCouponRepository $repo */