laravel7 秒杀简单防超卖

//校验库存
    public function checkAll(Request $request)
    {
        $data = $request->post();
        
        //goods_id

        //获取token
        $token = explode(' ',$request->header('authorization'))[1];
        //进行查看
        $userInfo = Cache::get($token);
        //抢购用户id
        $userID = $userInfo->id;

       //查出订单表是否有此用户
        $user =  Order::where('user_id',$userID)->get()->toarray();

        //如存在拒绝请求,返回数据
        if (!empty($user)){
            return ['code'=>302,'msg'=>'你已抢过了'];
        }

        //        查出当前商品的库存按商品id循环存如redis队列,这一步应在添加商品的时候做操作
        $goods = Goods::find($data['goods_id'])->toarray();
            for(!$i=1; $i <= $goods['goods_nums']; $i++){
                Redis::lpush($goods['id'], $i);
            }
           //redis队列库存消耗一个
        $count = Redis::rpop($goods['id']);
   
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值