This commit is contained in:
luofei 2024-01-21 14:41:38 +08:00
commit e066be0bbc
2 changed files with 60 additions and 76 deletions

View File

@ -585,8 +585,8 @@ class StoreOrderCreateRepository extends StoreOrderRepository
$this->consumption_money = $this->store_consumption_user['balance'];
$a = $this->store_consumption_user['balance'];
} else {
$pay_price=0;
$this->consumption_money = $pay_price;
$pay_price = 0;
$a = $this->consumption_money;
}
}
@ -599,7 +599,6 @@ class StoreOrderCreateRepository extends StoreOrderRepository
foreach ($fn as $callback) {
$callback();
}
$merchantCart['order']['order_type'] = $order_type;
$merchantCart['order']['total_give_integral'] = $total_give_integral;
$merchantCart['order']['total_integral_price'] = $total_integral_price;
@ -633,7 +632,7 @@ class StoreOrderCreateRepository extends StoreOrderRepository
$status = ($address || $order_model || $allow_no_address) ? ($noDeliver ? 'noDeliver' : 'finish') : 'noAddress';
$order = $merchantCartList;
$consumption_money = $this->consumption_money;
$total_price = bcsub($order_total_price,$consumption_money,2);
$total_price = $order_total_price;
$openIntegral = $merIntegralFlag && !$order_type && $sysIntegralConfig['integral_status'] && $sysIntegralConfig['integral_money'] > 0;
$total_coupon = bcadd($order_svip_discount, bcadd(bcadd($total_platform_coupon_price, $order_coupon_price, 2), $order_total_integral_price, 2), 2);
$is_self_pickup = true;
@ -669,10 +668,10 @@ class StoreOrderCreateRepository extends StoreOrderRepository
) + ['allow_address' => !$allow_no_address, 'order_delivery_status' => $orderDeliveryStatus];
}
public function v2CreateOrder(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, int $product_type = 0)
public function v2CreateOrder(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, int $product_type = 0, $consumption_id = 0)
{
$uid = $user->uid;
$orderInfo = $this->v2CartIdByOrderInfo($user, $cartId, $takes, $useCoupon, $useIntegral, $addressId, true);
$orderInfo = $this->v2CartIdByOrderInfo($user, $cartId, $takes, $useCoupon, $useIntegral, $addressId, true, $consumption_id);
$order_model = $orderInfo['order_model'];
$order_extend = $orderInfo['order_extend'];
if (!$orderInfo['order_delivery_status']) {
@ -949,18 +948,18 @@ class StoreOrderCreateRepository extends StoreOrderRepository
if ($groupOrder['consumption_money'] > 0) {
$balance = 0;
$store_consumption_user= Db::name('store_consumption_user')->where('coupon_user_id',$groupOrder['coupon_user_id'])->where('status',0)->find();
$store_consumption_user = Db::name('store_consumption_user')->where('uid',$uid)->where('coupon_user_id', $groupOrder['consumption_id'])->where('status', 0)->find();
if ($store_consumption_user) {
if ($store_consumption_user['type'] == 1) {
if ($store_consumption_user['balance'] > $groupOrder['consumption_money']) {
$balance=['balance'=>bcsub($store_consumption_user['balance'],$groupOrder['consumption_money'],2)];
Db::name('store_consumption_user')->where('coupon_user_id',$groupOrder['coupon_user_id'])->update();
$balance = bcsub($store_consumption_user['balance'], $groupOrder['consumption_money'], 2);
$balanceArr = ['balance' => $balance];
Db::name('store_consumption_user')->where('coupon_user_id', $store_consumption_user['coupon_user_id'])->update($balanceArr);
} else {
$balance=['balance'=>0,'status'=>1];
Db::name('store_consumption_user')->where('coupon_user_id',$groupOrder['coupon_user_id'])->update();
$balanceArr = ['balance' => 0, 'status' => 1];
Db::name('store_consumption_user')->where('coupon_user_id', $store_consumption_user['coupon_user_id'])->update($balanceArr);
}
}
}
app()->make(UserBillRepository::class)->decBill($user['uid'], 'consumption', 'deduction', [
'link_id' => $groupOrder['group_order_id'],
@ -1003,22 +1002,6 @@ class StoreOrderCreateRepository extends StoreOrderRepository
];
}
if ($order['consumption_money'] > 0) {
$bills[] = [
'uid' => $uid,
'link_id' => $_order->order_id,
'pm' => 0,
'title' => '红包抵扣',
'category' => 'mer_integral',
'type' => 'deduction',
'number' => $order['consumption_money'],
'balance' => 0,
'mark' => '购买商品使用积分抵扣' .$order['consumption_money']. '元',
'mer_id' => $order['mer_id'],
'status' => 1
];
}
//创建发票信息
if (isset($receipt_data[$_order['mer_id']])) {
app()->make(StoreOrderReceiptRepository::class)->add($receipt_data[$_order['mer_id']], $_order);

View File

@ -86,6 +86,7 @@ class StoreOrder extends BaseController
$mark = (array)$this->request->param('mark', []);
$payType = $this->request->param('pay_type');
$post = (array)$this->request->param('post');
$consumption_id = (int)$this->request->param('consumption_id',0);
$isPc = $payType === 'pc';
if ($isPc) {
$payType = 'balance';
@ -103,8 +104,8 @@ class StoreOrder extends BaseController
if (!($count = count($cartId)) || $count != count($cartRepository->validIntersection($cartId, $uid)))
return app('json')->fail('数据无效');
$groupOrder = app()->make(LockService::class)->exec('order.create', function () use ($orderCreateRepository, $receipt_data, $mark, $extend, $cartId, $payType, $takes, $couponIds, $useIntegral, $addressId, $post) {
return $orderCreateRepository->v2CreateOrder(array_search($payType, StoreOrderRepository::PAY_TYPE), $this->request->userInfo(), $cartId, $extend, $mark, $receipt_data, $takes, $couponIds, $useIntegral, $addressId, $post);
$groupOrder = app()->make(LockService::class)->exec('order.create', function () use ($orderCreateRepository, $receipt_data, $mark, $extend, $cartId, $payType, $takes, $couponIds, $useIntegral, $addressId, $post,$consumption_id) {
return $orderCreateRepository->v2CreateOrder(array_search($payType, StoreOrderRepository::PAY_TYPE), $this->request->userInfo(), $cartId, $extend, $mark, $receipt_data, $takes, $couponIds, $useIntegral, $addressId, $post,0,$consumption_id);
});
if ($groupOrder['pay_price'] == 0) {