From 039839dad7a83a7409a9d92d80e62ffec8e676d0 Mon Sep 17 00:00:00 2001 From: liqianjin <949671634@qq.com> Date: Fri, 14 Jul 2023 14:44:27 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BF=AE=E5=A4=8D=E3=80=91=E5=B9=B6?= =?UTF-8?q?=E5=8F=91=E9=94=81=E5=A4=84=E7=90=86=20=E3=80=90=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E3=80=91=E7=A7=92=E6=9D=80=E4=BD=99=E9=A2=9D=E4=B8=8D?= =?UTF-8?q?=E8=B6=B3=E6=97=B6=E5=A4=B1=E8=B4=A5=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addon/futures/model/Futures.php | 7 ++++--- app/model/system/Pay.php | 6 ++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/addon/futures/model/Futures.php b/addon/futures/model/Futures.php index a64ac625..65c9f85d 100644 --- a/addon/futures/model/Futures.php +++ b/addon/futures/model/Futures.php @@ -276,10 +276,11 @@ class Futures extends BaseModel */ public function orderCreate($id, $order_id, $member_id) { - - if(Cache::store('redis_concurrent')->get('addon_futures_' . $id)){ + if(!Cache::store('redis_concurrent')->handler()->setnx('addon_futures_'.$id,'1')){ return $this->error('', '你太慢了已被抢购'); } + Cache::store('redis_concurrent')->handler()->expire('addon_futures_'.$id,30); + $date = model('futures')->getInfo([['id', '=', $id]]); if (empty($date) || ($date['status'] !== 2 && $date['status'] !== 7)) { return $this->error($date, '下单失败-1001'); @@ -300,7 +301,7 @@ class Futures extends BaseModel 'total_business_num' => Db::raw('total_business_num +1'), ]); (new Message())->addMessage($date['site_id'], '订单创建', 1, $member_id, $id); - Cache::store('redis_concurrent')->tag('addon_futures_goods')->set('addon_futures_' . $id, '1'); + Cache::store('redis_concurrent')->handler()->del('addon_futures_'.$id); return $this->success(); } diff --git a/app/model/system/Pay.php b/app/model/system/Pay.php index 43a810cf..a85d90fb 100644 --- a/app/model/system/Pay.php +++ b/app/model/system/Pay.php @@ -65,6 +65,7 @@ class Pay extends BaseModel if ($is_balance) { $data[ 'member_id' ] = $member_id; $use_res = $this->useBalance($data)['data']; + if (isset($use_res['code']) && $use_res['code'] < 0) return $use_res; if (isset($use_res['pay_success'])) return $this->success($use_res); $data = $this->getPayInfo($out_trade_no)[ 'data' ]; } @@ -471,6 +472,11 @@ class Pay extends BaseModel $data['pay_money'] -= $data['balance_money']; } + $order = model('order')->getInfo([ [ 'out_trade_no', '=', $pay_info['out_trade_no'] ] ],'promotion_type'); + if ($data['pay_money'] && $order['promotion_type'] == 'futures'){ + return $this->error('', '支付余额不足'); + } + model('pay')->startTrans(); try { model('pay')->update($data, [ ['out_trade_no', '=', $pay_info['out_trade_no'] ] ]);