//校验库存
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']);
laravel7 秒杀简单防超卖
最新推荐文章于 2023-06-08 10:58:43 发布