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'] ] ]);