修改支付下单金额逻辑
This commit is contained in:
parent
d1896638d5
commit
2fadf3f8e0
@ -897,7 +897,7 @@ class StoreOrderCreateRepository extends StoreOrderRepository
|
|||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function v2CreateOrder($key, int $pay_type, $user, array $cartId, array $extend, array $mark, array $receipt_data, array $takes = null, array $useCoupon = null, bool $useIntegral = false, int $addressId = null, array $post)
|
public function v2CreateOrder($key, int $pay_type, $user, array $cartId, array $extend, array $mark, array $receipt_data, array $takes = null, array $useCoupon = null, bool $useIntegral = false, int $addressId = null, array $post,$remarkMoney)
|
||||||
{
|
{
|
||||||
$uid = $user->uid;
|
$uid = $user->uid;
|
||||||
// $orderInfo = $this->v2CartIdByOrderInfo($user, $cartId, $takes, $useCoupon, $useIntegral, $addressId, true);
|
// $orderInfo = $this->v2CartIdByOrderInfo($user, $cartId, $takes, $useCoupon, $useIntegral, $addressId, true);
|
||||||
@ -1134,6 +1134,14 @@ class StoreOrderCreateRepository extends StoreOrderRepository
|
|||||||
$totalCost = bcadd($totalCost, $cost, 2);
|
$totalCost = bcadd($totalCost, $cost, 2);
|
||||||
$totalNum += $merchantCart['order']['total_num'];
|
$totalNum += $merchantCart['order']['total_num'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//当$remarkMoney不为0得时候就是输入金额匹配去处理得
|
||||||
|
$pay_price = $orderInfo['order_price'];
|
||||||
|
$coupon_price = bcadd($orderInfo['total_platform_coupon_price'], $orderInfo['order_coupon_price'], 2);
|
||||||
|
if($remarkMoney){
|
||||||
|
$pay_price = $remarkMoney;//输入得金额
|
||||||
|
$coupon_price = $orderInfo['order_price'] -$pay_price;
|
||||||
|
}
|
||||||
$groupOrder = [
|
$groupOrder = [
|
||||||
'uid' => $uid,
|
'uid' => $uid,
|
||||||
'group_order_sn' => count($orderList) === 1 ? $orderList[0]['order_sn'] : ($this->getNewOrderId(StoreOrderRepository::TYPE_SN_ORDER) . '0'),
|
'group_order_sn' => count($orderList) === 1 ? $orderList[0]['order_sn'] : ($this->getNewOrderId(StoreOrderRepository::TYPE_SN_ORDER) . '0'),
|
||||||
@ -1143,8 +1151,8 @@ class StoreOrderCreateRepository extends StoreOrderRepository
|
|||||||
'real_name' => $address['real_name'] ?? '',
|
'real_name' => $address['real_name'] ?? '',
|
||||||
'user_phone' => $address['phone'] ?? '',
|
'user_phone' => $address['phone'] ?? '',
|
||||||
'user_address' => $user_address,
|
'user_address' => $user_address,
|
||||||
'pay_price' => $orderInfo['order_price'],
|
'pay_price' => $pay_price,
|
||||||
'coupon_price' => bcadd($orderInfo['total_platform_coupon_price'], $orderInfo['order_coupon_price'], 2),
|
'coupon_price' => $coupon_price,
|
||||||
'pay_postage' => $totalPostage,
|
'pay_postage' => $totalPostage,
|
||||||
'cost' => $totalCost,
|
'cost' => $totalCost,
|
||||||
'coupon_id' => $orderInfo['usePlatformCouponId'] > 0 ? $orderInfo['usePlatformCouponId'] : '',
|
'coupon_id' => $orderInfo['usePlatformCouponId'] > 0 ? $orderInfo['usePlatformCouponId'] : '',
|
||||||
@ -1157,7 +1165,7 @@ class StoreOrderCreateRepository extends StoreOrderRepository
|
|||||||
'sale_type' => $saleType,
|
'sale_type' => $saleType,
|
||||||
];
|
];
|
||||||
event('order.create.before', compact('groupOrder', 'orderList'));
|
event('order.create.before', compact('groupOrder', 'orderList'));
|
||||||
$group = Db::transaction(function () use ($ex, $user, $topUid, $spreadUid, $uid, $receipt_data, $cartIds, $allUseCoupon, $groupOrder, $orderList, $orderInfo, $useCoupon) {
|
$group = Db::transaction(function () use ($ex, $user, $topUid, $spreadUid, $uid, $receipt_data, $cartIds, $allUseCoupon, $groupOrder, $orderList, $orderInfo, $useCoupon,$pay_type) {
|
||||||
$storeGroupOrderRepository = app()->make(StoreGroupOrderRepository::class);
|
$storeGroupOrderRepository = app()->make(StoreGroupOrderRepository::class);
|
||||||
$storeCartRepository = app()->make(StoreCartRepository::class);
|
$storeCartRepository = app()->make(StoreCartRepository::class);
|
||||||
$attrValueRepository = app()->make(ProductAttrValueRepository::class);
|
$attrValueRepository = app()->make(ProductAttrValueRepository::class);
|
||||||
@ -1169,46 +1177,49 @@ class StoreOrderCreateRepository extends StoreOrderRepository
|
|||||||
$userMerchantRepository = app()->make(UserMerchantRepository::class);
|
$userMerchantRepository = app()->make(UserMerchantRepository::class);
|
||||||
$storeCouponUserDao = new StoreCouponUserDao();
|
$storeCouponUserDao = new StoreCouponUserDao();
|
||||||
|
|
||||||
//减库存
|
//减库存 ---不为对公转账
|
||||||
foreach ($orderList as $order) {
|
|
||||||
foreach ($order['cartInfo']['list'] as $cart) {
|
|
||||||
if (!isset($uniqueList[$cart['productAttr']['product_id'] . $cart['productAttr']['unique']]))
|
|
||||||
$uniqueList[$cart['productAttr']['product_id'] . $cart['productAttr']['unique']] = true;
|
|
||||||
else
|
|
||||||
throw new ValidateException('购物车商品信息重复');
|
|
||||||
//线下扫码支付不扣库存
|
|
||||||
if ($this->isScanOrder) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
if ($pay_type != Enum::public) {
|
||||||
if ($cart['product_type'] == '1') {
|
foreach ($orderList as $order) {
|
||||||
$attrValueRepository->descSkuStock($cart['product']['old_product_id'], $cart['productAttr']['sku'], $cart['cart_num']);
|
foreach ($order['cartInfo']['list'] as $cart) {
|
||||||
$productRepository->descStock($cart['product']['old_product_id'], $cart['cart_num']);
|
if (!isset($uniqueList[$cart['productAttr']['product_id'] . $cart['productAttr']['unique']]))
|
||||||
// $productRepository->incSales($cart['product']['old_product_id'], $cart['cart_num']);
|
$uniqueList[$cart['productAttr']['product_id'] . $cart['productAttr']['unique']] = true;
|
||||||
$productRepository->incSales($cart['product']['product_id'], $cart['cart_num']);
|
else
|
||||||
} else if ($cart['product_type'] == '2') {
|
throw new ValidateException('购物车商品信息重复');
|
||||||
$productPresellSkuRepository = app()->make(ProductPresellSkuRepository::class);
|
//线下扫码支付不扣库存
|
||||||
$productPresellSkuRepository->descStock($cart['productPresellAttr']['product_presell_id'], $cart['productPresellAttr']['unique'], $cart['cart_num']);
|
if ($this->isScanOrder) {
|
||||||
$attrValueRepository->descStock($cart['productAttr']['product_id'], $cart['productAttr']['unique'], $cart['cart_num']);
|
continue;
|
||||||
$productRepository->descStock($cart['product']['product_id'], $cart['cart_num']);
|
}
|
||||||
} else if ($cart['product_type'] == '3') {
|
|
||||||
app()->make(ProductAssistSkuRepository::class)->descStock($cart['productAssistAttr']['product_assist_id'], $cart['productAssistAttr']['unique'], $cart['cart_num']);
|
try {
|
||||||
$productRepository->descStock($cart['product']['old_product_id'], $cart['cart_num']);
|
if ($cart['product_type'] == '1') {
|
||||||
$attrValueRepository->descStock($cart['product']['old_product_id'], $cart['productAttr']['unique'], $cart['cart_num']);
|
$attrValueRepository->descSkuStock($cart['product']['old_product_id'], $cart['productAttr']['sku'], $cart['cart_num']);
|
||||||
} else if ($cart['product_type'] == '4') {
|
$productRepository->descStock($cart['product']['old_product_id'], $cart['cart_num']);
|
||||||
app()->make(ProductGroupSkuRepository::class)->descStock($cart['activeSku']['product_group_id'], $cart['activeSku']['unique'], $cart['cart_num']);
|
// $productRepository->incSales($cart['product']['old_product_id'], $cart['cart_num']);
|
||||||
$productRepository->descStock($cart['product']['old_product_id'], $cart['cart_num']);
|
$productRepository->incSales($cart['product']['product_id'], $cart['cart_num']);
|
||||||
$attrValueRepository->descStock($cart['product']['old_product_id'], $cart['productAttr']['unique'], $cart['cart_num']);
|
} else if ($cart['product_type'] == '2') {
|
||||||
} else {
|
$productPresellSkuRepository = app()->make(ProductPresellSkuRepository::class);
|
||||||
$attrValueRepository->descStock($cart['productAttr']['product_id'], $cart['productAttr']['unique'], $cart['cart_num']);
|
$productPresellSkuRepository->descStock($cart['productPresellAttr']['product_presell_id'], $cart['productPresellAttr']['unique'], $cart['cart_num']);
|
||||||
$productRepository->descStock($cart['product']['product_id'], $cart['cart_num']);
|
$attrValueRepository->descStock($cart['productAttr']['product_id'], $cart['productAttr']['unique'], $cart['cart_num']);
|
||||||
if ($cart['integral'] && $cart['integral']['use'] > 0) {
|
$productRepository->descStock($cart['product']['product_id'], $cart['cart_num']);
|
||||||
$productRepository->incIntegral($cart['product']['product_id'], $cart['integral']['use'], $cart['integral']['price']);
|
} else if ($cart['product_type'] == '3') {
|
||||||
}
|
app()->make(ProductAssistSkuRepository::class)->descStock($cart['productAssistAttr']['product_assist_id'], $cart['productAssistAttr']['unique'], $cart['cart_num']);
|
||||||
|
$productRepository->descStock($cart['product']['old_product_id'], $cart['cart_num']);
|
||||||
|
$attrValueRepository->descStock($cart['product']['old_product_id'], $cart['productAttr']['unique'], $cart['cart_num']);
|
||||||
|
} else if ($cart['product_type'] == '4') {
|
||||||
|
app()->make(ProductGroupSkuRepository::class)->descStock($cart['activeSku']['product_group_id'], $cart['activeSku']['unique'], $cart['cart_num']);
|
||||||
|
$productRepository->descStock($cart['product']['old_product_id'], $cart['cart_num']);
|
||||||
|
$attrValueRepository->descStock($cart['product']['old_product_id'], $cart['productAttr']['unique'], $cart['cart_num']);
|
||||||
|
} else {
|
||||||
|
$attrValueRepository->descStock($cart['productAttr']['product_id'], $cart['productAttr']['unique'], $cart['cart_num']);
|
||||||
|
$productRepository->descStock($cart['product']['product_id'], $cart['cart_num']);
|
||||||
|
if ($cart['integral'] && $cart['integral']['use'] > 0) {
|
||||||
|
$productRepository->incIntegral($cart['product']['product_id'], $cart['integral']['use'], $cart['integral']['price']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
throw new ValidateException('库存不足');
|
||||||
}
|
}
|
||||||
} catch (\Exception $e) {
|
|
||||||
throw new ValidateException('库存不足');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -83,7 +83,7 @@ class StoreOrder extends BaseController
|
|||||||
$payType = $this->request->param('pay_type');
|
$payType = $this->request->param('pay_type');
|
||||||
$key = (string)$this->request->param('key');
|
$key = (string)$this->request->param('key');
|
||||||
$post = (array)$this->request->param('post');
|
$post = (array)$this->request->param('post');
|
||||||
|
$remarkMoney = $this->request->param('money')??0;//匹配金额
|
||||||
if(!$key){
|
if(!$key){
|
||||||
return app('json')->fail('订单操作超时,请刷新页面');
|
return app('json')->fail('订单操作超时,请刷新页面');
|
||||||
}
|
}
|
||||||
@ -108,9 +108,9 @@ class StoreOrder extends BaseController
|
|||||||
// if (!$addressId)
|
// if (!$addressId)
|
||||||
// return app('json')->fail('请选择地址');
|
// return app('json')->fail('请选择地址');
|
||||||
|
|
||||||
$groupOrder = app()->make(LockService::class)->exec('order.create', function () use ($key, $orderCreateRepository, $receipt_data, $mark, $extend, $cartId, $payType, $takes, $couponIds, $useIntegral, $addressId, $post) {
|
$groupOrder = app()->make(LockService::class)->exec('order.create', function () use ($key, $orderCreateRepository, $receipt_data, $mark, $extend, $cartId, $payType, $takes, $couponIds, $useIntegral, $addressId, $post,$remarkMoney) {
|
||||||
$orderCreateRepository->isScanOrder = (int)$this->request->param('source') == 999;
|
$orderCreateRepository->isScanOrder = (int)$this->request->param('source') == 999;
|
||||||
return $orderCreateRepository->v2CreateOrder($key, array_search($payType, StoreOrderRepository::PAY_TYPE), $this->request->userInfo(), $cartId, $extend, $mark, $receipt_data, $takes, $couponIds, $useIntegral, $addressId, $post);
|
return $orderCreateRepository->v2CreateOrder($key, array_search($payType, StoreOrderRepository::PAY_TYPE), $this->request->userInfo(), $cartId, $extend, $mark, $receipt_data, $takes, $couponIds, $useIntegral, $addressId, $post,$remarkMoney);
|
||||||
});
|
});
|
||||||
|
|
||||||
if ($isPc) {
|
if ($isPc) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user