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 */