BidCarpoolOrder bidCarpoolOrder = bidCarpoolMapper.selectById(id); if (BidOrderStatusEnum.BIDDING.name().equals(bidCarpoolOrder.getOrderStatus().name())) { Long driverId = SecurityUtils.getUserRelationId().get(0); boolean expire = redisCache.lock(id+"", 100); if (!expire){ throw new BusinessException("您操作过快,请刷新重试!"); } bidCarpoolOrder.setDriverId(driverId); bidCarpoolOrder.setOrderStatus(BidCarpoolStatusEnum.FINISH); bidCarpoolOrder.setCarpoolResult(true); bidCarpoolMapper.updateById(bidCarpoolOrder); }else { throw new BusinessException("已被抢,请刷新页面"); }
public Boolean lock(String key, long expireTime) { String requestId = UUID.randomUUID().toString(); Long start = System.currentTimeMillis(); Boolean aBoolean = redisTemplate.opsForValue().setIfAbsent(key, requestId, expireTime, TimeUnit.SECONDS); return aBoolean; }