调整店铺抵扣券使用规则

This commit is contained in:
luofei 2024-02-23 10:51:07 +08:00
parent 3ded469859
commit 2126e51e89
4 changed files with 23 additions and 9 deletions

View File

@ -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) {

View File

@ -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) {

View File

@ -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;

View File

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