调整批零端计算下单价格接口
parent
3ea9612ae5
commit
454e5d39d3
|
|
@ -182,9 +182,13 @@ class OrderController extends Controller
|
|||
]);
|
||||
|
||||
$product = DealerProduct::online()->findOrFail($input['product_id']);
|
||||
$user = $request->user();
|
||||
|
||||
$totalAmount = $orderService->totalAmount($user, $product, $input['num']);
|
||||
|
||||
return response()->json([
|
||||
'total_amount'=> $orderService->totalAmount($request->user(), $product, $input['num']),
|
||||
'total_amount'=> $totalAmount,
|
||||
'to_lvl'=>$orderService->willBecome($user, $totalAmount),
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -67,6 +67,39 @@ class OrderService
|
|||
return bcmul($this->getSalePrice($user, $product, $allNumber ?? $number), $number, 2);
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算即将成为的身份
|
||||
*
|
||||
* @param User $user
|
||||
* @param [float] $totalAmount
|
||||
* @return DealerLvl
|
||||
*/
|
||||
public function willBecome(User $user, $totalAmount): DealerLvl
|
||||
{
|
||||
$rules = [
|
||||
[
|
||||
'amount' => app_settings('dealer.upgrade_amount_'.DealerLvl::Contracted->value),
|
||||
'lvl' => DealerLvl::Contracted,
|
||||
],
|
||||
[
|
||||
'amount' => app_settings('dealer.upgrade_amount_'.DealerLvl::Special->value),
|
||||
'lvl' => DealerLvl::Special,
|
||||
],
|
||||
[
|
||||
'amount' => app_settings('dealer.upgrade_amount_'.DealerLvl::Gold->value),
|
||||
'lvl' => DealerLvl::Gold,
|
||||
],
|
||||
];
|
||||
$lvl = $user->dealer->lvl;
|
||||
//计算通过这个订单可能升级成为的身份
|
||||
foreach ($rules as $rule) {
|
||||
if ($totalAmount >= $rule['amount'] && $lvl->value < $rule['lvl']->value) {
|
||||
$lvl = $rule['lvl'];
|
||||
}
|
||||
}
|
||||
return $lvl;
|
||||
}
|
||||
|
||||
/**
|
||||
* 快捷创建订单(单个商品下单)
|
||||
*
|
||||
|
|
@ -695,44 +728,32 @@ class OrderService
|
|||
|
||||
private function getConsignor(User $user, $totalAmount, ?User $lastConsignor = null)
|
||||
{
|
||||
$rules = [
|
||||
[
|
||||
'amount' => app_settings('dealer.upgrade_amount_'.DealerLvl::Contracted->value),
|
||||
'lvl' => DealerLvl::Contracted,
|
||||
],
|
||||
[
|
||||
'amount' => app_settings('dealer.upgrade_amount_'.DealerLvl::Special->value),
|
||||
'lvl' => DealerLvl::Special,
|
||||
],
|
||||
[
|
||||
'amount' => app_settings('dealer.upgrade_amount_'.DealerLvl::Gold->value),
|
||||
'lvl' => DealerLvl::Gold,
|
||||
],
|
||||
];
|
||||
$lvl = $user->dealer->lvl;
|
||||
//计算通过这个订单可能升级成为的身份
|
||||
foreach ($rules as $rule) {
|
||||
if ($totalAmount >= $rule['amount'] && $lvl->value < $rule['lvl']->value) {
|
||||
$lvl = $rule['lvl'];
|
||||
}
|
||||
}
|
||||
// $rules = [
|
||||
// [
|
||||
// 'amount' => app_settings('dealer.upgrade_amount_'.DealerLvl::Contracted->value),
|
||||
// 'lvl' => DealerLvl::Contracted,
|
||||
// ],
|
||||
// [
|
||||
// 'amount' => app_settings('dealer.upgrade_amount_'.DealerLvl::Special->value),
|
||||
// 'lvl' => DealerLvl::Special,
|
||||
// ],
|
||||
// [
|
||||
// 'amount' => app_settings('dealer.upgrade_amount_'.DealerLvl::Gold->value),
|
||||
// 'lvl' => DealerLvl::Gold,
|
||||
// ],
|
||||
// ];
|
||||
// $lvl = $user->dealer->lvl;
|
||||
// //计算通过这个订单可能升级成为的身份
|
||||
// foreach ($rules as $rule) {
|
||||
// if ($totalAmount >= $rule['amount'] && $lvl->value < $rule['lvl']->value) {
|
||||
// $lvl = $rule['lvl'];
|
||||
// }
|
||||
// }
|
||||
$lvl = $this->willBecome($user, $totalAmount);
|
||||
//如果是签约单,直接抛到公司后台发货
|
||||
if ($lvl->value >= DealerLvl::Contracted->value) {
|
||||
return null;
|
||||
}
|
||||
// //老逻辑;
|
||||
// $query = UserInfo::with('dealer');
|
||||
// if ($lastConsignor) {
|
||||
// $query->whereIn('user_id', $lastConsignor->userInfo->real_parent_ids);//上个发货人的上级
|
||||
// } else {
|
||||
// $query->whereIn('user_id', $user->userInfo->real_parent_ids);//自己的上级
|
||||
// }
|
||||
// $consignor = $query->whereHas('dealer', function ($q) use ($lvl) {
|
||||
// return $q->where('is_sale', true)->where('lvl', '>', $lvl);//可销售的经销商,且身份大于自己的
|
||||
// })->orderBy('depth', 'desc')->first();//深度逆序第一个
|
||||
// if (!$consignor) {
|
||||
// $consignor = $lastConsignor;
|
||||
// }
|
||||
//新逻辑
|
||||
$consignor = null;
|
||||
$_lastConsignor = $lastConsignor;
|
||||
|
|
|
|||
Loading…
Reference in New Issue