48 lines
1.2 KiB
PHP
48 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Services\Dealer;
|
|
|
|
use App\Models\DealerProduct;
|
|
use App\Models\User;
|
|
|
|
class OrderService
|
|
{
|
|
/**
|
|
* 计算订单价格
|
|
*
|
|
* @param DealerProduct $product
|
|
* @param integer $number
|
|
* @return void
|
|
*/
|
|
public function totalAmount(User $user, DealerProduct $product, int $number = 0)
|
|
{
|
|
//获取等级规则,判断当前用户等级是否配置等级价格
|
|
$salePrice = $product->price;
|
|
if ($user->dealer) {
|
|
foreach ($product->lvlRules as $rule) {
|
|
if ($rule->lvl == $user->dealer->lvl) {
|
|
$salePrice = $rule->sale_price;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
//获取销售规则,判断当前用户购买数量价格
|
|
foreach ($product->saleRules as $rule) {
|
|
if ($number >= $rule->qty) {
|
|
if ($salePrice > $rule->price) {
|
|
$salePrice = $rule->price;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
// dd($salePrice, $number);
|
|
|
|
return bcmul($salePrice, $number, 2);
|
|
}
|
|
|
|
public function createOrder(User $user, DealerProduct $product, int $number = 0)
|
|
{
|
|
}
|
|
}
|