springboot-seckill
springboot-seckill copied to clipboard
重复下单redis中库存还是会减小
long stock = redisService.decr(GoodsKey.getGoodsStock, "" + goodsId);//10
if (stock < 0) {
afterPropertiesSet();
long stock2 = redisService.decr(GoodsKey.getGoodsStock, "" + goodsId);//10
if(stock2 < 0){
localOverMap.put(goodsId, true);
return Result.error(CodeMsg.SECKILL_OVER);
}
}
//判断重复秒杀
//如果重复秒杀,是否多次减库存?
SeckillOrder order = orderService.getOrderByUserIdGoodsId(user.getId(), goodsId);
if (order != null) {
return Result.error(CodeMsg.REPEATE_SECKILL);
}
预减库存后,如果是重复秒杀,redis中的库存量还是会减少,导致其他用户不能下单
这个您试过了吗
您的项目启动成功了吗
这个重复判断,是不是应该要放到预减库存的前面?
我也觉得重复秒杀判断应该放到减库存前面