diff --git a/app/api/logic/order/OrderLogic.php b/app/api/logic/order/OrderLogic.php index d95294fed..2f06de940 100644 --- a/app/api/logic/order/OrderLogic.php +++ b/app/api/logic/order/OrderLogic.php @@ -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), diff --git a/app/common/enum/UserShipEnum.php b/app/common/enum/UserShipEnum.php new file mode 100644 index 000000000..ea4b84ccf --- /dev/null +++ b/app/common/enum/UserShipEnum.php @@ -0,0 +1,16 @@ +