加上会员等级扣费

This commit is contained in:
liu 2024-06-05 16:18:25 +08:00
parent 17d0440ef5
commit a648821407
3 changed files with 65 additions and 1 deletions

View File

@ -4,6 +4,7 @@ namespace app\api\logic\order;
use app\common\enum\OrderEnum;
use app\common\enum\PayEnum;
use app\common\enum\UserShipEnum;
use app\common\enum\YesNoEnum;
use app\common\logic\BaseLogic;
use app\common\logic\CapitalFlowLogic;
@ -19,6 +20,7 @@ use app\common\model\system_store\SystemStore;
use app\common\model\system_store\SystemStoreStaff;
use app\common\model\user\User;
use app\common\model\user\UserAddress;
use app\common\model\user\UserShip;
use support\Log;
use taoser\exception\ValidateException;
use think\Exception;
@ -72,11 +74,44 @@ class OrderLogic extends BaseLogic
$cart_select[$k]['unit_name'] = StoreProductUnit::where(['id' => $find['unit']])->value('name');
self::$total = bcadd(self::$total, $cart_select[$k]['total'], 2);
}
//TODO 收单打9.9折 会员按照比例打折 等级按照充值去升级
$pay_price = self::$total;
$check = StoreOrder::where('uid',\request()->userId)->count();
if(empty($check)){
$discountRate = '0.99';
$pay_price = bcdiv(bcmul($pay_price, $discountRate, 4), '1', 2);
}else{
$userVip = User::where('id',\request()->userId)->value('user_ship');
if($userVip){
switch ($userVip){
case UserShipEnum::VIP1:
$discountRate = UserShip::where('id',UserShipEnum::VIP1)->value('discount');
break;
case UserShipEnum::VIP2:
$discountRate = UserShip::where('id',UserShipEnum::VIP2)->value('discount');
break;
case UserShipEnum::VIP3:
$discountRate = UserShip::where('id',UserShipEnum::VIP3)->value('discount');
break;
case UserShipEnum::VIP4:
$discountRate = UserShip::where('id',UserShipEnum::VIP4)->value('discount');
break;
case UserShipEnum::VIP5:
$discountRate = UserShip::where('id',UserShipEnum::VIP5)->value('discount');
break;
default:
$discountRate = 1;
}
$pay_price = bcdiv(bcmul($pay_price, $discountRate, 4), '1', 2);
}
}
$order = [
'create_time' => time(),
'order_id' => getNewOrderId('PF'),
'total_price' => self::$total,//总价
'pay_price' => self::$total,//后期可能有降价抵扣
'pay_price' => $pay_price,//后期可能有降价抵扣
'total_num' => count($cart_select),//总数
'pay_type' => $params['pay_type'] ?? 0,
'cart_id' => implode(',', $cartId),

View File

@ -0,0 +1,16 @@
<?php
namespace app\common\enum;
class UserShipEnum
{
/**
* 会员等级
*/
const VIP1 = 1;
const VIP2 = 7;
const VIP3 = 8;
const VIP4 = 9;
const VIP5 = 10;
}

View File

@ -0,0 +1,13 @@
<?php
namespace app\common\model\user;
use app\common\model\BaseModel;
use think\model\concern\SoftDelete;
class UserShip extends BaseModel
{
use SoftDelete;
protected $name = 'user_ship';
protected $deleteTime = 'delete_time';
}