diff --git a/app/common/repositories/store/order/StoreOrderCreateRepository.php b/app/common/repositories/store/order/StoreOrderCreateRepository.php index d7216176..07d78de1 100644 --- a/app/common/repositories/store/order/StoreOrderCreateRepository.php +++ b/app/common/repositories/store/order/StoreOrderCreateRepository.php @@ -33,7 +33,7 @@ use think\facade\Queue; class StoreOrderCreateRepository extends StoreOrderRepository { - public function v2CartIdByOrderInfo($user, array $cartId, array $takes = null, array $useCoupon = null, bool $useIntegral = false, int $addressId = null, $createOrder = false) + public function v2CartIdByOrderInfo($user, array $cartId, array $takes = null, array $useCoupon = null, bool $useIntegral = false, int $addressId = null, $createOrder = false,$consumption_id=0) { $uid = $user->uid; $userIntegral = $user->integral; @@ -484,7 +484,6 @@ class StoreOrderCreateRepository extends StoreOrderRepository $StoreCouponUser = app()->make(StoreCouponUserRepository::class); $platformCoupon = $StoreCouponUser->validUserPlatformCoupon($uid); $platformConsumption=[]; - $consumption=[]; //消费金 if ($source == 103) { $ConsumptionWhere = [ @@ -494,7 +493,7 @@ class StoreOrderCreateRepository extends StoreOrderRepository ]; $platformConsumption = Db::name('store_consumption_user')->where($ConsumptionWhere)->limit(100)->order('create_time', 'desc') - ->field('uid,coupon_title,coupon_price,start_time,end_time') + ->field('coupon_user_id,uid,coupon_title,coupon_price,start_time,end_time') ->select()->each(function($item){ $item['describe']='仅限平台指定商家商品可使用'; return $item; @@ -561,9 +560,13 @@ class StoreOrderCreateRepository extends StoreOrderRepository $pay_price = $org_price; } - // if($consumption){ - // $pay_price = bcsub($pay_price, $consumption['coupon_price'], 2); - // } + $consumption_money=0; + if($consumption_id){ + $consumption_money=Db::name('store_consumption_user')->where('coupon_user_id',$consumption_id)->where('uid',$uid)->value('balance'); + if($consumption_money){ + $pay_price = bcsub($pay_price, $consumption_money, 2); + } + } $giveIntegralFlag = $sysIntegralConfig['integral_status'] && $sysIntegralConfig['integral_order_rate'] > 0; $total_give_integral = 0; @@ -632,7 +635,9 @@ class StoreOrderCreateRepository extends StoreOrderRepository 'openIntegral', 'useIntegral', 'key', - 'platformConsumption' + 'platformConsumption', + 'consumption_money', + 'consumption_id' ) + ['allow_address' => !$allow_no_address, 'order_delivery_status' => $orderDeliveryStatus]; } diff --git a/app/controller/api/store/order/StoreOrder.php b/app/controller/api/store/order/StoreOrder.php index 52052cfd..efc72d9f 100644 --- a/app/controller/api/store/order/StoreOrder.php +++ b/app/controller/api/store/order/StoreOrder.php @@ -60,6 +60,7 @@ class StoreOrder extends BaseController public function v2CheckOrder(StoreCartRepository $cartRepository, StoreOrderCreateRepository $orderCreateRepository) { $cartId = (array)$this->request->param('cart_id', []); + $consumption_id = (array)$this->request->param('consumption_id',0); $addressId = (int)$this->request->param('address_id'); $couponIds = (array)$this->request->param('use_coupon', []); $takes = (array)$this->request->param('takes', []); @@ -68,7 +69,7 @@ class StoreOrder extends BaseController $uid = $user->uid; if (!($count = count($cartId)) || $count != count($cartRepository->validIntersection($cartId, $uid))) return app('json')->fail('数据无效'); - $orderInfo = $orderCreateRepository->v2CartIdByOrderInfo($user, $cartId, $takes, $couponIds, $useIntegral, $addressId); + $orderInfo = $orderCreateRepository->v2CartIdByOrderInfo($user, $cartId, $takes, $couponIds, $useIntegral, $addressId,false,$consumption_id); return app('json')->success($orderInfo); }