diff --git a/app/common/dao/store/consumption/StoreConsumptionUserDao.php b/app/common/dao/store/consumption/StoreConsumptionUserDao.php index 1b79fbb6..448cbbf6 100755 --- a/app/common/dao/store/consumption/StoreConsumptionUserDao.php +++ b/app/common/dao/store/consumption/StoreConsumptionUserDao.php @@ -323,7 +323,10 @@ class StoreConsumptionUserDao extends BaseDao throw new \Exception('红包余额不足'); } $balance = bcsub($storeConsumptionUser->balance, $amount, 2); - $storeConsumptionUser->balance = max($balance, 0); + $storeConsumptionUser->balance = $balance; + if ($balance <= 0 && $storeConsumptionUser->type == StoreConsumptionUser::TYPE_ONE) { + $storeConsumptionUser->status = StoreConsumptionUser::STATUS_USED; + } if (!$storeConsumptionUser->save()) { throw new \Exception('红包余额更新出错'); } diff --git a/app/common/repositories/store/order/StoreOrderCreateRepository.php b/app/common/repositories/store/order/StoreOrderCreateRepository.php index 5710b5da..a8d97ba0 100755 --- a/app/common/repositories/store/order/StoreOrderCreateRepository.php +++ b/app/common/repositories/store/order/StoreOrderCreateRepository.php @@ -1012,19 +1012,8 @@ class StoreOrderCreateRepository extends StoreOrderRepository 'balance'=>0,'use_min_price'=>0,'order_id_set'=>'','create_time'=>date('Y-m-d H:i:s'),'start_time'=>date('Y-m-d H:i:s'), 'end_time'=>date('Y-m-d H:i:s'),'use_time'=>date('Y-m-d H:i:s'),'type'=>1,'send_id'=>0,'status'=>1]); }else{ - $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 = 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 { - $balanceArr = ['balance' => 0, 'status' => 1]; - Db::name('store_consumption_user')->where('coupon_user_id', $store_consumption_user['coupon_user_id'])->update($balanceArr); - } - } - } + $storeConsumptionUserDao = new StoreConsumptionUserDao(); + $storeConsumptionUserDao->reduce($groupOrder['consumption_id'], $groupOrder['consumption_money']); } app()->make(UserBillRepository::class)->decBill($user['uid'], 'consumption', 'deduction', [ diff --git a/app/controller/api/store/order/StoreProcessing.php b/app/controller/api/store/order/StoreProcessing.php index 8ade8c72..731f3c3e 100755 --- a/app/controller/api/store/order/StoreProcessing.php +++ b/app/controller/api/store/order/StoreProcessing.php @@ -20,7 +20,7 @@ class StoreProcessing extends BaseController $merchant_two = Db::name('merchant')->where('mer_id', $order['mer_id'])->find(); $store_group_order = Db::name('store_group_order')->where('group_order_id', $order['group_order_id'])->find(); - $store_group_order_other = Db::name('store_group_order_other')->where('group_order_sn', $order['order_sn'])->find(); + $store_group_order_other = Db::name('store_group_order_other')->where('group_order_sn', $store_group_order['group_order_sn'])->find(); if (!$store_group_order_other) { unset($store_group_order['group_order_id']); $group_order_id = Db::name('store_group_order_other')->strict(false)->insertGetId($store_group_order);