短视频app源码,如何实现一人只许买一单的需求?
短视频app源码,如何实现一人只许买一单的需求?
一般来说秒杀的商品都是优惠力度很大的,所以可能存在一种需求——平台只允许一个用户购买一个商品。
对于短视频app源码秒杀场景下的这种需求,我们应该怎么去设计呢?
很明显,我们需要在执行扣除库存的操作之前,先去查查数据库是否已经有了该用户的订单了;如果有了,说明该用户已经下单过了,不能再购买;如果没有,则执行扣除操作并生成订单。
// 查询订单 int count = query().eq("user_id", userId).eq("voucher_id", voucherId).count(); // 判断是否存在 if (count > 0) { // 用户已经购买过了 return Result.fail("用户已经购买过一次!"); } // 扣减库存 boolean success = seckillVoucherService.update() .setSql("stock = stock - 1") // set stock = stock - 1 .eq("voucher_id", voucherId).gt("stock", 0) // where id = ? and stock > 0 .update();
以上就是短视频app源码,如何实现一人只许买一单的需求?, 更多内容欢迎关注之后的文章